BACK/JAVA

[JAVA] 실전 자바 - 기본형과 참조형

연듀 2024. 1. 30. 15:24

 

기본형과 참조형

 

기본형

  • 실제 사용하는 값을 변수로 담을 수 있다.
  • 메서드로 기본형 데이터를 전달 하면 값이 복사되어 전달된다.

참조형

  • 실제 객체의 위치를 저장한다. ex)객체, 배열, 클래스, String(클래스)
  • 메서드로 참조형 데이터를 전달하면 참조값이 복사되어 전달된다.

 

 

💡 기본형은 소문자로 시작한다.

💡 기본형을 제외한 나머지는 모두 참조형이다.

💡 클래스는 대문자로 시작한다. 클래스는 모두 참조형이다.

 

 

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

 

변수 대입

 

기본형이면 변수에 들어 있는 실제 사용하는 값을 복사해서 대입하고,

참조형이면 변수에 들어 있는 참조값을 복사해서 대입한다.

 

 

메서드 호출

메서드 호출 시 사용하는 매개변수(파라미터)도 결국 변수다.

 

기본형: 메서드 내부에서 매개변수(파라미터)의 값을 변경해도, 호출자의 변수 값에는 영향이 없다.

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

 

 

변수와 초기화

 

변수의 종류

  • 멤버 변수(필드) : 클래스에 선언
  • 지역 변수: 메서드에 선언, 매개변수도 지역 변수의 한 종류이다.

 

변수의 값 초기화

  • 멤버 변수: 자동 초기화
    • 숫자(int)=0, boolean=false, 참조형=null(참조할 대상이 없다는 뜻)
    • 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화
    • 개발자가 직접 초기화 해줄 수 있음
  • 지역 변수: 수동 초기화
    • 항상 직접 초기화해야 한다.

 

Null

참조형 변수에서 아직 가리키는 대상이 없다면 null이라는 값을 넣어둘 수 있다.

 

*참조형 변수를 만든 후 null 값 할당 후, 객체를 생성해 다시 할당을 한다 하자. 

그리고 다시 null 값을 할당한다면 더는 참조하지 않는 인스턴스는 JVM의 GC(가비지 컬렉션)이 자동으로 메모리에서 제거해준다.

 

 

NullPointerException

  • null을 가리킬 때 발생하는 예외
  • null에 .을 찍어 참조할 때 발생

 

 

💡 NullPointerException이 발생하면 null값에 .을 찍었다고 생각하면 된다.

 

 

 

 

참고) 김영한 - 실전 자바

https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard