BACK/JAVA

[JAVA] 실전 자바 - Final 키워드

연듀 2024. 1. 30. 15:54

 

Final 

 

변수에 final 키워드가 붙으면 값을 변경할 수 없다.

final 을 지역 변수에 선언 시 최초 한번만 할당할 수 있다.

매개변수에 final 선언 시 메서드 내부에서 매개변수에 값을 변경할 수 없다.

 

//final 필드 - 생성자 초기화 
public class ConstructInit {
     final int value;

     public ConstructInit(int value) {
         this.value = value;
} }

 

final을 필드에서 사용할 경우 필드는 생성자를 통해서 한번만 초기화 가능

 

//final 필드 - 필드 초기화 
public class FieldInit {
     static final int CONST_VALUE = 10;
     final int value = 10;
 }

 

필드에서 초기화하면 이미 값이 설정되어 생성자를 통해서 초기화 불가능

 

 

 

final 필드를 필드에서 초기화하는 경우 모든 인스턴스가 같은 값을 가져 메모리를 낭비한다.

→ static 을 사용해 static 영역에 값을 하나만 두는게 효율적이다.

 

 

상수: static final

 

static 영역에 존재 + final 키워드로 초기화 값이 변하지 않도록

 

⇒ 중복과 메모리 비효율 문제 해결

 

 

 

final 변수와 참조

 

 

참조형 변수에 final이 붙으면 참조 값 변경 불가

참조 대상의 객체 내부 값은 변경 가능

 

 

 

 

참고) 김영한 - 실전 자바

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