Java에서 "final" 키워드는 불변 값을 갖는 변수를 선언하는 데 사용됩니다. 그러나 최종 변수에 할당된 개체를 계속 수정할 수 있는 시나리오가 발생할 수 있습니다. 이 동작을 수행하려면 final의 기능에 대한 더 깊은 이해가 필요합니다.
인스턴스 변수:
정적 변수:
다음 코드를 고려하세요.
import java.util.ArrayList; import java.util.List; class Test { private final List foo; public Test() { foo = new ArrayList(); foo.add("foo"); // Modification-1 } public static void main(String[] args) { Test t = new Test(); t.foo.add("bar"); // Modification-2 System.out.println("print - " + t.foo); } }
Java 1.8에서는 "Effective Final" 개념이 도입되었습니다. 변수. 이는 중첩 클래스 또는 익명 내부 클래스 내에서 효과적으로 변경할 수 없는 지역 변수입니다. "final" 키워드를 사용하지 않는 한 재할당할 수 없습니다.
위 내용은 Java의 `final` 키워드가 객체 수정에 어떤 영향을 미칩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!