목차
효과적인 최종
로컬 변수를 유효한 불변 변수로 제한하는 것은 개발자가 동시성 및 스레드로부터 안전한 개발을 더 잘 처리할 수 있도록 설계되었습니다. 변경 가능한 필드는 적절하게 관리되지 않으면 항상 동시성 문제의 잠재적 원인이 됩니다.
변수, 메소드 매개변수 등을 final로 선언하는 것이 좋은 습관이라고 생각합니다. 이를 가볍게 수정하지 않도록 팀 내 다른 사람들에게 상기시키는 것이 좋습니다. 이것을 따로 두고 최종으로 선언하면 컴파일러가 이를 클래스 파일로 컴파일할 때 잘 최적화할 것입니다.
Final은 선언한 변수를 더 안전하게 만들고 코드를 더 명확하게 보이게 할 수 있습니다. 효과적인 Java는 또한 불변 클래스의 사용을 옹호합니다.
Java java지도 시간 최종 종합 심층 분석

최종 종합 심층 분석

Jul 19, 2017 pm 01:14 PM
final ~에 대한


Java에는 final 키워드가 있으며 변수는 final 유형으로 선언될 수 있으며 final 유형 변수는 한 번만 할당될 수 있습니다. 최종 변수에 반복적으로 값을 할당하면 컴파일 오류가 발생합니다.


final 키워드의 의미는 무엇인가요?

final은 멤버 변수, 메소드, 클래스, 지역 변수를 선언할 수 있는 Java의 예약어입니다. 참조 final을 선언한 후에는 참조를 변경할 수 없습니다. 변수를 다시 초기화하려고 하면 컴파일러는 코드를 확인하고 컴파일 오류를 보고합니다.

최종변수란 무엇인가요?

final로 선언된 모든 멤버 변수 또는 지역 변수(메서드 또는 코드 블록의 변수를 지역 변수라고 함)를 최종 변수라고 합니다. 최종 변수는 종종 static 키워드와 함께 상수로 사용됩니다. 다음은 최종 변수의 예입니다.

public static final String LOAN = "loan";

LOAN = new String("loan") //잘못된 컴파일 오류

최종 변수는 다음과 같습니다. 읽기 전용 .

final 메소드란 무엇인가요?

Final 메소드에서도 메소드를 선언할 수 있습니다. 메서드 앞에 final 키워드를 추가하면 이 메서드는 하위 클래스의 메서드로 재정의될 수 없습니다. 메소드의 기능이 충분히 완성되어 하위 클래스에서 변경할 필요가 없다고 생각되면 해당 메소드를 final로 선언할 수 있습니다. 최종 메서드는 컴파일 타임에 정적으로 바인딩되고 런타임에 동적으로 바인딩될 필요가 없기 때문에 최종이 아닌 메서드보다 빠릅니다. 다음은 최종 메소드의 예입니다.

class PersonalLoan{
    public final String getName(){
        return "personal loan";
    }
}
 
class CheapPersonalLoan extends PersonalLoan{
    @Override
    public final String getName(){
        return "cheap personal loan"; //compilation error: overridden method is final
    }
}
로그인 후 복사

최종 수업이란 무엇인가요?

final로 수정된 클래스를 final 클래스라고 합니다. 최종 클래스는 일반적으로 기능적으로 완전하며 상속될 수 없습니다. Java에는 String, Interger 및 기타 래퍼 클래스와 같은 최종 클래스가 많이 있습니다. 다음은 최종 클래스의 예입니다.

final class PersonalLoan{
 
    }
 
    class CheapPersonalLoan extends PersonalLoan{  //compilation error: cannot inherit from final class
 
}
로그인 후 복사

최종 키워드의 이점

다음은 최종 키워드 사용의 몇 가지 이점을 요약한 것입니다

최종 키워드는 성능을 향상시킵니다. JVM과 Java 애플리케이션 모두 최종 변수를 캐시합니다.

추가 동기화 오버헤드 없이 멀티스레드 환경에서 최종 변수를 안전하게 공유할 수 있습니다.

final 키워드를 사용하여 JVM은 메소드, 변수 및 클래스를 최적화합니다.

효과적인 최종

변수는 다음 상황에 해당하는 경우에만 효과적으로 간주됩니다.

1. 최종으로 선언되지 않음

2. 가장 간단한 설명 방법

최종

이러한 수정 후에도 프로그램이 여전히 오류 없이 실행되고(컴파일이 통과된 경우 ^0^) 원래 실행 결과와 일치하는 경우 이 변수는 사실상 유효하다고 말할 수 있습니다. 결정적인. final의 이점

로컬 변수를 유효한 불변 변수로 제한하는 것은 개발자가 동시성 및 스레드로부터 안전한 개발을 더 잘 처리할 수 있도록 설계되었습니다. 변경 가능한 필드는 적절하게 관리되지 않으면 항상 동시성 문제의 잠재적 원인이 됩니다.

