* 정적 초기화영역
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 |