본문 바로가기

전체 글

(41)
ClassLoader 클래스 로더 실행 시, 필요한 클래스를 동적으로 메모리에 로드한다. 기존에 생성된 클래스 객체가 메모리에 존재하는지 확인한다. 메모리에 존재하면 객체의 참조를 반환하고, 없으면 클래스 패스에 지정된 경로를 따라서 클래스 파일을 찾는다. 로딩, 링크, 초기화 순으로 진행된다. 로딩 클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 "메소드" 영역에 저장 메소드 영역에 젖아하는 데이터 FQCN (Full Qualified Class Name) 클래스 | 인터페이스 | 이늄 메소드와 변수 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 "힙" 영역에 저장 링크 Verify, Prepare, Resolve(optional) 세 단계로 나눠져 있다. 검증 (Ver..
Class 객체 Class 객체 이름이 Class 인 객체 public final class Class implements ... { ... } Class 객체는 모든 정보를 담고 있다. 클래스 당 1개만 존재한다. 클래스 파일이 클래스로더에 의해서 메모리에 올라갈때 자동으로 생성된다. getClass() 메서드로 자신이 속한 클래스의 Class 객체를 얻을 수 있다.
애너테이션 (Annotation) 애너테이션(Annotation) 애너테이션은 코드 메타 데이터이다. 메타데이터는 자신의 정보를 담고있는 데이터를 말한다. 패키지, 클래스, 메소드, 변수, 파라미터등에서 사용될 수 있으며, 자바 8부터는 코드의 거의 모든 부분에서 사용될 수 있다. 애너테이션이 적용된 코드는 직접적으로 애너테이션으로부터 영향을 받지 않는다. 단지 다른 프로그램(서브시스템)에 애터네이션에 대한 정보를 제공한다. 애너테이션 작성 방법 Transactional.class @Retention( RetentionPolicy.RUNTIME) @Inherited @Target(ElementType.METHOD) public @interface Transactional { String value(); } @Target : 애너테이션이 ..