final 키워드 사용

변수, 메소드 매개변수 등을 final로 선언하는 것이 좋은 습관이라고 생각합니다. 이를 가볍게 수정하지 않도록 팀 내 다른 사람들에게 상기시키는 것이 좋습니다. 이것을 따로 두고 최종으로 선언하면 컴파일러가 이를 클래스 파일로 컴파일할 때 잘 최적화할 것입니다.

"클래스 파일의 최적화를 위해 소스 파일에서 final 키워드를 사용하는 것은 올바르지 않다"는 주장이 많이 있습니다. final 키워드 사용에 대한 Robert Simons Jr의 "

Hardcore Java

"을 읽어보는 것이 좋습니다. 세부 콘텐츠를 최적화했습니다. 애플리케이션에서 최종 키워드는 코드의 의도를 분명하게 보이게 하며 선언 후에도 변경되지 않으므로 매우 안전합니다.

public class FinalTest {

    public static final int N_ITERATIONS = 10_00_000;

    public static String testFinal() {
        final String a = "a";
        final String b = "b";
        return a + b;
    }

    public static String testNonFinal() {
        String a = "a";
        String b = "b";
        return a + b;
    }

    public static void main(String[] args) {
        long tStart, tElapsed;

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method with finals took " + tElapsed + " ms");

        tStart = System.currentTimeMillis();
        for (int i = 0; i < N_ITERATIONS; i++)
            testNonFinal();
        tElapsed = System.currentTimeMillis() - tStart;
        System.out.println("Method without finals took " + tElapsed + " ms");

    }

}
로그인 후 복사

실행 결과:

Method with finals took 5 ms
Method without finals took 273 ms
로그인 후 복사
Summary

Final은 선언한 변수를 더 안전하게 만들고 코드를 더 명확하게 보이게 할 수 있습니다. 효과적인 Java는 또한 불변 클래스의 사용을 옹호합니다.


위 내용은 최종 종합 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Java에서 final, finally 및 finalize의 차이점 Java에서 final, finally 및 finalize의 차이점 Feb 19, 2024 pm 12:16 PM

Java에서 final, finally 및 finalize의 차이점에는 특정 코드 예제가 필요합니다. Java 프로그래밍에서는 final, finally 및 finalize라는 세 가지 키워드가 철자가 비슷하더라도 의미와 사용법이 다른 경우가 많습니다. 이 기사에서는 이 세 가지 키워드의 차이점을 자세히 설명하고 독자의 이해를 돕기 위해 코드 예제를 제공합니다. 1. Final 키워드 final 키워드는 클래스, 메소드, 변수에 사용할 수 있습니다. 그 기능은 수정된 클래스를 만드는 것입니다.

Java에서는 final 키워드만 사용하여 상수를 정의할 수 있나요? Java에서는 final 키워드만 사용하여 상수를 정의할 수 있나요? Sep 20, 2023 pm 04:17 PM

