요즘에는 spring boot가 대세라 xml로 설정할 일이 없다. 그래서 아직 xml을 쓰는 사람을 위해 java config 설정 법을 간략하게 해보겠다.일단 첫 번째 부터 한번 보자public class BeanClass1 { public String getName(){ return "hi youngjin"; } } 우리한테는 이런 클래스가 있다고 가정하자! xml로 빈을 등록하기 위해 우리는 이렇게 했다. 위와 같이 메타정보를 xml로 설정 할때 이다. 클래스를 빈으로 설정한다.잘되나 테스트를 해보자@Test public void springXmlConfig(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext..
static과 final의 사용 방법 final은 상속불가 또는 변할수 없는 상수 선언에 사용되고,static은 공용의 변수를 만들때 사용되는 예약어 이다. 1.static-인스턴스 변수는 하나의 클래스로 부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(static 멤버변수)인스턴스에 관계 없이 같은 값을 갖는다. 하나의 변수는 모든 인스턴스가 공유하기 때문이다. -멤버변수(클래스 변수는 인스턴스를 생성하지 않고 사용가능하다. 클래스명.static변수명 이런식으로 접근가능) -메서드(인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다. 단 static 메서드 내에서는 인스턴스 멤버 들을 직접 사용할수 없다.) -static이 선언된 메소드는 오버라이딩 되지 않고 메소드 숨김이 일..
자바7 출시가 점점 앞으로 다가오는데, 마음에 드는 자바7의 몇 가지 특징들은 다음과 같다. try-with-resources멀티캐치(multicatch) switch-case에 문자열 지원 Fork/JoinECC 암호화 기능 제공 try-with-resources 이용 자원 해제 자동 처리 사실 이거 진작에 필요했던거다. 뭔가 자원을 생성하고 사용하고 해제하는 코드는 항상 다음과 같이 구조가 중복되는 코드를 작성해야 했다. finally 블록의 자원 해제 코드 정말 하는 거 없이 여러 줄 차지한다. SomeResource resource = null; try { resource = getResource(); use(resource); } catch(...) { ... } finally { if (res..
java8이전에 FunctionalInterface와 람다표현식을 배웠다. 아직 못봤거나 까먹었다면 여기에가서 다시 보자!StreamStream 에는 많은 기능이 있다. 다 설명할 수는 없지만 중요한 몇가지를 공부해보겠다. 자바의 컬렉션들은 Stream을 사용 할 수 있다. 혹은 스트림을 만들 수 있다. 흔히 쓰는 List를 예로 들어 공부해보겠다. 그전에 알아두어야 할 용어가 있다. Intermediate Operation Method 와 Terminal Operation Method이다. Intermediate Operation Method는 중간단계로써 스트림을 리턴하기 때문에 계속 Method Chaining 통해 지시 할 수 있다. 그리고 Terminal Operation Method는 스트림을..
java8자바8의 새롭게 바뀐 부분이 많지만 그 중 내가 자주 쓰는걸 정리 해보겠다.@FunctionalInterface첫 번째로 @FunctionalInterface 인터페이스다. 람다를 쓰긴 위한 애노테이션이다. 만약 저 애노테이션이 붙은거라면 람다 표현식을 사용 할 수 있다. 하지만 명시적으로 지정 하지 않더라도 abstract 메소드가 한개라면 람바 표현식을 사용 할 수 있다. 만약 저 애노테이션을 사용한다면 abstract 메소드가 2개 이상 있을경우 컴파일 타임에 에러가 난다. 자바 기본 패키지에 있는 Function이라는 인터페이스다.@FunctionalInterface public interface Function { R apply(T t); //... } 한번 커스텀한 interface를..
jvm 메모리jvm에서 메모리 영역인 런타임 데이터 영역의 구조를 그림으로 그리면 다음과 같다.크게 3부분으로 나눠진다. 1. 메소드 영역(클래스 영역)필드나 메서드의 메타데이터 저장static 변수, 메소드 저장바이트 코드 저장상수 풀(Constant Pool)2. 스택 영역Last In First Out(LIFO)메서드 호출 시마다 각각의 프레임 생성메서드 안에서 사용되어지는 값들을 저장호출된 메서드의 매개변수, 지역변수, 리턴 값 및 연산 시 일어나는 값들을 임시로 저장 메서드 수행이 끝나면 프레임별로 삭제3. 힙 영역new 연산자로 생성된 객체와 배열을 저장하는 공간클래스 영역에 로드된 클래스만 생성가능GC를 통해 메모리 반환출처 : http://wonwoo.ml/index.php/post/cat..