기본형(primitive type)

  - 정수타입 : byte, short, int, long

  - 실수타입 : float, double

  - 문자타입 : char

  - 논리타입 : boolean

 

참조형(reference type)

  - 배열 타입

  - 열거 타입

  - 클래스

  - 인터페이스

  - 기본형을 제외한 나머지

 

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

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

- 기본형 : 변수에 들어 있는 실제 사용하는 값을 복사해서 대입

- 참조형 : 변수에 들어 있는 참조값을 복사해서 대입

// 기본형 변수 대입
int a = 10;
int b = a;

System.out.println("a = " + a); // 10
System.out.println("b = " + b); // 10

b = 20;

System.out.println("a = " + a); // 10
System.out.println("b = " + b); // 20



// 참조형 변수 대입
Student student1 = new Student();
student1.name = "kim";
Student student2 = student1;

System.out.println("student1.name = " + student1.name); // kim
System.out.println("student2.name = " + student2.name); // kim

student2.name = "Lee";

System.out.println("student1.name = " + student1.name); // Lee
System.out.println("student2.name = " + student2.name); // Lee

 

 

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

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

- 기본형 : 메서드로 기본형 데이터를 전달하면 해당 값이 복사되어 전달됌.

- 참조형 : 메서드로 참조형 데이터를 전달하면 참조값이 복사되어 전달됌.

// 기본형 메서드 호출
public static void main(String[] args) {
    int a = 10;
    System.out.println("a = " + a); // 10
    changePrimitive(a);
    System.out.println("a = " + a); // 10

}

static void changePrimitive(int x) {
    x = 20;
}

// 참조형 메서드 호출
public static void main(String[] args) {
    Student student = new Student();
    student.name = "kim";
    System.out.println("student.name = " + student.name); // kim
    changeReference(student);
    System.out.println("student.name = " + student.name); // Lee

}

static void changeReference(Student data) {
    data.name = "Lee";
}

 

'인강 > 자바(기본편)' 카테고리의 다른 글

다형성  (0) 2024.07.23
상속  (0) 2024.07.22
this, 생성자  (0) 2024.07.02
변수와 초기화  (0) 2024.07.02
클래스와 데이터  (0) 2024.07.01

+ Recent posts