49,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결더 자바, 코드를 조작하는 다양한 방법
ClassLoader에서 초기화 하는 과정에서 궁금한 점이 있습니다.
강의를 통해 클래스의 static 변수등을 메소드 영역에 저장하는 순간이 '초기화' 과정에서 이뤄진다는 점을 알게 되었습니다. 그리고 관련해서 제가 예전에 공부했던 내용중에 궁금했던 점이 있어 질문 드리고 싶습니다!예전에 Singleton객체에서 LazyHolder를 통한 방식을 공부하다가. ClassLoader이 지연타임로딩을 통해 클래스를 필요한 순간에만 로딩한다는 사실을 배웠었습니다.public Class ExampleSingleton{ private ExampleSingleton(){} public static ExampleSingleton get(){ return LazyHolder.INSTANCE; } private static class LazyHolder{ private static final INSTANCE = new ExampleSingleton(); }}위와같은 코드가 있을때 static으로 선언된 클래스는 ExampleSingleton클래스가 로드될때 같이 로딩되지 않고, 실제 LazyHolder클래스를 사용할때 로딩된다는 내용이었습니다.하지만 static 변수는 ExampleSingleton클래스가 로드될때 메모리에 생성 하고, 왜 똑같이 내부에 static으로 선언된 LazyHolder클래스는 메모리에 올라가지 않는지 궁금합니다..!
- 미해결더 자바, 코드를 조작하는 다양한 방법
로딩후에, Class 객체를 생성하여 “힙" 영역에 저장하는 과정에서 궁금한 점이 있습니다!
해당 클래스 내용을 로딩후에 Class<Example>과 같은 클래스 객체를 생성해서 heap에 저장하는 것으로 이해했습니다.이때 구체적으로 힙의 어떤영역에 저장되는지 궁금합니다!heap의 에덴 영역에 들어가는 것인지, Permanent영역에 들어가는것인지 궁금합니다!Permanent 영역으로 들어갈 경우, java 8 이후에 permanent영역이 native영역으로 이동되어서 그쪽에 저장하는 것인가요?에덴 영역으로 들어가는 경우 GC의 대상이 되지 않고 어떻게 유지 될 수 있는지 궁금합니다!(이 객체에 대한 어떤 참조가 있는지)
- 미해결더 자바, 코드를 조작하는 다양한 방법
강의문서 오타 수정 요청
22강 애노테이션 프로세서 정리 애노테이션 프로세서 장점 -> 애노테이션 프로세서 단점 - 기존 클래스 코드를 변경할 때는 약간의 hack이 필요하다. 강의 내용을 들어봤을 때 단점이 맞는 것 같습니다.