자바에서 static이 이렇게도 사용되나요?
글쓴이: GunSmoke / 작성시간: 월, 2009/02/09 - 12:41오전
자바 쓰레드 프로그래밍을 공부하다가...
http://www.javastudy.co.kr/docs/techtips/000328.html
이 문서에 나온 예제에 이런 코드가 있습니다.
첫번째 변수 배열에 사용된 static의 사용은 납득이 됩니다만, 두번째 static 키워드만 주어진 블록은 이해하기가 힘드네요.
올바른 코드인가요?
이렇게 해둔 이유는 무엇인가요?
클래스의 객체가 만들어지기 전, 정적 메소드가 실행되기 전에 정적변수를 초기화한다는 규칙과 관련이 있나요?
class Stocks implements FundConstants { static int[] balances = new int[noOfStocks]; static { for (int n=0; n < noOfStocks; n++) { balances[n] = 10000; } } ...
off topic) 왜 코드가 다 보이지 않죠? 편집에 들어가면 제대로 작성되어 있는데...
수정) 원래 for 문에서 조건이 붙어있을때는 코드가 제대로 보이지 않았는데 이렇게 'n < noOfStocks' 떼어놓으니까 제대로 출력되네요.
Forums:
올바른 코드입니다.
올바른 코드입니다. static initializer block 이라고 부릅니다. 클래스(인스턴스 말고)가 사용되기 전에 반드시 한 번만 static initializer block 이 실행됩니다.
정적변수를
정적변수를 초기화하기 위한 블럭이군요.
일반적으로 인스턴스가 만들어지기 전에 정적변수 초기화가 이루어진다고 알고 있습니다.
그렇다면 이러한 블럭은 인스턴스 생성전, 클래스 코드가 실행되기도 전에 한번 실행되는 것이라고 이해하면 되는 것인가요?
大逆戰
大逆戰
댓글 달기