기본형과 참조형

0taetae·2025년 1월 18일
post-thumbnail

Java는 항상 변수의 값을 복사해서 대입한다.

✏️기본형 vs 참조형

  1. 기본형
    • int, long, double, boolen
    • 변수에 사용할 을 직접 넣을 수 있는 데이터 타입
    • 값을 그대로 사용할 수 있다.
    • 연산이 가능하다.
    • 기본형을 새로 정의할 수 없다.
  2. 참조형
    • 객체 또는 배열
    • 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입
    • 참조값을 그대로 사용할 수 없다.
    • 연산이 불가능하다.
    • 참조형인 클래스만 직접 정의할 수 있다.
      💡String은 클래스이다. 하지만 문자 값을 바로 대입할 수 있다.

✏️변수 대입

기본형인 경우 변수에 들어있는 실제 사용하는 을 복사해서 대입하고,
참조형인 경우 변수에 들어 있는 참조값(객체의 주소)을 복사해서 대입한다.
💡즉, 항상 변수의 값을 복사해서 대입한다.

✏️메서드 호출

메서드를 호출할 때 사용하는 매개변수도 변수이다.
메서드를 호출할 때 매개변수에 값을 전달하는 것도 값을 복사해서 전달한다.

  1. 기본형

    • 메서드로 기본형 데이터를 전달하면, 해당 값이 복사되어 전달된다.
    • 메서드 내부에서 매개변수의 값을 변경해도, 호출자의 변수 값에는 영향이 없다.
  2. 참조형

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

✏️변수와 초기화

  1. 변수의 종류
    • 멤버 변수(필드) : 클래스에 선언
    • 지역 변수 : 메서드에 선언
      • 매개변수
  2. 변수의 값 초기화
    • 멤버 변수
      • 자동 초기화
      • 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화 된다.
      • int = 0, boolean = false, 참조형 = null
      • 초기값을 직접 지정할 수 있다.
    • 지역 변수
      • 수동 초기화
      • 항상 직접 초기화해야 한다.

✏️null

  • null은 값이 존재하지 않는, 없다는 뜻이다.
  • 아직 가리키는 대상이 없거나, 가리키는 대상을 나중에 입력하고 싶을 때 null 값을 넣어둘 수 있다.

✏️NullPointerException

  • null을 가리킬 때 발생하는 예외이다.
  • 찾아갈 수 있는 객체(인스턴스)가 없다는 것이다. 즉, null 값은 참조할 주소가 존재하지 않는다는 뜻이다.
  • 객체를 참조할 때 .(dot)을 사용하는데, null에 .(dot)을 찍었을 때 발생한다.

참고자료

  • 김영한의 실전 자바 - 기본편

0개의 댓글