意思:final 意義是【只可以被賦值一次】。
賦值位置:在【宣告時賦值】、在【建構方法中賦值】
範例:
package com.dada.data; public class TestFinal { // 1.声明时赋值 private final int i = 0; private final int j; public TestF() { // 2.构造方法中赋值 j = 10; } }
注意:我們說final 是僅可以賦值一次沒錯,但是我們知道在java 中【值有兩種】,【基本資料型別的值】和【引用資料型別的值】,對基本資料型別來說,賦值就是直接把【值賦給變數】,對於引用資料型別來說就是把【引用賦給變數】。
因此:僅可以賦值一次的意義也就分為兩種情況了,1.如果是基本資料型,那麼就是值本身不能變;2.如果是引用資料型別的值,那就是引用不能變,但是被引用的內容是可以變的。
範例:
定義Student 類別:
package com.dada.data; public class Student { private int id; private String name; private int score; public Student(int id, String name, int score) { this.id = id; this.name = name; this.score = score; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return "id: " + id + "\t name:" + name + "\tscore:" + score; } }
定義測試類別:
#package com.dada.data; public class TestFinal { private final Student ss; public static void main(String[] args) { TestFinal tf = new TestFinal(); } public TestFinal() { Student student = new Student(1, "dada", 3); // 第一次赋值 ss = student; System.out.println(ss.toString()); // 修改引用所对应的对象的内容 student.setId(2); student.setName("hehe"); student.setScore(10); System.out.println(ss.toString()); } }
輸出結果:
id: 1 name:dada score:3 id: 2 name:hehe score:10
總結:
由上面的例子可以知道,變數被final 修飾之後其引用的內容還是可以被修改的,之所以很多時候我們感覺它不能被修改是因為:
1.通常我們是在定義變數時進行的賦值,這個時候對於基本型別資料來說它是永遠不能改變的。
2.對於引用型別資料來說,因為我們無法取得對應的引用,所以也會覺得引用型別資料也是不能被修改的。
以上是java final本質解釋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

Java的五大特色是多態性、Lambda表達式、StreamsAPI、泛型和異常處理。 1.多態性讓不同類的對象可以作為共同基類的對象使用。 2.Lambda表達式使代碼更簡潔,特別適合處理集合和流。 3.StreamsAPI高效處理大數據集,支持聲明式操作。 4.泛型提供類型安全和重用性,編譯時捕獲類型錯誤。 5.異常處理幫助優雅處理錯誤,編寫可靠軟件。

java'stopfeatureSnificallyenhanceItsperformanCandScalability.1)對象 - 方向clincipleslike-polymormormormormormormormormormormormorableableflexibleandscalablecode.2)garbageCollectionAutectionAutoctionAutoctionAutoctionAutoctionAutoctionAutoMenateMememorymanateMmanateMmanateMmanagementButCancausElatemention.3)

JVM的核心組件包括ClassLoader、RuntimeDataArea和ExecutionEngine。 1)ClassLoader負責加載、鏈接和初始化類和接口。 2)RuntimeDataArea包含MethodArea、Heap、Stack、PCRegister和NativeMethodStacks。 3)ExecutionEngine由Interpreter、JITCompiler和GarbageCollector組成,負責bytecode的執行和優化。

Java'ssafetyandsecurityarebolsteredby:1)strongtyping,whichpreventstype-relatederrors;2)automaticmemorymanagementviagarbagecollection,reducingmemory-relatedvulnerabilities;3)sandboxing,isolatingcodefromthesystem;and4)robustexceptionhandling,ensuringgr

Javaoffersseveralkeyfeaturesthatenhancecodingskills:1)對象 - 方向 - 方向上的allowslowsmodelowsmodelingreal-worldentities

thejvmisacrucialcomponentthatrunsjavacodebytranslatingitolachine特定結構,影響性能,安全性和便攜性。 1)theclassloaderloader,links andinitializesClasses.2)theexecutionEngineExecutionEngineExecutionEngineExecuteNexeCuteByteCuteByteCuteByTecuteByteCuteByteCuteBytecuteBytecuteByteCoDeinintolachineinstructionsions.3)Memo.3)Memo


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器