2013년 10월 6일 일요일

[JAVA생성자]자바클래스 초기화 순서, static초기화블록 - 클래스 초기화 순서 클래스가 메모리에 적재된 후 클래스가 사용되기전 한번 초기화 모든 클래스 변수가 디폴트 값으로 초기화(0,’\u0000’,false, null) 클래스 변수 초기화 수식 클래스 초기화 블록 클래스 블록 사용 예 클래스 변수 초기화 수식만으로 부족할 때 배열 클래스 변수를 초기화할 때 여러 개의 클래스 변수를 한번에 초기화할 때 예외(exception)을 발생시키는 메쏘드를 호출할 필요가 있을 때 class StaticInit { // 클래스 변수 초기화 수식 public static int myArray[] = new int[10]; // 클래스 초기화 블록 static { myArray[0] = 1; for(int i = 1; i < 10; ++i) myArray[i] = i; System.out.println( ">>> 클래스 초기화 블록 실행..." ); } public StaticInit() { System.out.println(">>> 생성자 실행......"); } public static void main( String args[] ) { new StaticInit(); new StaticInit(); } } [결과] >>> 클래스 초기화 블록 실행... >>> 생성자 실행...... >>> 생성자 실행...... [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=603 오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의) www.onjprogramming.co.kr [개강안내]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr) [주말] [10/12]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 [10/12]Spring3.X, MyBatis, Hibernate실무과정 [10/12]SQL초보에서실전전문가까지 [10/12]C#,ASP.NET마스터 [평일야간] [10/10]SQL초보에서실전전문가까지 [10/15]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 [10/17]Spring3.X, MyBatis, Hibernate실무과정 [평일주간] [10/10]Spring3.X, MyBatis, Hibernate실무과정 [10/17]PL/SQL,오라클힌트,SQL튜닝,사례연구 JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스 Spring3.X, MyBatis, Hibernate실무과정 총 5일 35시간 10-10 자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 총 24일 72시간 10-15 Spring3.X, MyBatis, Hibernate실무과정 총 12일 36시간 10-17 JAVA&WEB프레임워크실무과정 총 33일 99시간 10-24 스프링3.X게시판&오라클힌트,SQL튜닝,사례연구 총 11일 33시간 10-25 Spring3.X, MyBatis, Hibernate실무과정 총 5일 35시간 10-12 자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 총 10일 70시간 10-12 스프링3.X게시판&오라클힌트,SQL튜닝,사례연구 총 4일 32시간 10-19 JAVA&WEB프레임워크실무과정 총 14일 98시간 11-02

[JAVA생성자]자바클래스 초기화 순서, static초기화블록

- 클래스 초기화 순서

클래스가 메모리에 적재된 후 클래스가 사용되기전 한번 초기화
모든 클래스 변수가 디폴트 값으로 초기화(0,’\u0000’,false, null)
클래스 변수 초기화 수식
클래스 초기화 블록
클래스 블록 사용 예
클래스 변수 초기화 수식만으로 부족할 때
배열 클래스 변수를 초기화할 때
여러 개의 클래스 변수를 한번에 초기화할 때
예외(exception)을 발생시키는 메쏘드를 호출할 필요가 있을 때

class StaticInit
{
 // 클래스 변수 초기화 수식
    public static int myArray[] = new int[10]; 
 
    // 클래스 초기화 블록
    static          
    {
     myArray[0] = 1;
        for(int i = 1; i < 10; ++i)
         myArray[i] = i;
        
        System.out.println( ">>> 클래스 초기화 블록 실행..." );
    }
    
    public StaticInit() {
     System.out.println(">>> 생성자 실행......");
    }
    public static void main( String args[] )
    {
        new StaticInit();
        new StaticInit();
    }
}
 
[결과]
 
>>> 클래스 초기화 블록 실행...
>>> 생성자 실행......
>>> 생성자 실행......
 

오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  




댓글 없음:

댓글 쓰기