알듯.. 말듯.. 아리송
참조타입: 객체의 번지를 참조함. (배열, 열거, 클래스, 인터페이스)
참조타입은 클래스로 선언
(String 클래스 선언, intArray 배열 선언 등)
동일한 객체를 가질 경우
==
는 true
!=
는 false
힙 영역의 객체 참조 X일 때 null 값 저장. (초기값 사용 가능(
null로 초기화된 참조 변수는 스택 영역에 생성됨.
refVar1 = null
일 때
refVar1 == null
은 true
refVar1 != null
은 false
참조변수 사용 시 발생하는 예외
NullPointException
참조 변수가 null이면 참조 객체가 없음. 이 상태에서 객체의 데이터(필드)나 메소드 사용하는 경우 오류 발생
String name1 = "신용권";
String name2 = "신용권";
동일한 문자열 리터럴을 참조할 경우 동일한 String 객체를 참조함.
new 연산자로 힙 영역에 새로운 객체 만들어 사용 가능(객체 생성 연산자)
String name1 = new String("신용권");
String name2 = new String("신용권");
동일한 문자열일지라도 new연산자 사용 했기때문에 참조가 다름.
같은 타입의 데이터를 나열한 후 인덱스를 부여해둔 자료구조.
score[]
-> score 배열
인덱스는 0부터 시작
배열 변수 선언 기호: []
데이터 타입[] 변수;
or 데이터 타입 변수[];
배열 변수가 null인 상태에서 변수[인덱스], 값을 읽거나 저장 하면 오류 발생
타입[] 변수 = {값1, 값2, 값3, ...};
{}
에 있는 값들을 배열 객체 힙에 생성 후 번지를 리턴함.
String[] names=null;
names = new String[] {"신용권", "홍길동", "감자바"};
int add(int[] scores) {...}
// 컴파일 에러
int result = add( {95, 85, 90} );
// 올바른 코딩
int result = add( new int[] {95, 85, 90} );
return sum;
을 빼고 작성 했더니 This method must return a result of type int
오류 메세지 발생타입[] 변수 = new 타입[길이]
처럼 new 연산자로 배열 객체 생성int[] intArray = new int[5];
타입별 배열의 초기값이 정해져있음.
ex) String타입의 경우 null값으로 초기화
int, double, String 타입의 배열 초기값을 확인할 수 있음.