*this
- this : 스스로를 가리키는 예약어
1) 생성자에서 다른 생성자를 호출하는 this
클래스에 생성자가 여러 개 있을 때 다른 생성자를 호출하는 경우
2) 자신의 주소를 반환하는 this
생성된 클래스 자신의 주소 값을 반환할 수 있음
*static 변수
- static(정적) 변수 : 클래스 내부에 선언함
프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간이 할당되고, 그 값은 모든 인스턴스가 공유함
인스턴스보다 먼저 생성되어 인스턴스가 아닌 클래스 이름으로도 참조하여 사용할 수 있음
*클래스 메서드
- 클래스 메서드 : static 변수를 위한 메소드. static 메서드라고도
static 변수처럼 클래스 이름으로 직접 호출할 수 있음
클래스 메서드 내부에서는 인스턴스 변수를 사용할 수 없음
*변수 유효 범위
1) 지역 변수 : 함수나 메서드 내부에 선언, 밖에서는 사용할 수 없음
스택 메모리에 생성, 함수가 호출될 때 생성되었다가 함수가 반환되면 해제되면서 함께 없어짐
2) 멤버 변수 : 어드 메서드에서나 사용할 수 있음
힙 메모리에 생성, 가비지 컬렉터에 의해 수거되면 메모리에서 사라짐(클래스 내부의 여러 메서드에서 사용할 변수는 멤버 변수로 선언하는 것이 좋음)
3) static 변수 : private이 아니라면 클래스 외부에서도 사용 가능.
데이터 영역 생성(상수, 문자열, static 변수). 클래스 생성과 상관 없이 데이터 영역 메모리에 생성됨
프로그램 실행이 끝난 뒤 메모리에서 내려가면 소멸됨. 프로그램 시작부터 끝까지 상주하므로 크기가 너무 큰 변수를 static으로 선언하는 것은 좋지 않음
*싱글톤 패턴
- 싱글톤 패턴 : 인스턴스를 단 하나만 생성하는 디자인 패턴
static을 응용하여 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하는 방식
'JAVA > 기초' 카테고리의 다른 글
[JAVA 기초] 08 상속과 다형성 (0) | 2022.08.13 |
---|---|
[JAVA 기초] 07 배열과 ArrayList (0) | 2022.08.12 |
[JAVA 기초] 05 클래스와 객체 1 (0) | 2022.08.10 |
[JAVA 기초] 04 제어 흐름 이해하기 (0) | 2022.08.10 |
[JAVA 기초] 03 자바의 여러 가지 연산자 (0) | 2022.08.09 |
댓글