static variable : 모든 객체를 통틀어서 하나만 있는 변수
==> 딱 하나만 만들어지는 변수
( 멤버변수와는 다르게 객체를 생성해도 / 생성하지 않아도 딱하나만 존재하는 변수 )
* 객체를 만들지 않아도 이미 존재한다.
컴파일 하면서 만들어지는 변수를 정적변수,
컴파일 하면서 만들어지는 것들을 정적(static)이라고 한다.
런타임 전에 만들어지며, 클래스 영역에 만들어진다.
메모리 할당 되는 그림
*
객체의 참조변수, 정적변수로 접근 가능하긴 하지만
기본적으로 정적변수는
클래스명. 정적변수로 접근하는게 "더" 맞음
왜나면... 객체가 생성되던 없던 저 변수는 존재하고 있는 친구니까
* 정적 변수를 사용하는 상황
=> 모든 부분에서 데이터를 공유해야할 때
==> 여러부분
(상수도 static을 붙이지 않으면 객체가 만들어질때 생성된다.)
메소드에 static을 사용할 때도 마찬가지다.
speed를 쓰고싶다면 변수선언을 할 때 static을 붙이면 사용할 수 있다.
this => 자기자신의 멤버변수를 가리킨다.
변수 정리
public void print() { // 메소드
int x;
int y;
}
지역변수 : 메소드 내에서 생성되는 변수
-> 메소드가 종료시 사라짐
-> 스택에 생성
public class 클래스명 {
변수타입 변수명;
private int speed;
public int mileage;
멤버변수 : 해당 클래스에 설계도면에 ㅆ일 변수
( 객체를 만들 때 사용)
필드라고보 부름
클래스 내부에 정의
인스턴스 변수 : 객체 안에 생성된 변수
객체가 사라질 때 같이 사라짐 (gc가비지 컬렉터)
class 클래스명 {
public static 변수타입 변수명;
private static final 변수타입 변수명=10; // 의미를 갖는 숫자. 심볼릭 상수
}
정적변수 : (클래스변수)
컴파일 때 생성되고, 해당 클래스로 객체를 만들어도 만들지 않아도 1개만 존재
클래스 내부에 스태틱키워드를 포함해서 정의하며 프로그램이 종료될 때 소멸
* 가비지 콜렉터의 존재 확인하기
* GC는 굳이 직접 사용하지 않는다. 직접 사용할 필요가 없다.
'Java > 자바 기반 웹 개발자 과정 필기' 카테고리의 다른 글
[200313.15일차] (0) | 2020.03.13 |
---|---|
[200312.14일차] (0) | 2020.03.12 |
[200311.13일차] 상속 (0) | 2020.03.11 |
[200309.11일차] Java 11 - 클래스 && 객체 4 + 생성자 (0) | 2020.03.09 |
[200306.10일차] Java 10 - 클래스 && 객체 3 (0) | 2020.03.06 |
[200305.9일차] Java 9 - 클래스 && 객체 2 (0) | 2020.03.05 |
[200304.8일차] Java 8 - 클래스 & 객체 1 (0) | 2020.03.04 |