- 首頁(yè)|
- 網(wǎng)校|
- 焚題庫(kù)|
- APP |
-
微信公眾號(hào)
常量是指在程序的整個(gè)運(yùn)行過(guò)程中值保持不變的量。在這里要注意常量和常量值是不同的概念,常量值是常量的具體和直觀的表現(xiàn)形式,常量是形式化的表現(xiàn)。通常在程序中既可以直接使用常量值,也可以使用常量。
下面我們來(lái)系統(tǒng)地認(rèn)識(shí)一下 Java 中的常量值,以及定義常量的方法。
常量值
常量值又稱(chēng)為字面常量,它是通過(guò)數(shù)據(jù)直接表示的,因此有很多種數(shù)據(jù)類(lèi)型,像整型和字符串型等。下面一一介紹這些常量值。
整型常量值
Java 的整型常量值主要有如下 3 種形式。
十進(jìn)制數(shù)形式:如 54、-67、0。
八進(jìn)制數(shù)形式:Java 中的八進(jìn)制常數(shù)的表示以 0 開(kāi)頭,如 0125 表示十進(jìn)制數(shù) 85,-013 表示十進(jìn)制數(shù) -11。
十六進(jìn)制數(shù)形式:Java 中的十六進(jìn)制常數(shù)的表示以 0x 或 0X 開(kāi)頭,如 0x100 表示十進(jìn)制數(shù) 256,-0x16 表示十進(jìn)制數(shù) -22。
整型(int)常量默認(rèn)在內(nèi)存中占 32 位,是具有整數(shù)類(lèi)型的值,當(dāng)運(yùn)算過(guò)程中所需值超過(guò) 32 位長(zhǎng)度時(shí),可以把它表示為長(zhǎng)整型(long)數(shù)值。長(zhǎng)整型類(lèi)型則要在數(shù)字后面加 L 或 1, 如 697L,表示一個(gè)長(zhǎng)整型數(shù),它在內(nèi)存中占 64 位。
實(shí)型常量值
Java 的實(shí)型常量值主要有如下兩種形式。
十進(jìn)制數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如 12.34、-98.0。
科學(xué)記數(shù)法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必須有數(shù)字,且 e 或 E 之后的數(shù)字必須為整數(shù)。
Java 實(shí)型常量默認(rèn)在內(nèi)存中占 64 位,是具有雙精度型(double)的值。如果考慮到需要節(jié)省運(yùn)行時(shí)的系統(tǒng)資源,而運(yùn)算時(shí)的數(shù)據(jù)值取值范圍并不大且運(yùn)算精度要求不太高的情況,可以把它表示為單精度型(float)的數(shù)值。
單精度型數(shù)值一般要在該常數(shù)后面加 F 或 f,如 69.7f,表示一個(gè) float 型實(shí)數(shù),它在內(nèi)存中占 32 位(取決于系統(tǒng)的版本高低)。
布爾型常量值
Java 的布爾型常量只有兩個(gè)值,即 false(假)和 true(真)。
字符型和字符串常量值
Java 的字符型常量值是用單引號(hào)引起來(lái)的一個(gè)字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的單引號(hào)和雙引號(hào)不可混用。雙引號(hào)用來(lái)表示字符串,像 "11"、"d" 等都是表示單個(gè)字符的字符串。
除了以上所述形式的字符常量值之外,Java 還允許使用一種特殊形式的字符常量值來(lái)表示一些難以用一般字符表示的字符,這種特殊形式的字符是以開(kāi)頭的字符序列,稱(chēng)為轉(zhuǎn)義字符。
注意:這里表示字符和字符串的單引號(hào)和雙引號(hào)都必須是英語(yǔ)輸入環(huán)境下輸入的符號(hào)。
表 1 列出了 Java 中常用的轉(zhuǎn)義字符及其表示的意義。
轉(zhuǎn)義字符 | 說(shuō)明 |
---|---|
\ddd | 1~3 位八進(jìn)制數(shù)所表示的字符 |
\uxxxx | 1~4 位十六進(jìn)制數(shù)所表示的字符 |
\' | 單引號(hào)字符 |
\" | 雙引號(hào)字符 |
\\ | 雙斜杠字符 |
\r | 回車(chē) |
\n | 換行 |
\b | 退格 |
\t | 橫向跳格 |
定義常量
常量不同于常量值,它可以在程序中用符號(hào)來(lái)代替常量值使用,因此在使用前必須先定義。常量與變量(在《Java變量的聲明和初始化》一節(jié)中講解)類(lèi)似也需要初始化,即在聲明常量的同時(shí)要賦予一個(gè)初始值。常量一旦初始化就不可以被修改。它的聲明格式為:
Java 語(yǔ)言使用 final 關(guān)鍵字來(lái)定義一個(gè)常量,其語(yǔ)法如下所示:
final dataType variableName = value
其中,final 是定義常量的關(guān)鍵字,dataType 指明常量的數(shù)據(jù)類(lèi)型,variableName 是變量的名稱(chēng),value 是初始值。
final 關(guān)鍵字表示最終的,它可以修改很多元素,修飾變量就變成了常量。例如,以下語(yǔ)句使用 final 關(guān)鍵字聲明常量。
public class HelloWorld { // 靜態(tài)常量 public static final double PI = 3.14; // 聲明成員常量 final int y = 10; public static void main(String[] args) { // 聲明局部常量 final double x = 3.3; }}
常量有三種類(lèi)型:靜態(tài)常量、成員常量和局部常量。
代碼第 3 行的是聲明靜態(tài)常量,使用在 final 之前 public static 修飾。public static 修飾的常量作用域是全局的,不需要?jiǎng)?chuàng)建對(duì)象就可以訪問(wèn)它,在類(lèi)外部訪問(wèn)形式為 HelloWorld. PI。這種常量在編程中使用很多。
代碼第 5 行聲明成員常量,作用域類(lèi)似于成員變量,但不能修改。代碼第 9 行聲明局部常量,作用域類(lèi)似于局部變量,但不能修改。
在定義常量時(shí),需要注意如下內(nèi)容:
在定義常量時(shí)就需要對(duì)該常量進(jìn)行初始化。
final 關(guān)鍵字不僅可以用來(lái)修飾基本數(shù)據(jù)類(lèi)型的常量,還可以用來(lái)修飾對(duì)象的引用或者方法。
為了與變量區(qū)別,常量取名一般都用大寫(xiě)字符。
當(dāng)常量被設(shè)定后,一般情況下不允許再進(jìn)行更改,如果更改其值將提示錯(cuò)誤。例如,如下圖中定義常量 AGE 并賦予初值,如果更改 AGE 的值,那么在編譯時(shí)將提示不能重合賦值錯(cuò)誤。
初級(jí)會(huì)計(jì)職稱(chēng)中級(jí)會(huì)計(jì)職稱(chēng)經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國(guó)際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱(chēng)房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專(zhuān)業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱(chēng)計(jì)算機(jī)營(yíng)養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱(chēng)護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論