TestClass 안에 static int b=0 가 있음에도 제가 문제풀이 계산 중 b가 0이 되는 지점을 보지 못하는 이유는,
생성자 함수로써 먼저 실행되고 되어 static int b=0 으로 초기화가 되고 나서,
TestClass.b =a 가 그다음에 실행되기 때문인가요?
TestClass 안에 static int b=0 가 있음에도 제가 문제풀이 계산 중 b가 0이 되는 지점을 보지 못하는 이유는,
생성자 함수로써 먼저 실행되고 되어 static int b=0 으로 초기화가 되고 나서,
TestClass.b =a 가 그다음에 실행되기 때문인가요?
static은 아예 다른 영역에서 관리해욤
TestClass의 생성자 함수가 TestClass.b =a 보다 더 빨리 접근하나요?
스태틱 변수는 객체를 생성하면서 값을 할당하는 게 아님 걍 프로그램 실행될 때 생성되고 할당받는 거임 프로그램 올라가면서 먼저 b가 0으로 생성되고 그 다음에 b를 10으로 바꾸고 저 코드상에서는 객체 생성할 때 영향 없음
답변 감사드립니다
정적생성자가 따로 있다고 생각하면 편합니다. 예를들어 TestCase라는 클래스가 언급된다고 치면 거기의 static 멤버의 초기화가 일어납니다.
실제로 static{} 구문으로 정적 생성자가 따로 있어요
저렇게 하는 것보다 그냥 클래스 로더 동작방식을 아는게 낫지않나