Java

Java / 기본형과 참조형

Dear-J 2025. 2. 21. 02:11

기본형(Primitive Type)

int, long, double, boolean 같이 변수에 사용할 값을 적접 넣을 수 있는 데이터 타입

 

참조형(Reference Type)

Studnet student1, int[] students 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입

>> 객체 또는 배열에 사용

 

기본형 vs 참조형 1

기본형은 연산이 가능하지만 참조형은 연산이 불가능

.(dot)을 통해 객체의 기본형 멤버 변수에 접근한 경우에는 연산 가능

String은 클래스라 참조형이지만 기본형처럼 문자 값을 바로 대입할 수 있음

 

기본형 vs 참조형 2 - 변수 대입

대원칙: 자바는 항상 변수의 값을 복사해서 대입한다.

기본형은 변수에 값을 대입하더라도 실제 사용하는 값이 변수에 바로 들어있기 때문에 해당 값만 복사해서 대입

참조형은 실제 사용하는 객체가 아니라 객체의 위치를 가리키는 참조값만 복사

 

기본형 vs 참조형3 - 메서드 호출

자바에서 메서드의 매개변수(파라티머)는 항상 값에 의해 전달

>>실제 값이냐 참조(메모리 주소)값이냐에 따라 동작이 다름

기본형 : 해당 값이 복사되어 전달. 메서드 내부에서 매개변수(파라미터)의 값을 변경해도 호출자의 변수 값에는 영향 x

참조형 : 참조값이 복사되어 전달. 메서드 내부에서 매개변수(파라미터)로 전달된 객체의 멤버 변수를 변경하면, 호출자의 객체도 변경

 

변수

멤버 변수(필드) : 클래스에 선언

지역 변수 : 메서드에 선언, 매개변수도 지역변수의 한 종류

 

초기화

멤버 변수 : 자동 초기화

인스턴스를 생성할 떄 자동으로 초기화

>>숫자(int) = 0, boolean = false, 참조형 = null

초기값 직접 지정 가능

 

지역 변수 : 수동 초기화

 

GC(Garbage Collection) - 아무도 참조하지 않는 인스턴스의 최후

null이 할당된 인스턴스는 아무도 참조하지 않기 때문에 해당 인스턴스에 다시 접근할 방법이 없음

사용되지 않고 메모리 용량만을 차지함

>> JVM의 GC가 더이상 사용하지 않는 인스턴스라 판단 후 자동으로 메모리에서 제거

 

NullPointerException

참조값 없이 객체를 찾아가면?

>> NullPointerException라는 예외 발생

null에 .을 찍었을 때 발생

 

 

'Java' 카테고리의 다른 글

Java / 자바 메모리 구조와 static  (0) 2025.02.22
Java / 접근 제어자  (0) 2025.02.21
Java / 패키지  (0) 2025.02.21
Java / 생성자  (0) 2025.02.21
Java / 클래스와 데이터  (0) 2025.02.21