static 변수, 정적 변수, 클래스 변수
특정 클래스에서 공용으로 함께 사용할 수 있는 변수
멀티스레드 상황에서는 동시성이슈가 발생할 수 있다.
접근방법 클래스명.정적변수명
정적 변수는 인스턴스 영역(힙)이 아니라 메서드 영역에서 관리한다.
클래스는 흔히 붕어빵 틀에 비유하는데, 붕어빵이 구워지기 전(인스턴스 생성 전)에 틀은 하나 뿐이므로, 클래스 변수도 하나만 존재하는 것이다.
반면에 인스턴스 변수의 경우, 인스턴스가 생기는 만큼 존재할 수 있다.
(인스턴스 변수는 static이 붙지 않은 변수를 뜻함)
클래스 변수는 메서드 영역의 static 영역에 보관된다.
이렇게 프로그램 시작 시에 생성되고 종료될때 없어진다.
인스턴스 변수는 객체가 생성되고 객체가 사라질때 같이 사라진다.
따라서 static은 정적이라고 할 수 있다.
객체는 자신을 조종할 수 있는 리모콘(this)를 가지고 태어난다.
객체 만들 때 자동차 리모콘도 같이 만들어진다.
자동차 객체는 자신이 들고 있는 리모콘(this)를 복사해서 반환한다.
Car newCar = new Car();