상수 변수는 값이 고정되어 있고 프로그램에 단 하나의 복사본만 존재하는 변수입니다. 상수 변수를 선언하고 값을 할당하면 프로그램 전체에서 해당 값을 다시 변경할 수 없습니다. 다른 언어와 달리 Java는 상수를 직접 지원하지 않습니다. 그러나 변수를 static 및 final로 선언하여 상수를 생성할 수 있습니다. 정적 - 정적 변수를 선언하면 컴파일 타임에 메모리에 로드됩니다. 즉, 하나의 복사본만 사용할 수 있습니다. 최종 - 최종 변수를 선언한 후에는 해당 값을 수정할 수 없습니다. 따라서 인스턴스 변수를 static 및 final로 선언하여 Java에서 상수를 생성할 수 있습니다. 예시 데모 classData{&am

Java final 키워드의 기능은 무엇입니까 Java final 키워드의 기능은 무엇입니까 Nov 25, 2022 pm 04:26 PM

Java에서는 final을 사용하여 클래스, 메소드 및 변수를 수정할 수 있습니다. 최종 수정된 클래스는 해당 클래스가 다른 클래스에 의해 상속될 수 없다는 의미입니다. 즉, 이 클래스는 상속 트리의 리프 클래스이며, 이 클래스의 설계가 완벽하다고 간주되어 수정이나 확장이 필요하지 않다는 의미입니다. 최종 수정된 클래스의 메서드는 해당 클래스가 다른 클래스에서 상속될 수 없고 재정의될 수 없음을 의미합니다. 즉, 상속된 클래스가 메서드를 변경하지 못하도록 메서드가 잠겨 있습니다. final은 클래스의 변수를 수정하여 변수가 초기화되면 변경할 수 없음을 나타냅니다.

Java로 최종 객체를 생성하는 방법은 무엇입니까? Java로 최종 객체를 생성하는 방법은 무엇입니까? Apr 11, 2024 pm 02:00 PM

Java에서 최종 객체를 생성하는 방법에는 최종 변수를 선언하거나 최종 수정자를 사용하여 클래스를 선언하는 두 가지 방법이 있습니다. final 변수가 선언되면 초기화 프로그램을 통해 객체가 생성되고, final 클래스가 선언되면 클래스 인스턴스는 변경할 수 없습니다. 중요한 점은 최종 객체에 대한 참조는 여전히 변경될 수 있지만 해당 객체가 가리키는 객체는 변경할 수 없다는 것입니다.

자바의 최종 변수 자바의 최종 변수 Sep 24, 2023 pm 08:49 PM

최종 변수는 명시적으로 한 번만 초기화할 수 있습니다. Final로 선언된 참조 변수는 다른 객체를 참조하기 위해 재할당될 수 없습니다. 그러나 개체 내의 데이터는 변경될 수 있습니다. 따라서 객체의 상태는 변경될 수 있지만 참조는 변경할 수 없습니다. 변수의 경우 final 수정자는 일반적으로 static과 함께 사용되어 상수를 클래스 변수로 만듭니다. 예 publicclassTest{ finalintvalue=10; //다음은 상수 선언의 예입니다: &a

ColorOS15 인터페이스가 공개되었습니다. 이 기기에 대한 큰 변화는 다음과 같습니다. ColorOS15 인터페이스가 공개되었습니다. 이 기기에 대한 큰 변화는 다음과 같습니다. Aug 28, 2024 pm 03:31 PM

최근 ColorOS15가 내부 베타 테스트를 시작했습니다. 일부 네티즌이 어떻게 진행되는지 살펴보겠습니다. 위 그림에서 볼 수 있듯이 일부 네티즌은 업그레이드 후 OPPO Find X7의 "About This Machine" 인터페이스를 게시했습니다. ColorOS15Beta. 상단 패턴의 큰 변화에 더해, 하단의 구성 정보도 이전 두 열에서 단일 열 수직 분포로 변경되었습니다. 첨부된 내용은 Huawei, Honor, Xiaomi, OPPO, vivo 및 Meizu 등 6개 브랜드의 최신 버전 휴대폰에 대한 "이 휴대폰/휴대폰 정보" 인터페이스입니다. ColorOS 15와 관련하여 어떤 레이아웃이 더 마음에 드는지 알려주세요. 이전 뉴스에 따르면 LivePhoto 라이브 포토를 폭넓게 지원하는 것 외에도 "AirDrop&

ColorOS15 인터페이스가 공개되었습니다. 이 기기에 대한 큰 변화는 다음과 같습니다. ColorOS15 인터페이스가 공개되었습니다. 이 기기에 대한 큰 변화는 다음과 같습니다. Aug 28, 2024 pm 03:31 PM

최근 ColorOS15가 내부 베타 테스트를 시작했습니다. 일부 네티즌이 어떻게 진행되는지 살펴보겠습니다. 위 그림에서 볼 수 있듯이 일부 네티즌은 업그레이드 후 OPPO Find X7의 "About This Machine" 인터페이스를 게시했습니다. ColorOS15Beta. 상단 패턴의 큰 변화에 더해, 하단의 구성 정보도 이전 두 열에서 단일 열 수직 분포로 변경되었습니다. 첨부된 내용은 Huawei, Honor, Xiaomi, OPPO, vivo 및 Meizu 등 6개 브랜드의 최신 버전 휴대폰에 대한 "이 휴대폰 정보" 인터페이스입니다. ColorOS 15와 관련하여 어떤 레이아웃이 더 마음에 드는지 알려주세요. 이전 뉴스에 따르면 LivePhoto 라이브 포토를 폭넓게 지원하는 것 외에도 "AirDrop&

PHP의 특수 구문: Static, Final, Abstract 및 기타 키워드 PHP의 특수 구문: Static, Final, Abstract 및 기타 키워드 May 11, 2023 pm 04:00 PM

PHP는 웹 개발에 널리 사용되는 인기 있는 오픈 소스 서버 측 스크립팅 언어입니다. PHP 언어는 배우고 사용하기 쉬울 뿐만 아니라 다양한 프로그래밍 패러다임, 객체지향 프로그래밍, 함수형 프로그래밍 등을 지원합니다. PHP에는 Static, Final, Abstract 등과 같은 몇 가지 특수 구문 키워드가 있습니다. 이러한 키워드는 객체 지향 프로그래밍에서 특별한 기능을 가지고 있습니다. 이 기사에서는 이러한 키워드를 자세히 소개합니다. 정적 키워드 PHP에서 정적 키워드는 두 가지 용도로 사용됩니다.

See all articles