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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java培训教程分享:变量与常量

發(fā)布時間:2024/9/30 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java培训教程分享:变量与常量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在程序執(zhí)行過程中,其值不能被改變的量稱為常量,其值能被改變的量稱為變量。變量與常量在編寫程序中需要經(jīng)常使用,本節(jié)將詳細(xì)介紹變量與常量的使用方法。

標(biāo)識符

標(biāo)識符(identifier)用于命名變量、常量、方法、類、包等實體。

標(biāo)識符命名規(guī)則:

標(biāo)識符是由字母、數(shù)字、下劃線“_”、美元符號“$”組成的字符序列。

標(biāo)識符必須以字母、下劃線“_”、美元符號“$”開頭,不能以數(shù)字開頭。

標(biāo)識符不能是關(guān)鍵字和保留字。

標(biāo)識符不能包含空格。

例如,$6,name,Class,java,_pwd都是合法的標(biāo)識符,而2a,class,c++,hello world,a@都是非法的標(biāo)識符,不符合標(biāo)識符命名規(guī)則。Java編譯器會檢測出非法標(biāo)識符并報錯。

變量的定義

變量的使用是程序設(shè)計中一個十分重要的環(huán)節(jié),定義變量就是告訴編譯器這個變量的數(shù)據(jù)類型,這樣編譯器才知道需要配置多少內(nèi)存空間給它,以及它能存放什么樣的數(shù)據(jù)。在程序運行過程中,空間內(nèi)的值是變化的,這個內(nèi)存空間就稱為變量。為了便于操作,給這個空間取個名字,稱為變量名。變量的命名必須是合法的標(biāo)識符。內(nèi)存空間內(nèi)的值就是變量值,在聲明變量時可以是沒有賦值,也可以是直接賦給初值。

聲明變量的語法格式如下:

數(shù)據(jù)類型 變量名;

如需聲明多個相同類型變量時,可使用下面的語法格式:

數(shù)據(jù)類型 變量名1,變量名2,…,變量名n;

接下來,通過具體的代碼學(xué)習(xí)變量的定義,具體示例如下:

int n,q=1; // 定義了二個int類型的變量,為q賦初值為1

double x, y, z; // 定義了三個double類型的變量

對于變量的命名并不是任意的,應(yīng)遵循以下4條規(guī)則:

(1)變量名必須是一個有效的標(biāo)識符。

(2)變量名不可以使用Java關(guān)鍵字。

(3)變量名不能重復(fù)。

(4)應(yīng)選擇較有意義的單詞作為變量名。

變量的類型轉(zhuǎn)換

Java的數(shù)據(jù)類型在定義時就已經(jīng)明確了,但程序中有時需要進行數(shù)據(jù)類型的轉(zhuǎn)換,Java允許用戶有限度地進行數(shù)據(jù)類型轉(zhuǎn)換。數(shù)據(jù)類型轉(zhuǎn)換方式分為自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換兩種。

1.自動類型轉(zhuǎn)換

自動類型轉(zhuǎn)換也稱隱式類型轉(zhuǎn)換,指兩種數(shù)據(jù)類型轉(zhuǎn)換過程中不需要顯式地進行聲明。Java會在下列的條件成立時,自動做數(shù)據(jù)類型的轉(zhuǎn)換:

(1)轉(zhuǎn)換的兩種數(shù)據(jù)類型彼此兼容。

(2)目標(biāo)數(shù)據(jù)類型的取值范圍比原類型大。

類型轉(zhuǎn)換只限該行語句,并不會影響原先定義的變量類型,而且自動類型轉(zhuǎn)換可以保持?jǐn)?shù)據(jù)的精確度,不會因為轉(zhuǎn)換而丟失數(shù)據(jù)內(nèi)容。

Java支持自動類型轉(zhuǎn)換的類型,如圖所示。

圖2.1 自動數(shù)據(jù)類型轉(zhuǎn)換圖

自動類型轉(zhuǎn)換示例說明如下:

byte b = 97; // 聲明byte型變量值為97

char c = b; // 錯誤,byte類型不能自動類型轉(zhuǎn)換為char類型

float f = b; // 正確,byte類型能自動類型轉(zhuǎn)換為float類型

double d = ‘c’; // 正確,char類型能自動類型轉(zhuǎn)換為double類型

在Java中,任何基本類型的值和字符串進行鏈接運算“+”時,基本類型的值將自動類型轉(zhuǎn)換為字符串類型,字符串用String類表示,是引用類型。具體示例如下:

String s = 97; // 錯誤,不能直接將基本類型賦值給字符串

String str = 97 + “”; // 正確,基本類型的值自動轉(zhuǎn)換為字符串,""代表空字符串

2.強制類型轉(zhuǎn)換

強制類型轉(zhuǎn)換也稱為顯式轉(zhuǎn)換,指兩種數(shù)據(jù)類型轉(zhuǎn)換過程中需要顯式地進行聲明。當(dāng)轉(zhuǎn)換的兩種數(shù)據(jù)類型彼此不兼容,或者目標(biāo)數(shù)據(jù)類型的取值范圍小于原類型時,而無法進行自動類型轉(zhuǎn)換,此時就需要進行強制類型轉(zhuǎn)換,如例2-1所示。

例2-1 TestTypeCast.java

1 public class TestTypeCast {

2 public static void main(String[] args) {

3 int n = 128;

4 byte b = n;

5 System.out.println(b);

6 }

7 }

程序的運行結(jié)果如圖所示。

圖2.2 例2-1運行結(jié)果

圖2.9出現(xiàn)了編譯錯誤,提示第4行代碼類型不兼容,出現(xiàn)這樣錯誤的原因是將int轉(zhuǎn)換到byte時,int類型的取值范圍大于byte類型的取值范圍,轉(zhuǎn)換會導(dǎo)致精度損失,也就是用1個字節(jié)的變量來存儲4個字節(jié)的變量值。

對第4行代碼進行強制類型轉(zhuǎn)換,修改為下面的代碼:

byte b = (byte) n;

程序的運行結(jié)果如圖所示。

圖2.3 例2-1修改后運行結(jié)果

當(dāng)試圖強制把取值范圍大的類型轉(zhuǎn)換為取值范圍小的類型時,將會引起溢出,從而導(dǎo)致數(shù)據(jù)丟失。圖2.10中運行結(jié)果為-128,出現(xiàn)這種現(xiàn)象的原因是,int類型占4個字節(jié),byte類型占1個字節(jié),將int類型變量強制轉(zhuǎn)換為byte類型時,Java會將int類型變量的3個高位字節(jié)截斷,直接丟棄,變量值發(fā)生了改變,如圖所示。

圖2.4 強制轉(zhuǎn)換過程

變量的作用域

變量的作用域是指它的作用范圍,只有在這個范圍內(nèi),程序代碼才能訪問它。變量聲明在程序中的位置決定了變量的作用域。變量一定會聲明在一對大括號中,該大括號所包含的代碼區(qū)域就是這個變量的作用域,下面通過一個示例來分析變量的作用域。如例2-2所示

例2-2 TestScope.java

1 public class TestScope {

2 public static void main(String[] args) {

3 int x = 100; // 定義變量x

4 {

5 int y = 200; // 定義變量y

6 }

7 System.out.println(y); // 訪問變量y

8 }

9 }

程序的運行結(jié)果如圖所示。

圖2.5 例2-2編譯報錯

圖2.12出現(xiàn)了編譯錯誤,提示“找不到符號”。報錯的原因在于,定義的變量y超出了作用域。將第7行代碼放置在第5行代碼之后,再次編譯程序不再報錯,程序的運行結(jié)果如圖所示。

圖2.6 例2-2運行結(jié)果

常量

常量就是一個固定的值,是不能被改變的數(shù)據(jù)。Java程序中使用的直接量稱為常量,是在程序中通過源代碼直接給出的值,在程序執(zhí)行過程中都不會改變,也稱最終量。

1.整型常量

整型常量是整數(shù)類型的數(shù)據(jù),可分為二進制、八進制、十進制和十六進制4種,具體表示如下:

二進制:由數(shù)字0和1組成,用0b或0B開頭的字面值,如0b110、0B110。

八進制:由數(shù)字[0, 7]范圍內(nèi)的整數(shù)組成,用0開頭的字面值,如0110。

十進制:由數(shù)字[0, 9]范圍內(nèi)的整數(shù)組成的字面值,如110。

十六進制:由數(shù)字[0, 9]和字符[A, F]范圍內(nèi)組成,用0x或0X開頭的字面值,如0x12、0XAbA。

2.浮點數(shù)常量

浮點數(shù)就是實數(shù),包含有小數(shù)點,可以用標(biāo)準(zhǔn)小數(shù)形式和科學(xué)計數(shù)法形式兩種方式表示,具體表示如下:

標(biāo)準(zhǔn)小數(shù):由整數(shù)部分、小數(shù)點和小數(shù)部分構(gòu)成,如1.5、2.2。

科學(xué)計數(shù)法:由一個標(biāo)準(zhǔn)式加上一個以10為底的冪構(gòu)成,兩者間用e或E隔開,如1.2e+6、5E-8。

在Java中,分為float單精度浮點數(shù)和double雙精度浮點數(shù)兩種類型,單精度浮點數(shù)以f或F結(jié)尾,雙精度浮點數(shù)以d或D結(jié)尾。不加后綴會默認(rèn)為double雙精度浮點數(shù)。

3.字符常量

字符常量有三種形式,具體表示如下:

用單引號括起來的字符。如’a’、‘0’。

轉(zhuǎn)義字符。如’\n’、’\t’、’\0’。

用Unicode值表示的字符,格式是’\uXXXX’,其中XXXX代表一個十六進制的整數(shù)。如’\u0000’。

4.字符串常量

字符串常量就是用雙引號括起來的字符序列。如"歡迎學(xué)習(xí)Java"、“A”。

5.布爾常量

布爾常量就是布爾類型的兩個值true和false,用于表示真和假。

6.null常量

null常量只有一個值null,表示對象引用為空。

多學(xué)一招:轉(zhuǎn)義字符

Java定義了一種特殊的標(biāo)記來表示特殊字符,這種標(biāo)記稱為轉(zhuǎn)義序列,轉(zhuǎn)義序列由()后面加上一個字符或者一些數(shù)字位組成。如\t表示Tab字符的轉(zhuǎn)義符,\u000A表示換行符\n。轉(zhuǎn)義序列中的序列號作為一個整體翻譯,而不是分開翻譯。一個轉(zhuǎn)義序列被當(dāng)做一個字符。

常用的轉(zhuǎn)義序列如下:

\b,退格鍵,Unicode碼為\u0008。

\t,Tab鍵,Unicode碼為\u0009。

\n,換行符,Unicode碼為\u000A。

\r,回車符,Unicode碼為\u000D。

反斜杠\被稱為轉(zhuǎn)義字符,它是一個特殊字符。有特殊意義的字符,無法直接表示,需要用轉(zhuǎn)義序列來表示。

‘,單引號字符,Java中單引號表示字符的開始和結(jié)束,直接寫單引號字符(’),編譯器會匹配前兩個是一對,會報錯,所以需要使用轉(zhuǎn)義字符’。

“,雙引號字符,Java中雙引號表示字符串的開始和結(jié)束,要顯示雙引號需要使用轉(zhuǎn)義字符”,如"歡迎學(xué)習(xí)"Java""。

\,反斜杠字符,Java中的反斜杠是轉(zhuǎn)義字符,要顯示反斜杠,需要使用轉(zhuǎn)義字符\。

本文來自千鋒教育,轉(zhuǎn)載請注明出處。

總結(jié)

以上是生活随笔為你收集整理的Java培训教程分享:变量与常量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。