ClassLoader에서 초기화 하는 과정에서 궁금한 점이 있습니다.
494
작성한 질문수 3
강의를 통해 클래스의 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클래스는 메모리에 올라가지 않는지 궁금합니다..!
답변 1
0
말씀하신 "ClassLoader이 지연타임로딩을 통해 클래스를 필요한 순간에만 로딩한다는 사실"에 입각하면 LazyHolder 클래스가 사용될 시점에 로딩 되는것이 무엇이 이상한걸까요?
클래스 로더가 메소드 영역에 저장하는 것은 바이트코드인가요?
1
83
1
실제 개발 단계에서 이 같은 지식들을 적용할 기회가 있을까요?
0
102
1
코틀린 컴파일에 대해서
0
218
1
RuntimeException
0
340
1
Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..
0
400
1
gradle 사용하시는 분 도움
4
764
1
CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.
6
865
0
Spring Data JPA 동적 프록시를 사용 질문
0
419
1
어노테이션 프로세서 활용 예와 관련해 질문 있습니다.
0
503
1
"자바 언어가 플랫폼에 독립적이다" 라는 것에 대해 옳게 이해했는지 궁금합니다!
1
1133
1
'클래스 로더' 강의에서 클래스 로딩을 설명할 때 잘못된 것 같아 질문드립니다.
3
1259
2
metaspace 질문드립니다.
2
394
0
소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유
0
424
0
다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?
0
468
1
다이나믹 프록시의 단점
0
350
0
new 와 constructor.newInstance();의 차이
0
663
0
두번 실행해야하는 이유
0
472
0
제가 설명한게 맞는지 봐주실 수 있나요?(jvm설명)
0
445
0
JIT 컴파일러와 인터프리터
1
1012
1
Method.invoke()
0
426
1
site 폴더내에 jacoco 폴더가 생기지 않습니다.
0
987
1
메모리 영역의 구조 질문
0
450
1
GC 설명부분 질문드립니다.
0
491
1
jit 와 인터프리터 질문
1
394
1





