* 정적 초기화영역

class A{
 static{

}
}

1. class loading
2. static block실행
3. main()

ex :  class A{
 private static CustomerDTO c;
 static{
  c = new CDTO();
 }
}

* static 블럭 실행 시점 예제

* class
package : staictest
Name : StaticBlockTest

 

package statictest;

public class StaticBlockTest {
  static{
   System.out.println("static 블럭 1");
  }
  public static void main(String[] args) {
   System.out.println("메인 메소드 실행");
  }
}

----------------
실행화면
static 블럭 1
메인 메소드 실행
(메인보다 static블럭1이 먼저 실행된 것을 볼 수 있다. )
-------------------------------------------

예제2

package statictest;

public class StaticBlockTest {
  static{
   System.out.println("static 블럭 1");
  }
  static{
   System.out.println("static 블럭 2");
  }
}
-------------------------------------------------

실행 화면

static 블럭 1
static 블럭 2
java.lang.NoSuchMethodError: main
Exception in thread "main"

static블럭 찍게 되면 순서 대로 나오고 메인이 없어서 메인이 없다는 에러를 내준다.
----------------------------------------------------

* instance 변수 - 객체마다 다른 값을 가지면 사용한다.
* static 변수 - 공통적인 값, 공통코드값(PI, 비율, 세율) : 비지니스 로직이 많다.

* 싱글턴 디자인 패턴 -> 일하는 객체를 정의하는 class(우리가 했던 것 중에는 productManagerService, ProductDTO(관리하는 사람은 한 사람만 필요하다.)) ->Business Service
- 클래스를 만들때 객체를 오직 하나만 만들수 있는 class(오직 하나의 객체를 공유한다)

ex :
DTO는 값을 표현하기 위해서 만들어진 객체기 때문에 객체를 하나만 부를수는 없다.

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

상속, 생성자  (0) 2012.07.28
싱글턴 패턴  (0) 2012.07.28
staticTest[실습]  (0) 2012.07.28
package, import  (0) 2012.07.28
productManagerArray만들기 [실습]  (0) 2012.07.28
Posted by 조은성
,