기본형과 참조형
기본형(Primitive Type) : int, long, double, boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라고 한다.
참조형(Reference Type) : Student, int[] 와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라고 한다. 참조형은 객체 또는 배열에 사용된다.
String과 배열은 new 없이 바로 대입할 수 있다 <- 자바에서 편의 제공
자바에서 대원칙은 항상 변수의 값을 복사해서 대입한다. 따라서 변수 안에 주소가 들어있느냐, 값이 들어있는냐의 차이다. 메서드에 참조값(주소)를 전달하면 참조형 내 변수를 변경할 수 있다.
변수 종류
멤버 변수(필드) : 클래스에 선언
지역 변수: 메서드에 선언, 매개변수도 지역 변수의 한 종류
✅ 1. 기본형 (Primitive Types)
예시
int, long, float, double, char, boolean, byte, short
저장 위치:
스택(Stack) 메모리
또는 힙(Heap) 안의 객체 안에 필드로 포함될 경우 그 객체의 일부로서 힙에 저장됨
int a = 10;위 예시에서
a는 스택에 저장되고, 값10도 직접 스택에 저장됨.
✅ 2. 참조형 (Reference Types)
예시
String, Integer, List, User, 사용자 정의 클래스 등
저장 위치:
참조 변수 자체는 스택(Stack) 에 저장
실제 객체는 힙(Heap) 에 저장됨
스택의 참조 변수는 힙에 있는 객체의 주소를 가리킴
user참조 변수는 스택에 저장new User()로 생성된 객체는 힙에 저장됨user는 힙에 있는User객체를 참조함
🔍 그림으로 요약
기본형과 참조형의 메서드 호출
자바에서 메서드의 매개변수(파라미터)는 항상 값에 의해 전달된다.
기본형 : 메서드로 기본형 데이터를 전달하면, 해당 값이 복사되어 전달된다. 이 경우, 메서드 내부에서 매개변수(파라미터)의 값을 변경해도, 호출자의 변수 값에는 영향이 없다.
참조형 : 메서드로 참조형 데이터를 전달하면, 참조값이 복사되어 전달된다. 이 경우, 메서드 내부에서 매개변수(파라미터)로 전달된 객체의 멤버 변수를 변경하면, 호출자의 객체도 변경된다.
변수의 값 초기화
멤버 변수 : 자동 초기화
인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다.
지역 변수 : 수동 초기화
지역 변수는 항상 직접 초기화해야 한다.
Last updated