«final» 태그된 질문

22
Java에서 "최종 클래스"의 요점은 무엇입니까?
Java에 관한 책을 읽고 있으며 전체 클래스를로 선언 할 수 있다고 말합니다 final. 나는 이것을 사용할 곳을 생각할 수 없다. 나는 프로그래밍에 익숙 하지 않으며 프로그래머가 실제로 프로그램에서 이것을 사용 하는지 궁금 합니다. . 그들이 사용하는 경우, 언제 사용하면 더 잘 이해하고 사용시기를 알 수 있습니다. Java가 객체 지향적이고 클래스를 …
569 java  final 

18
Java의 "최종"키워드는 어떻게 작동합니까? (여전히 개체를 수정할 수 있습니다.)
Java에서는 final변수와 함께 키워드를 사용하여 값을 변경하지 않도록 지정합니다. 그러나 클래스의 생성자 / 메소드에서 값을 변경할 수 있음을 알았습니다. 변수가 static그렇다면 컴파일 오류입니다. 코드는 다음과 같습니다. 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 …
480 java  final 

11
Java 리플렉션을 사용하여 개인 정적 최종 필드 변경
private static final불행히도 런타임에 변경 해야하는 필드 가있는 클래스가 있습니다. 리플렉션을 사용하면이 오류가 발생합니다. java.lang.IllegalAccessException: Can not set static final boolean field 값을 변경하는 방법이 있습니까? Field hack = WarpTransform2D.class.getDeclaredField("USE_HACK"); hack.setAccessible(true); hack.set(null, true);

12
Java의 메소드 매개 변수에 키워드 "final"을 사용해야하는 이유는 무엇입니까?
메소드 매개 변수에 사용될 때 final키워드가 실제로 편리한 위치를 이해할 수 없습니다 . 익명 클래스의 사용, 가독성 및 의도 선언을 제외하면 거의 가치가 없어 보입니다. 일부 데이터를 일정하게 유지하는 것은 생각만큼 강력하지 않습니다. 매개 변수가 프리미티브 인 경우 매개 변수가 메소드에 값으로 전달되므로 변경되지 않고 범위를 벗어나지 않습니다. 참조로 매개 …

14
최종과 실제 최종의 차이점
Java 8에서 람다를 가지고 놀고 있는데 경고가 나왔습니다 local variables referenced from a lambda expression must be final or effectively final. 익명 클래스에서 변수를 사용할 때 외부 클래스에서 최종 변수 여야하지만 여전히 final 과 효과적으로 final 의 차이점은 무엇 입니까?

13
Java에서 최종 키워드를 사용하면 성능이 향상됩니까?
자바에서는 final키워드를 사용할 수있는 곳이 많지만 그 용도는 드물다. 예를 들면 다음과 같습니다. String str = "abc"; System.out.println(str); 위의 경우에는 str가능 final하지만 일반적으로 해제되어 있습니다. 메서드를 재정의하지 않을 때는 final 키워드를 사용할 수 있습니다. 상속되지 않는 클래스의 경우와 유사합니다. 이러한 경우 중 하나 또는 모두에 최종 키워드를 사용하면 실제로 실적이 …
347 java  final 


20
다른 메소드에 정의 된 내부 클래스 내에서 비 ​​최종 변수를 참조 할 수 없습니다.
편집 : 타이머를 통해 여러 번 실행되는 여러 변수의 값을 변경해야합니다. 타이머를 통해 반복 할 때마다 값을 계속 업데이트해야합니다. 값을 업데이트 할 수 없으므로 값을 final로 설정할 수 없지만 아래의 초기 질문에서 설명하는 오류가 발생합니다. 이전에 아래 내용을 작성했습니다. "다른 방법으로 정의 된 내부 클래스 내의 비 최종 변수를 참조 …

11
대문자로 "정적 최종 로거"를 선언해야합니까?
Java에서 정적 최종 변수는 상수이며 규칙은 대문자 여야한다는 규칙입니다. 그러나 대부분의 사람들은 로거를 소문자로 선언하여 PMD 에서 위반으로 나타납니다 . 예 : private static final Logger logger = Logger.getLogger(MyClass.class); 그냥 검색 구글 이나 SO "정적 최종 로거를위한"당신은 자신이 표시됩니다. 대신 LOGGER를 사용해야합니까?

6
Java에서 final로 선언 된 ==와 문자열 비교
Java의 문자열에 대한 간단한 질문이 있습니다. 다음 간단한 코드 세그먼트는 두 문자열을 연결 한 다음와 비교합니다 ==. String str1="str"; String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); 비교 표현 concat=="string"반환 false명백한로 (I 사이의 차이 이해 equals()와 ==). 이 두 문자열이 final이렇게 선언 되면 final String str1="str"; final String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); concat=="string"이 …
220 java  string  final 


6
최종 정의가 잘못 되었습니까?
먼저 퍼즐 : 다음 코드는 무엇을 인쇄합니까? public class RecursiveStatic { public static void main(String[] args) { System.out.println(scale(5)); } private static final long X = scale(10); private static long scale(long value) { return X * value; } } 대답: 0 아래 스포일러. 당신이 인쇄 할 경우 X크기 (길이) 및 재정에 …



15
메소드 매개 변수 및 로컬 변수에 final을 언제 사용해야합니까?
가능한 한 많이 사용하도록 제안 하는 몇 가지 참조 ( 예 :)를 찾았 final으며 그것이 얼마나 중요한지 궁금합니다. 이것은 주로 최종 메소드 나 클래스가 아니라 메소드 매개 변수 및 로컬 변수의 컨텍스트에 있습니다. 상수의 경우 분명히 의미가 있습니다. 한편으로, 컴파일러는 최적화를 수행 할 수 있으며 프로그래머의 의도를보다 명확하게합니다. 반면에 자세한 …
171 java  final 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.