데이터 타입
- 기본타입(정수, 실수, 문자, 논리 리터럴) + 참조타입(배열, 열거, 클래스, 인터페이스)
- 기본타입은 실제 값을 변수 안에 저장
- 참조타입은 메모리의 번지를 변수 안에 저장
메모리 사용 영역
- 메소드 영역 : JVM이 시작할 떄 생성되고 모든 스레드가 공유하는 영역 코드에서 사용되는 클래스들을 클래스 로더로 읽어 클래스별로 정적 필드와 상수, 메소드 코드, 생성자 코드 등을 분류해 저장
- 힙 영역 : 객체와 배열이 생성되는 영역 힙 영역에 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에 서 참조
- JVM 스택영역 : 메소드를 호출할 때마다 프레임이 추가되고, 메소드가 종료되면 해당 프레임이 제거하는 동작 수행
null
- 참조 타입 변수는 객체를 참조하지 않는다는 뜻으로 null 값 가질 수 있음
- null로 초기화된 참조변수도 스택 영역에 생성
NullPointException
- 참조 타입 변수가 null 상태에서 존재하지 않는 객체의 데이터나 메소드 사용할 경우 발생
혼자 공부하는 자바<한빛 미디어> 신용권 지음