static
하나의 java 파일은 필드, 생성자, 메서드로 구성된다. 그 중 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형) static 영역에 저장한다. static 영역의 데이터는 프로그램의 시작부터 종류가 될때까지 남아있게 된다. 다르게 말하면 전역변수가 프로그램이 종료될 때 까지 어디서든 사용이 가능한 이유기도 하다. 따라서 전역변수를 무분별하게 많이 사용하다 보면 메모리가 부족할 우려가 있어 필요한 변수만 사용할 필요가 있다.
기본형과 참조형
기본형(primitive type) 변수
- boolean, char, byte, short, int, long, float, double
- 기본형 변수에 저장되는 값은 리터럴, 즉, 실제 값이 저장된다.
- 10, A, true 등 있는 그대로의 값을 stack에 저장한다.
- stack: 속도 빠르지만 공간 좁(기본형 data)
참조형(reference type) 변수
- 기본형 8가지를 제외한 나머지 타입
- 참조형 변수는 실제 값이 아닌 주소 값을 heap에 저장한다.
- heap: 속도 느리지만 공간 넓(참조형 data)
- stack에는 변수만 저장
주소 값
- 컴퓨터의 메모리에 주소별로 저장 공간이 배정되어 있다.
- 이 주소는 사용자가 확인은 할 수 있지만 직접 정하거나 바꿀 수는 없다.
String 쓸 때 주의점
- == 비교연산자를 사용하면 주소값을 비교해서 다르다고 판단할 수 있음.
- class에서 선언된 String의 주소값과 main에서 선언된 것이 다르기 때문에 error가 남.
- equals써야 함.
https://m.blog.naver.com/heartflow89