Category: Java

Java - JVM

자바 소스코드를 class 파일로 컴파일해주고 실행하는 **JVM(Java Virtual Machine)**의 메모리 구조에 대한 이야기이다. 왜 JVM이 필요한가? 자바로 프로그래밍된 파일을 실행하려면 JVM이 필수적이다. 자바 소스코드는 그 자체로 OS에서 즉시 실행할 수 없고 자바 런타임환경에서 실행될 수 있는데, 그러려면 JVM이 운영체제

Enumeration 인터페이스와 Iterator 인터페이스

Enumeration 인터페이스와 Iterator 인터페이스 모두 하는 역할은 비슷하다. 배열의 원소(Element)들을 한 순간에 하나씩 처리할 수 있는 메서드를 제공하는 컬렉션들이다. 일반적으로 배열문과 함께 사용되며, 다음에 처리할 수 있는 원소가 있는지 없는지 등의 여부(boolean)와 다음 원소를 반환할 수 있다. Enumeration 인터페

Servlet - 서블릿 생명주기와 HttpServletRequest, HttpServletResponse

앞서 서블릿을 이용해 화면에 Hello world를 찍어보는 간단한 실습을 해보았다. 이번엔 이 때 사용했던 개념들에 대해 조금 더 알아보는 시간을 가지려고 한다. 우선 서블릿이 어떻게 호출되고, 실행되는지부터 알아보자. Servlet 작동원리웹서버에 HTTP 프로토콜로 요청이 들어오면, 웹서버는 해당 요청을 파악하고, 요청에 맞는 리소스를 다시 H

Servlet - 서블릿 튜토리얼

스프링을 공부하다가 모호한 부분이 많아서 시작하게된 공부이다. 스프링 기반기술이 서블릿인데 사실 자바 언어를 사용하며 웹 애플리케이션을 개발하기 위해서는 반드시 서블릿을 사용할 수 밖에 없다. 웹 애플리케이션을 개발하기 위해서는 Http로 통신하는 애플리케이션을 개발해야하는데 서블릿은 HttpServlet 클래스를 상속받아서 Http 프로토콜로 요청과

Java8 - 람다와 함수형 인터페이스

자바 8에 람다(Lambda)가 도입되면서 자바는 객체지향언어인 동시에 함수형 언어가 될 수 있었다. 람다식을 간단히 표현하면, 메서드를 하나의 식(expression)으로 표현한 익명 함수(Anonymous function) 이다. 여기서 알아두어야 할 점은 람다가 메서드가 아니라 함수라는 점이다. 람다를 알기 전까지는 메서드와 함수를 같은 의미로

Java - File 읽고(Read) 출력(Write)하기

Java에서 파일을 입력하고, 출력해보는 예제이다. Java에서 파일을 입력하기 위해서는 FileInputStream 클래스를 사용해야 한다. 마찬가지로 입력받은 파일을 다시 새로운 파일로 생성하기 위해서는 FileOutputStream 클래스를 사용해야 한다. 사용하기 전 먼저 초기화를 해준다. 12FileInputStream fis = null;F

String 객체 연산시 StringBuffer를 사용해야하는 이유

자바 프로그래밍을 처음 배우던 시기에 문자열을 반복적으로 연산하는 방법으로 String 객체를 사용하곤 했다. 사실 StringBuffer를 알게 된 바로 지금까지도… 별을 1만개 찍는 코드로 String 객체를 사용하는것과 StringBuffer를 사용하는 것의 차이를 비교해보겠다. 12345678910public class shinningStars

Java - String 클래스 메서드 정리

String 클래스가 내장하고 있는 메서드들에 대해 정리해보았다. append() length() concat() substring() indexOf() lastIndexOf() charAt() isEmpty() replace() toUpperCase() toLowerCase() trim() split() toCharArray(

main(String[] Args)에 대해 알아보자.

자바로 그 어떤 프로그램이라도 작성을 하게 되면, 반드시 작성하게 되는 메서드이자 모든 자바 애플리케이션의 시작점인 main(). 항상 입력하면서도 여기에 대해 자세히 알려고 했던적이 있었나 싶다. 한 번 쯤 정리하고 싶어서 이번에 정리하게 되었다. 우선 main 메서드는 다음과 같은 구조로 구성되어 있다. 1public static void main(

객체를 직접 호출하는 것과 인스턴스를 호출하는것의 차이 (메모리 주소값 비교)

객체지향에 대해서 정확히 이해하고 있지 못한것 같아서 인프런에서 객체지향 프로그래밍 입문와 생활코딩에서 JAVA 객체지향 프로그래밍 수업을 정주행하다가 정리한다. 10분 짜리 영상을 정말 거의 10번 가까이 재생하면서 계속 이해하려고 노력했고, 그러고나서도 다시 포스팅하려고 하니까 더 긴 시간이 걸렸다. 하지만 이렇게 정리하고 나니까 조금 뿌듯하다 :)