-기본 타입 :
정수, 실수, 문자, 논리 리터럴을 직접 변수에 값으로 저장
-참조 타입:
객체의 번지를 참조하는 타입. 객체는 힙 영역에 저장됨. 배열, 열거, 클래스, 인터페이스
메모리 사용 영역
JVM 스택 영역
메소드를 호출할 때마다 프레임이 추가되고 메소드가 종료되면 해당 프레임을 제거한다.
참조 타입 변수는 스택 영역에 힙 역역에 생성된 객체의 주소를 가진다.
참조 변수의 비교연산자 연산
참조 변수 간의 ==, != 연산은 동일 객체를 참조하는지, 혹은 다른 객체를 참조하는지 알아볼 때 사용한다.
변수 간의 메모리 주소 번지 값을 비교한다.
public static void main(String[] args){
//메모리 공유
String strVar1 = "Cl";
String strVar2 = "Cl";
if(strVar1 == strVar2){
System.out.println("they are same");
} else{
System.out.println("they are different");
}
//같은 값을 갖는 다른 객체로 생성(힙 영역에 저장된 주소값이 다름)
String strVar3 = new String("cl");
String strVar4 = new String("cl");
//메모리 주소값 비교
if(strVar3 == strVar4){
System.out.println("they are same");
} else{
System.out.println("they are different");
}
//실제로 갖는 값 비교->equals 메서드 이용
if (strVar3.equals(strVar4)){
System.out.println("they are same");
}
}
결과
*NullPointerException : 참조변수는 null로 지정이 가능하기 때문에 이때 발생하는 에러
'Java > 기초' 카테고리의 다른 글
접근 제한자 (0) | 2023.07.06 |
---|---|
배열 선언과 지정 그리고 length (0) | 2023.07.04 |
자바 연산자 (0) | 2023.07.03 |
변수 값 출력하기 (0) | 2023.07.03 |
JAVA 기초와 개발 환경 설정 (0) | 2023.07.03 |