日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 定义一组常量用什么最好_Java语言中定义常量注意事项解析

發布時間:2025/3/12 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 定义一组常量用什么最好_Java语言中定义常量注意事项解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、常量定義的基本注意事項。

在Java語言中,主要是利用final關鍵字(在Java類中靈活使用Static關鍵字)來定義常量。當常量被設定后,一般情況下就不允許再進行更改。如可以利用如下的形式來定義一個常量:final double PI=3.1315。在定義這個常量時,需要注意如下內容:

一是常量在定義的時候,就需要對常量進行初始化。也就是說,必須要在常量聲明時對其進行初始化。這跟局部變量或者成員變量不同。當在常量定義的時候初始化過后,在應用程序中就無法再次對這個常量進行賦值。如果強行賦值的話,數據庫會跳出錯誤信息,并拒絕接受這一個新的值。(接口中定義的常量的訪問方法)

二是final關鍵字使用的范圍。這個final關鍵字不僅可以用來修飾基本數據類型的常量,還可以用來修飾對象的引用或者方法。如數組就是一個對象引用。為此可以使用final關鍵字來定義一個常量的數組。這就是Java語言中一個很大的特色。一旦一個數組對象被final關鍵字設置為常量數組之后,它只能夠恒定的指向一個數組對象,無法將其改變指向另外一個對象,也無法更改數組(有序數組的插入方法可使用的二分查找算法)中的值。

三是需要注意常量的命名規則。不同的語言,在定義變量或者常量的時候,都有自己一套編碼規則。這主要是為了提高代碼的共享程度與提高代碼的易讀性。在Java語言中,定義常量的時候,也有自己的一套規則。如在給常量取名的時候,一般都用大寫字符。在Java語言中,大小寫字符是敏感的。之所以采用大寫字符,主要是跟變量進行區分。雖然說給常量取名時采用小寫字符,也不會有語法上的錯誤。但是,為了在編寫代碼時能夠一目了然的判斷變量與常量,最好還是能夠將常量設置為大寫字符。另外,在常量中,往往通過下劃線來分隔不同的字符。而不想對象名或者類名那樣,通過首字符大寫的方式來進行分隔。這些規則雖然不是強制性的規則,但是為了提高代碼友好性,方便開發團隊中的其他成員閱讀,這些規則還是需要遵守的。沒有規矩,不成方圓。

總之,Java開發人員需要注意,被定義為final的常量需要采用大寫字母命名,并且中間最好使用下劃線作為分隔符來進行連接多個單詞。在定義final的數據不論是常量、對象引用還是數組,在主函數中都不可以改變。否則的話,會被編輯器拒絕并提示錯誤信息。二、Final關鍵字與static關鍵字同時使用。

由于Java是面向對象的語言,所以在定義常量的時候還有與其它編程語言不同的地方。如一段程序代碼從編輯到最后執行,即使需要經過兩個過程,分別為代碼的裝載與對象的建立。不同的過程對于常量的影響是不同的。現在假設有如下的代碼:

Private static Random rd1=new Random(); //實例化一個隨機數生成對象。

Private final int int1=rd1.nestInt(10); //生成隨機數并賦值給常量int1

Private static final int int2=rd1.nestInt(10); //生成隨機數并賦值給常量int2

這上面的語句的大致含義是,通過Java語言提供的隨機數類對象,生成隨機數。并把生成的隨機數賦值給常量int1與int2。細心的讀者會發現,雖然同樣是賦值語句,但是以上兩個語句中有一個細小的差別,即在第二條語句中多了一個關鍵字static。關于關鍵字的用途,筆者在以前的文章中也有談到過。這個是一個靜態的概念。即當利用這個關鍵字來修飾一個變量的時候,在創建對象之前就會為這個變量在內存中創建一個存儲空間。以后創建對對象如果需要用到這個靜態變量,那么就會共享這一個變量的存儲空間。也就是說,在創建對象的時候,如果用到這個變量,那么系統不會為其再分配一個存儲空間,而只是將這個內存存儲空間的地址賦值給他。如此做的好處就是可以讓多個對象采用相同的初始變量。當需要改變多個對象中變量值的時候,只需要改變一次即可。從這個特性上來說,其跟常量的作用比較類似。不過其并不能夠取代常量的作用。

那么以上兩條語句有什么差別嗎?我們首先來看??? Private final int int1=rd1.nestInt(10)這條語句。雖然int1也是一個常量,但是其是在對象建立的時候初始化的。如現在需要創建兩個對象,那么需要對這個變量初始化兩次。而在兩次對象初始化的過程中,由于生成的隨機數不同,所以常量初始化的值也不同。最后導致的結果就是,雖然int1是常量,但是在不同對象中,其值有可能是不同的。可見,定義為final的常量并不是恒定不變的。因為默認情況下,定義的常量是在對象建立的時候被初始化。如果在建立常量時,直接賦一個固定的值,而不是通過其他對象或者函數來賦值,那么這個常量的值就是恒定不變的,即在多個對象中值也使相同的。但是如果在給常量賦值的時候,采用的是一些函數或者對象(如生成隨機數的Random對象),那么每次建立對象時其給常量的初始化值就有可能不同。這往往是程序開發人員不愿意看到的。有時候程序開發人員希望建立再多的對象,其在多個對象中引用常量的值都是相同的。

