面試官:請詳細說明final關鍵字的作用,以及它與static的差異
前言:
果不其然,在上次的面試中面試官又問了這樣的問題:請你說下final關鍵字的具體含義,並詳細講解它的作用以及它與static的區別。為了讓正在面試中的各位重視這個問題,特意將答案整理出來以供大家參考。
1、final關鍵字的意思
final表面意思是不可更改的,恆量的意思;類似C語言中的const關鍵字,指的是無法改變的量,這與靜態標量static是有差別的,靜態變數指的是只有一份儲存空間,值是可以改變的。使用final一定原因是出於軟體設計的角度,因為別人看到final這個關鍵字就知道是什麼意思,達到心領神會的效果,但也正是由於這種"語義"的存在,在程式設計中要謹慎使用,以免誤用。
在Java中final修飾的是常數,而且變數名稱要大寫;
Math類別:public static final double E = 2.7182818284590452354;public static final double PI = 3.1415926535846. .....java源碼中好多變數都用final修飾
public class Test01{ final int x1= 10000; final int x2; final int x3; { x2 = 20000; } Public exe3(){ this.x3 = 3000; } }
final Operate operate = new Operate() ;// operate有一个普通变量i初始化为10operate.i = 11; operate.i = 12; System.out.println(operate.i); //输出12上述是自定义类,即便是数组,List等集合类型,所保存的值也是可以更改的。
public class Test { public static void main(String[] args) { MyClass myClass1 = new MyClass(); MyClass myClass2 = new MyClass(); System.out.println(myClass1.i); System.out.println(myClass1.j); System.out.println(myClass2.i); System.out.println(myClass2.j); } } class MyClass { public final double i = Math.random(); public static double j = Math.random(); } //运行结果,两次打印,j的值都是一样的,j是static类型的属于类,因此两次值相同。i不是static的因此属于对象,但是i的值是不可变的。
java影片教學)
4、其他final相關的知識public class Test { public static void main(String[] args) { String a = "hello2"; final String b = "hello"; String d = "hello"; String c = b + 2; String e = d + 2; System.out.println((a == c)); System.out.println((a == e)); } } //final类型,在编译阶段能够确定值。 //非final类型在编译阶段确定不了 输出: true false public class Test { public static void main(String[] args) { String a = "hello2"; final String b = getHello(); String c = b + 2; System.out.println((a == c)); } public static String getHello() { return "hello"; } } //即便是final类型,编译阶段也确定不了值。输出false
http://www.cnblogs.com/liun1994/p/6691094.html
原文作者:隨風浪子90以上是面試官:請詳細說明final關鍵字的作用,以及它與static的差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

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

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

選擇一個Node的Docker映像看起來像是小事,但是映像的大小和潛在漏洞可能會對你的CI/CD流程和安全造成重大的影響。那我們要如何選擇一個最好Node.js Docker映像呢?

Java中final、finally、finalize的區別,需要具體程式碼範例在Java程式設計中,經常會遇到final、finally、finalize這三個關鍵字,它們雖然拼字相似,但卻有不同的意思和用法。本文將詳細解釋這三個關鍵字的區別,同時給出程式碼範例以幫助讀者更好地理解。一、final關鍵字final關鍵字可以用於類別、方法和變數。它的作用是使被修飾的類

跨域是開發中常會遇到的場景,也是面試中常會討論的問題。掌握常見的跨域解決方案及其背後的原理,不僅可以提高我們的開發效率,還能在面試中表現的更加

常量變數是其值固定且程式中只存在一個副本的變數。一旦你聲明了一個常數變數並給它賦值,你就不能在整個程式中再次改變它的值。與其他語言不同,Java不直接支援常數。但是,你仍然可以透過宣告一個變數為靜態和final來創建一個常數。靜態-一旦你聲明了一個靜態變量,它們將在編譯時加載到內存中,即只有一個副本可用。 Final-一旦你宣告了一個final變量,就不能再修改它的值。因此,你可以透過將實例變數宣告為靜態和final來在Java中創建一個常數。範例 示範classData{&am

深入解析C語言中static關鍵字的功能和用法在C語言中,static是一種非常重要的關鍵字,它可以被用於函數、變數和資料類型的定義。使用static關鍵字可以改變物件的連結屬性、作用域和生命週期,以下就來詳細解析一下static關鍵字在C語言中的作用和用法。 static變數與函數:在函數內部使用static關鍵字定義的變數稱為靜態變量,它具有全域生命週

在java中,final可以用來修飾類別、方法和變數。 final修飾類,表示該類是無法被任何其他類繼承的,意味著此類在一個繼承樹中是一個葉子類,並且此類的設計已被認為很完美而不需要進行修改或擴展。 final修飾類別中的方法,表示該類別是無法被任何其他類別繼承的,不可以被重寫;也就是把該方法鎖定了,以防止繼承類別對其進行更改。 final修飾類別中的變量,表示該變數一旦被初始化就不可改變。

Go框架是一組擴充Go內建程式庫的元件,提供預製功能(例如網路開發和資料庫操作)。受歡迎的Go框架包括Gin(Web開發)、GORM(資料庫操作)和RESTful(API管理)。中間件是HTTP請求處理鏈中的攔截器模式,用於在不修改處理程序的情況下新增身份驗證或請求日誌記錄等功能。 Session管理透過儲存使用者資料來保持會話狀態,可以使用gorilla/sessions管理session。

什麼是JPA?它與JDBC有什麼不同? JPA(JavaPersistenceapi)是一個用於物件關係映射(ORM)的標準接口,它允許Java開發者使用熟悉的Java物件來操作資料庫,而無需編寫直接針對資料庫的sql查詢。而JDBC(JavaDatabaseConnectivity)是Java用來連接資料庫的標準API,它需要開發者使用SQL語句來操作資料庫。 JPA將JDBC封裝起來,為物件-關聯映射提供了更方便、更高層級的API,簡化了資料存取操作。在JPA中,什麼是實體(Entity)?實體
