참조타입 : 객체의 번지를 참조하는 타입
배열 타입, 열거 타입, 클래스, 인터페이스
메모리의 번지를 변수 안에 저장
String 클래스 변수 = 참조 타입 변수
메소드 영역 : 정적 필드 / 상수, 메소드 코드, 생성자 코드
힙 영역 : 객체 배열
JVM 스택 : 프레임 (로컬 변수 스택)
동일한 번지 값을 갖고 있는지 알아볼 때 사용됩니다.
참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있습니다.
NullPointerException은 참조 변수를 잘 못 사용하면 발생합니다.
문자열 리터럴이 동일하다면 String 객체로 공유
new 연산자 : 힙 영역에 새로운 객체를 만들 때 사용하는 연산자 (객체 생성 연산자)
String name1 = new String("김민석");
String name2 = new String("김민석");
== 이 쓰일 때와 .equals()이 쓰일 때가 다르다.
같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조
int [] intArray;
int intArray[];
값 목록으로 배열 생성
String[] names = {"Dave","Sam", "Kim"};
String[] names = null;
names = new String[] {"Dave","Sam", "Kim"};
new 연산자로 배열 생성
int[] intArray = new int[5];
intArray.length;
String[] args가 매개 변수를 통해서 명령 라인에서 입력된 데이터 수, 입력된 테이터를 알 수 있게 된다.
int[][] scores = new int[2][3];
클래스, 인터페이스와 같은 참조 타입 배열은 각 항목에 객체의 번지를 가지고 있습니다.
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
int[] scores = {95, 71, 84, 93};
for (int score :scores) {
sum = sum + score;
}
한정된 값인 열거 상속 중에서 하나의 상수를 저장하는 타입입니다.
public enum Week {MON, TUE, WED, THU, FRI, SAT, SUN};