要實現這個需求的話,有兩個方法。一是在給常量賦值的時候,直接賦予一個固定的值,如abcd等等。而不是一個會根據環境變化的函數或者對象。像生成隨機數的對象,每次運行時其結果都有可能不能。利用這個對象來對常量進行初始化的時候,那么結果可能每次創建對象時這個結果都有可能不同。最后這個常量只能夠做到在一個對象內是恒定不變的,而無法做到在一個應用程序內是恒定不變的。另外一個方法就是將關鍵字static與關鍵字final同時使用。一個被定義為final的對象引用或者常量只能夠指向唯一的一個對象,不可以將他再指向其他對象。但是,正如上面舉的一個隨機數的例子,對象本身的內容的值是可以改變的。為了做到一個常量在一個應用程序內真的不被更改,就需要將常量聲明為staitc final的常量。這是什么意思呢?正如上面筆者所說的,當執行一個應用程序的時候,可以分為兩個步驟,分別為代碼裝載與對象創建。為了確保在所有情況下(即創建多個對象情況下)應用程序還能夠得到一個相同值的常量,那么就最好告訴編譯器,在代碼裝載的時候就初始化常量的值。然后在后續創建對象的時候,只引用這個常量對象的地址,而不對其再進行再次初始化。就如同Private static final int int2=rd1.nestInt(10)這種形式來定義常量。如此,在后續多次創建對象后,這個常量int2的值都是相同的。因為在創建對象時,只是引用這個常量,而不會對這個常量再次進行初始化。

由于加上這個static關鍵字之后,相當于改變了常量的作用范圍。為此程序開發人員需要了解自己的需求,然后選擇是否需要使用這個關鍵字。在初始化常量的時候,如果采用函數(如系統當前時間)或者對象(如生成隨機數的對象)來初始化常量,可以預見到在每次初始化這個常量時可能得到不同的值,就需要考慮是否要采用這個static關鍵字。一般情況下,如果只需要保證在對象內部采用這個常量的話,那么這個關鍵字就可有可無的。但是反過來,如果需要在多個對象中引用這個常量,并且需要其值相同,那么就必須要采用static這個關鍵字了。以確保不同對象中都只有一個常量的值。或者說,不同對象中引用的常量其實指向的是內存中的同一塊區域。

總結

以上是生活随笔為你收集整理的java 定义一组常量用什么最好_Java语言中定义常量注意事项解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人黄色动漫在线观看 | 黄黄的视频在线观看 | 欧美女人一区二区 | 小明天天看 | 久久黄色av | 在线视频精品 | 亚洲一区二区三区婷婷 | 国产精品成av人在线视午夜片 | 一本色道久久88亚洲精品综合 | 在线免费日韩av | 日本精品一区二区在线观看 | 人妻少妇精品中文字幕av蜜桃 | 亚洲精品中文字幕在线 | 国产黄 | 中文字幕乱码一区二区 | 国产嗷嗷叫| av网站免费看 | 亚洲欧美一区二区三 | 偷拍欧美另类 | 蜜乳av一区二区 | 国产在线视频网址 | 特淫毛片| 麻豆视频网址 | 亚洲性图av| 亚州精品视频 | 日韩福利网站 | 99热国产| 亚洲自拍偷拍一区二区 | 国产精品夜夜嗨 | 亚洲av无码乱码国产麻豆 | 99久久精品国产成人一区二区 | 91老女人| 男人私人影院 | 在线天堂中文在线资源网 | 男人插女人的网站 | 懂色一区二区三区免费观看 | 一级a性色生活片久久无 | 小向美奈子在线观看 | 亚洲精品无码久久 | 国产成人麻豆精品午夜在线 | 色天天综合 | 超碰免费在线播放 | 欧美黄在线观看 | 亚洲激情区 | 天天想你免费观看完整版高清电影 | 中文字幕一区二区在线观看 | 成人国产精品 | 日韩精品在线免费 | 黄色在线观看免费 | 国产老女人精品毛片久久 | www.久久久久久久久 | 欧美一级视频 | 亚洲AV成人无码久久精品同性 | 一本到在线 | 麻豆精品国产传媒 | 在线免费av网 | 成人黄色在线网站 | 亚洲精品一区二区18漫画 | 91夫妻视频| 亚洲高清免费 | 人妖粗暴刺激videos呻吟 | 永久免费的av网站 | 亚洲激情免费视频 | 呦呦在线视频 | 777色婷婷| 久久夜色精品 | 134vcc影院免费观看 | 91在线视频免费 | 爱搞逼综合 | 欧美夜夜| 亚洲av无码精品色午夜果冻不卡 | 永久免费av | 国产美女自拍视频 | 久久久福利 | 日韩视频在线一区 | 超清纯大学生白嫩啪啪 | 婷婷久久亚洲 | 色a视频 | 欧美激情片一区二区 | 色老汉av一区二区三区 | 超碰在线cao | 久久精品一区二区 | 又粗又大又硬毛片免费看 | 激情青青草 | 500福利视频导航 | 欲色综合 | 免费av小说 | 久久99精品久久久久久 | www视频在线观看 | 国产精品一二区在线观看 | 日韩爱爱免费视频 | 国产乱码精品一区二区三区亚洲人 | 韩国精品一区二区 | 日韩高清精品免费观看 | 天堂精品在线 | 人妖交videohd另类 | 美女搞黄视频网站 | 爽爽窝窝午夜精品一区二区 | 日日爱夜夜操 |