Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DAU
- 범위리텐션
- rolling retention
- 정처기필기
- 티스토리
- N2TWinform
- passphrase
- dpkg
- MAU
- pem
- 리텐션
- 하이퍼바이저
- 패키지 관리자
- Wau
- stickiness
- 파이프(|)
- 노션
- 데이터리안
- GIT
- n2t
- RPO
- classic retention
- 다중 암호화 키
- openssh
- 클래식리텐션
- range retention
- 롤링리텐션
- ssh-keygen
- github
- RTO
Archives
- Today
- Total
TobeSteady
[JAVA] static block 본문
static block (스태틱 블록)
클래스가 로딩되고 클래스 변수가 준비된 후 자동으로 실행되는 블록
- 한 클래스 안에 여러 개의 static block을 넣을 수 있음.
- 주로 클래스 변수를 초기화시키는 코드에 사용된다.
예제
static class Student { static String name = "홍길동"; // 변수 선언에 값을 초기화시키는 문장을 포함할 수 있다. static { System.out.println("static...1"); name = "임꺽정"; } static { System.out.println("static...2"); name = "유관순"; } }
실행 순서 :
1) 클래스가 로딩된다.
2) 클래스 변수가 있으면 메모리를 생성한다.
3) static 블록이 선언된 순서대로 실행된다.
참고 : 클래스 로딩 절차
- JRE 라이브러리 폴더에서 클래스를 찾는다.
- 없으면, CLASSPATH 환경 변수에 지정된 폴더에서 클래스를 찾는다.
- 찾았으면, 그 클래스 파일이 올바른 바이트코드인지 검증한다.
- 올바른 바이트코드라면, Method Area 영역으로 파일을 로딩한다.
- 클래스 블록이 있으면 순서대로 그 블록을 실행한다.
- 클래스 안에 static block (스태틱 블록)들이 있으면 순서대로 그 블록을 실행한다.
static block (스태틱 블록)과 변수의 호출 코드
public static void main(String[] args) { Student.name = "하하하"; System.out.println(Student.name); }
# 실행 결과 static...1 static...2 하하하
instance block(인스턴스 블록)
인스턴스가 생성된 후 자동으로 실행하는 블록
- 한 클래스 안에 여러개의 인스턴스 블록을 넣을 수 있음.
- 인스턴스 변수를 초기화시키는 코드를 넣어두기 위해 사용된다.
- 어떤 생성자가 호출되는 그 전에 공통으로 초기화시키고 싶은 작업이 있다면 인스턴스 블록에서 처리하면 된다.
예제
static class Student { static String name = "홍길동"; // 변수 선언에 값을 초기화시키는 문장을 포함할 수 있다. int age = 20; static { System.out.println("static {...}"); name = "임꺽정"; } { // 인스턴스 블록 // 인스턴스 블록은 인스턴스 주소를 보관한 this라는 변수가 내장되어 있다. System.out.println(age); System.out.println("{인스턴스 블록 실행...1}"); this.age = 30; } { System.out.println("{인스턴스 블록 실행...2}"); } }
실행 순서
인스턴스를 생성한다.
생성자가 호출되기 전에 인스턴스 블록이 선언된 순서대로 실행된다.
instance block (인스턴스 블록)과 변수의 호출 코드
public static void main(String[] args) { new Student(); System.out.println("---------------------------"); new Student(); }
# 실행결과 : static {...} 20 {인스턴스 블록 실행...1} {인스턴스 블록 실행...2} ------------------------- 20 {인스턴스 블록 실행...1} {인스턴스 블록 실행...2}
출처
'ETC > IT Documentation' 카테고리의 다른 글
[정리] Front_end & Back_end & Client_side & Server_side (0) | 2023.04.22 |
---|---|
[AWS] AWS 기반 재해 복구(DR) 아키텍쳐 (0) | 2023.03.01 |
[SW] 미들웨어 솔루션 명세 (0) | 2023.01.31 |
[SW] 인터페이스 방법 명세화 (0) | 2023.01.31 |
WSL vs. Virtual Marchin (0) | 2023.01.30 |