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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

02-java常量变量数据类型

發(fā)布時(shí)間:2024/4/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 02-java常量变量数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.java 編程基礎(chǔ)
1.1.程序注釋

注釋:就是對(duì)代碼的解釋和說明。其目的是讓人們能夠更加輕松地了解代碼。為代碼添加注 釋,是十分必須要的,它不影響程序的編譯和運(yùn)行。 注釋的分類: 單行注釋:// 多行注釋:/* */
1.2.Java 中的關(guān)鍵字
關(guān)鍵字:是指在程序中,Java 已經(jīng)定義好的單詞,具有特殊含義。 HelloWorld 案例中,出現(xiàn)的關(guān)鍵字有 public 、 class 、 static 、 void 等,這些單詞已經(jīng) 被 Java 定義好,全部都是小寫字母,notepad++中顏色特殊。 關(guān)鍵字比較多,不能死記硬背,學(xué)到哪里記到哪里即可。


1.3.Java 標(biāo)識(shí)符
1.3.1. 標(biāo)識(shí)符

標(biāo)識(shí)符:是指在程序中,我們自己定義內(nèi)容。比如類的名字、方法的名字和變量的名字等等, 都是標(biāo)識(shí)符 定義合法標(biāo)識(shí)符規(guī)則:
A) 由 26 個(gè)英文字母大小寫,0-9 ,_或$ 組成
B) 數(shù)字不可以開頭。
C) 不可以使用關(guān)鍵字和保留字,但能包含關(guān)鍵字和保留字。
D)Java 中嚴(yán)格區(qū)分大小寫,長(zhǎng)度無限制。
E) 標(biāo)識(shí)符不能包含空格。
1.3.2. 命名規(guī)范
包名:多單詞組成時(shí)所有字母都小寫:xxxyyyzzz 類名、接口名:多單詞組成時(shí),所有單詞的首字母大寫:XxxYyyZzz 變量名、方法名:多單詞組成時(shí),第一個(gè)單詞首字母小寫,第二個(gè)單詞開始每個(gè)單詞首字 母大寫:xxxYyyZzz常量名:所有字母都大寫。多單詞時(shí)每個(gè)單詞用下劃線連接:XXX_YYY_ZZZ 注意 1:在起名字時(shí),為了提高閱讀性,要盡量有意義,“見名知意”。 注意 2:java 采用 unicode 字符集,因此標(biāo)識(shí)符也可以使用漢字聲明,但是不建議使用。

1.4.java 中的常量
1.4.1. 常量概念

常量:是指在 Java 程序中固定不變的數(shù)據(jù)。
1.4.2. 常量的類型

1.5.常量案例代碼

public class ConstantDemo {public static void main(String[] args){ //輸出整數(shù)常量 System.out.println(123); //輸出小數(shù)常量System.out.println(0.125); //輸出字符常量 System.out.println('A'); //輸出布爾常量 System.out.println(true);//輸出字符串常量 System.out.println("你好Java");} }

1.6.變量
1.6.1. 變量的概念:
內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域 該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化 變量是程序中最基本的存儲(chǔ)單元。包含變量類型、變量名和存儲(chǔ)的值
1.6.2. 變量的作用:
用于在內(nèi)存中保存數(shù)據(jù)
1.6.3. 使用變量注意:
A)Java 中每個(gè)變量必須先聲明,后使用 B) 使用變量名來訪問這塊區(qū)域的數(shù)據(jù) C) 變量的作用域:其定義所在的一對(duì){}內(nèi) D) 變量只有在其作用域內(nèi)才有效 E) 同一個(gè)作用域內(nèi),不能定義重名的變量值
1.6.4. 聲明變量
語法:<數(shù)據(jù)類型><變量名稱> 例如:intvar;
1.6.5. 變量的賦值
語法:<變量名稱>= <值> 例如:var=10; 聲明和賦值變量 語法:<數(shù)據(jù)類型><變量名>= <初始化值> 例如:intvar=10;
1.6.6. 變量的分類-基本數(shù)據(jù)類型

對(duì)于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型(強(qiáng)類型語言),在內(nèi)存中分配了不同大小的 內(nèi)存空間
1.6.7. 變量的分類-按聲明的位置的不同
在方法體外,類體內(nèi)聲明的變量稱為成員變量。 在方法體內(nèi)部聲明的變量稱為局部變量
注意:二者在初始化值方面的異同: 同:都有生命周期異:局部變量除形參外,需顯式初始化。
1.7.計(jì)算機(jī)的存儲(chǔ)單元
1.7.1. 存儲(chǔ)單元
存儲(chǔ)單元是一種計(jì)量單位。指在某一領(lǐng)域以一個(gè)特定量,或標(biāo)準(zhǔn)做為一個(gè)記錄(計(jì)數(shù))點(diǎn)。 再以此點(diǎn)的某個(gè)倍數(shù)再去定義另一個(gè)點(diǎn),而這個(gè)點(diǎn)的代名詞就是計(jì)數(shù)單位或存儲(chǔ)單位。如卡 車的載重量是噸,也就是這輛卡車能存儲(chǔ)貨物的數(shù)量,噸就是它的單位量詞。
1.7.2. 計(jì)算機(jī)的存儲(chǔ)單位
在計(jì)算機(jī)中最小的信息單位是 bit,也就是一個(gè)二進(jìn)制位,8 個(gè) bit 組成一個(gè) Byte,也就是 字節(jié)。一個(gè)存儲(chǔ)單元可以存儲(chǔ)一個(gè)字節(jié),也就是 8 個(gè)二進(jìn)制位。計(jì)算機(jī)的存儲(chǔ)器容量是以字 節(jié)為最小單位來計(jì)算的,對(duì)于一個(gè)有 128 個(gè)存儲(chǔ)單元的存儲(chǔ)器,可以說它的容量為 128 字節(jié)。 二進(jìn)制序列用以表示計(jì)算機(jī)、電子信息數(shù)據(jù)容量的量綱,基本單位為字節(jié) B,字節(jié)向上分別 為 KB、MB、GB、TB,每級(jí)為前一級(jí)的 1024 倍,比如 1KB=1024B,1M=1024KB。
位 bit (比特)(Binary Digits):存放一位二進(jìn)制數(shù),即 0 或 1,最小的存儲(chǔ)單位。[英 文縮寫:b(固定小寫)]
字節(jié) byte:8 個(gè)二進(jìn)制位為一個(gè)字節(jié)(B),最常用的單位。
1 Byte(B) = 8 bit
1 Kilo Byte(KB) = 1024B
1 Mega Byte(MB) = 1024 KB
1 Giga Byte (GB)= 1024 MB
1 Tera Byte(TB)= 1024 GB
1 Peta Byte(PB) = 1024 TB
1 Exa Byte(EB) = 1024 PB
1 Zetta Byte(ZB) = 1024 EB
1Yotta Byte(YB)= 1024 ZB
1 Bronto Byte(BB) = 1024 YB
1Nona Byte(NB)=1024 BB
1 Dogga Byte(DB)=1024 NB
1 Corydon Byte(CB)=1024DB
1 Xero Byte (XB)=1024CB
上面的換算相信大家已看過了,可說起存儲(chǔ)容量單位,大家很自然的會(huì)想起自己的硬盤 有多少 GB、內(nèi)存有多少 MB,我們知道了字節(jié)(B)是電腦中表示信息含義的最小單位,通常情 況下一個(gè) ACSII 碼就是一個(gè)字節(jié)的空間來存放。而事實(shí)上電腦中還有比字節(jié)更小的單位,因 為一個(gè)字節(jié)是由八個(gè)二進(jìn)制位組成的,換一句話說,每個(gè)二進(jìn)制位所占的空間才是電腦中最 小的單位,我們把它稱為位,也稱比特(bit)。由此可見,一個(gè)字節(jié)等于八位。人們之所 以把字節(jié)稱為電腦中表示信息含義的最小單位,是因?yàn)橐晃徊⒉荒鼙硎疚覀儸F(xiàn)實(shí)生活中的一 個(gè)相對(duì)完整的信息。 有的時(shí)候,為了簡(jiǎn)寫,我們會(huì)把位的單位縮寫成 b,這個(gè)時(shí)候大家一定會(huì)有疑問了,因 為字節(jié)的單位我們用 B 表示,兩者不就是一樣了嗎?其實(shí),字節(jié)的表示單位 B 是 Byte 的縮寫, 位的表示單位 b 是 bit 的縮寫,1b 與 1B 之間只要大小寫不同,那么表示的含義也不同,因 為 8b 才等于 1B。
1.7.3. 進(jìn)制
進(jìn)制也就是進(jìn)位計(jì)數(shù)制,是人為定義的帶進(jìn)位的計(jì)數(shù)方法(有不帶進(jìn)位的計(jì)數(shù)方法,比 如原始的結(jié)繩計(jì)數(shù)法,唱票時(shí)常用的“正”字計(jì)數(shù)法,以及類似的 tally mark 計(jì)數(shù))。 對(duì) 于任何一種進(jìn)制—X 進(jìn)制,就表示每一位置上的數(shù)運(yùn)算時(shí)都是逢 X 進(jìn)一位。 十進(jìn)制是逢十 進(jìn)一,十六進(jìn)制是逢十六進(jìn)一,二進(jìn)制就是逢二進(jìn)一,以此類推,x 進(jìn)制就是逢 x 進(jìn)位。 對(duì)于任何一個(gè)數(shù),我們可以用不同的進(jìn)位制來表示。比如:十進(jìn)數(shù) 57(10),可以用二 進(jìn)制表示為 111001(2),也可以用五進(jìn)制表示為 212(5),也可以用八進(jìn)制表示為 71(8)、用 十六進(jìn)制表示為 39(16),它們所代表的數(shù)值都是一樣的。
1.7.4. 二進(jìn)制
二進(jìn)制有兩個(gè)特點(diǎn):它由兩個(gè)數(shù)碼 0,1 組成,二進(jìn)制數(shù)運(yùn)算規(guī)律是逢二進(jìn)一。
為區(qū)別于其它進(jìn)制,二進(jìn)制數(shù)的書寫通常在數(shù)的右下方注上基數(shù) 2,或加后面加 B 表示, 其中 B 是英文二進(jìn)制 Binary 的首字母。
1.8.Java 語言中的基本數(shù)據(jù)類型
1.8.1. 數(shù)據(jù)類型
數(shù)據(jù)類型:一組性質(zhì)相同的值的集合以及定義在這個(gè)值集合上的一組操作的總稱。
變量是用來存儲(chǔ)值的所在處,它們有名字和數(shù)據(jù)類型。變量的數(shù)據(jù)類型決定了如何將代 表這些值的位存儲(chǔ)到計(jì)算機(jī)的內(nèi)存中。在聲明變量時(shí)也可指定它的數(shù)據(jù)類型。所有變量都具 有數(shù)據(jù)類型,以決定能夠存儲(chǔ)哪種數(shù)據(jù)。

1.8.2. 整數(shù)類型:byte、short、int、long
A) Java 各整數(shù)類型有固定的表數(shù)范圍和字段長(zhǎng)度,不受具體 OS 的影響, 以保證 java 程序的可移植性。
B) java 的整型常量默認(rèn)為 int 型,聲明 long 型常量須后加‘l’或‘L’
C) java 程序中變量通常聲明為 int 型,除非不足以表示較大的數(shù),才使用 long

public class VariableTest { public static void main(String[] args) { Int number1; number1 = 10; Int number2; number2 = 20; intnumber3; number3 = number1 + number2; System.out.println("Number3 = " + number3); intnumber4 = 50; intnumber5 = number4 -number3; System.out.println("Number5 = " + number5);} } 1.8.3. 浮點(diǎn)類型:floatdouble 與整數(shù)類型類似,Java 浮點(diǎn)類型也有固定的表數(shù)范圍和字段長(zhǎng)度,不受具體操作系 統(tǒng)的影響浮點(diǎn)型常量有兩種表示形式: 十進(jìn)制數(shù)形式:如:5.12 512.0f .512 (必須有小數(shù)點(diǎn)) 科學(xué)計(jì)數(shù)法形式:如:5.12e2 512E2 100E-2 float:單精度,尾數(shù)可以精確到 7 位有效數(shù)字。很多情況下,精度很難滿足需求。 double:雙精度,精度是 float 的兩倍。通常采用此類型。 Java 的浮點(diǎn)型常量默認(rèn)為 double 型,聲明 float 型常量,須后加‘f’或‘F’。


1.8.4. 字符類型: char
char 型數(shù)據(jù)用來表示通常意義上 “字符 ”(2 字節(jié) )
Java 中的所有字符都 使用 Unicode Unicode Unicode 編碼,故一個(gè)字 符可以存儲(chǔ)一 個(gè)字母,一個(gè)漢字
字符型變量的表現(xiàn)形式:
A) 字符串常量使用單引號(hào) ’’ 引起來的單個(gè)字符,例如:char c1=’a’, char c2=’ 河南’,char c3=’9’
char 類型是可以進(jìn)行運(yùn)算 char 類型是可以進(jìn)行運(yùn)算的。因?yàn)樗紝?duì)應(yīng)有 Unicode Unicode Unicode
1.8.5. ASCIIASCII 碼
在計(jì)算機(jī)內(nèi)部 ,所有數(shù)據(jù)都使用 二進(jìn)制 表示 。每一個(gè)二進(jìn)制位 (bitbit )有 0 和 1 兩種狀態(tài) , 因此 8 個(gè)二進(jìn)制位就可以組合出 256 種狀態(tài) ,這被稱為一個(gè)字節(jié) (byte )。 一 個(gè)字節(jié)共可以用來表示 256 種不同的狀態(tài) ,每一個(gè)狀態(tài)對(duì)應(yīng)符號(hào) ,就是 256 個(gè)符號(hào) ,從 0000000 到 11111111 。
ASCII 碼:上個(gè)世紀(jì) 60 年代 ,美國(guó)制定了一套字符編碼 ,對(duì)英語字符與二進(jìn)制位之間的 關(guān)系 ,做了統(tǒng)一規(guī)定 。這被稱為 ASCIIASCIIASCIIASCII 碼。ASCIIASCIIASCIIASCII 碼 一共規(guī)定了 128 個(gè)字符的編碼 ,比如 空格 “SPACE” SPACE” SPACE” 是 32 (二進(jìn)制 00100000 ), 大寫的字母 A 是 65 (二進(jìn)制 01000001 )。 這 128 個(gè)符號(hào) (包括 32 個(gè) 不能打印出來的控制符號(hào) ), 只占用了一個(gè)字節(jié)的后面 7 位,最前 面的 1 位統(tǒng)一規(guī)定為 0。
缺點(diǎn) :
不能表示所有字符 。相同的編碼表示字符不一樣 :比如 ,130130 在法語編碼中代表了 ,在?來語編碼中?代表 字母 Gimel ( )
1.8.6. Unicode 編碼
亂碼:世界上存在著多種編方式,同一個(gè)二進(jìn)制數(shù)字可以被解釋成不的符號(hào)。同一個(gè)二進(jìn)制 數(shù)字可以被解釋成不的符號(hào)。。因此,要想打開一個(gè)文本件就必須知道它的編碼方式 否則 用錯(cuò)誤的碼表解讀,
Unicode :一 種編碼,將世界上所有的符號(hào)都納入其中。每個(gè)符號(hào)都給予獨(dú)一無二的編碼, 使用 Unicode Unicode 沒有亂碼問題,Unicode 編碼存在著資源浪費(fèi)的問題
1.8.7. UTF-8
UTF UTF-8 是在互聯(lián)網(wǎng)上使用最廣的一種 Unicode Unicode Unicode Unicode 的實(shí)現(xiàn)方 式。 TF UTF-8 是一種變長(zhǎng)的編碼方式。它可以使用 1-6 個(gè)字節(jié)表示一符號(hào),根據(jù) 不同的符 號(hào)而變化字節(jié)長(zhǎng)度。 UTF-8 的編碼規(guī)則: 對(duì)于單字節(jié)的 UTF -8 編碼,該字節(jié)的最高位為 0,其余 7 位用來對(duì)字符進(jìn)行編碼(等同 于 ASCIIASCIIASCII 碼)。 對(duì)于多字節(jié)的 UTF -8 編碼,如果包含 n 個(gè)字節(jié),那么第一的前 n 位為 1,第一個(gè)字節(jié) 的第 n+1 位為 0,該字節(jié)的剩余各位用來對(duì)符進(jìn)行編碼。在第一個(gè)之后所有的字節(jié),都 是最高兩位為 “10”,其余 6 位用來對(duì)字符進(jìn)行編碼
1.8.8. 布爾類型: boolean
boolean 類型用來判斷邏輯條件,一般于程序流控制: if 條件控制語句; while 循環(huán)控制語句; do -while 循環(huán)控制語句; for 循環(huán)控制語句; boolean 類型數(shù)據(jù)只允許取值 true 和 false ,無 null 不可以使用 0 或非 0 的整數(shù)替代 false 和 true ,這點(diǎn)和 C 語言不同。 Java 虛擬機(jī)中沒有任何供 boolean 值專用的字節(jié)碼指令, Java 語言表達(dá)所操作的 boolean 值,在編譯之后都使用 java 虛擬機(jī)中的 int 數(shù)據(jù)類型來代替:true 用 1 表示, false 用 0 表示。

1.9.變量與類型
變量:常量是固定不變的數(shù)據(jù),那么在程序中可以變化的量稱為變量。 定義格式: 數(shù)據(jù)類型 變量名 = 變量值; 數(shù)據(jù)類型 變量名 = 數(shù)據(jù)值; int a = 100; 使用
其中 int 是數(shù)據(jù)類型,指定了變量只能存儲(chǔ)整數(shù),而且指定了存儲(chǔ)范圍為-2147483648~ 2147483648。 其中 a 表示變量名,變量名是標(biāo)識(shí)符,這說明只要是合法的標(biāo)識(shí)符都可以用來做變量 名。在程序中可以通過變量名來操作變量(內(nèi)存中的小盒子)。 其中“=100”是給變量賦值,即向 a 變量中寫入 100(變量是個(gè)小盒子,現(xiàn)在小盒子中保存 的是 100)。注意,給變量賦的值一定要與類型符合,也就是說 int 類型只能存儲(chǔ)整數(shù),而 且必須是在-2147483648~2147483648 范圍內(nèi)的整數(shù)。100 滿足了這兩個(gè)條件,所以是正確 的 變量名稱:在同一個(gè)大括號(hào)范圍內(nèi),變量的名字不可以相同。 變量賦值:定義的變量,不賦值不能使用

public class Variable { public static void main(String[] args){ //定義字節(jié)型變量byte b = 100;System.out.println(b);//定義短整型變量short s = 1000;System.out.println(s);//定義整型變量 int i = 123456;System.out.println(i);//定義長(zhǎng)整型變量long l = 12345678900L; System.out.println(l); //定義單精度浮點(diǎn)型變量float f = 5.5F;System.out.println(f); //定義雙精度浮點(diǎn)型變量double d = 8.5; System.out.println(d); //定義布爾型變量boolean bool = false;System.out.println(bool);//定義字符型變量 char c = 'A';System.out.println(c); } }

1.10. 數(shù)據(jù)類型轉(zhuǎn)換
Java 程序中要求參與的計(jì)算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將 發(fā)生類型的轉(zhuǎn)換。轉(zhuǎn)換的過程中,數(shù)據(jù)遵循一個(gè)原則: 范圍小的數(shù)據(jù)類型值(如 byte),可以直接轉(zhuǎn)換為范圍大的數(shù)據(jù)類型值(如 int); 范圍大的數(shù)據(jù)類型值(如 int),不可以直接轉(zhuǎn)換為范圍小的數(shù)據(jù)類型值(如 byte) 數(shù)據(jù)類型按照數(shù)據(jù)范圍從小到大依次列出: byte -> short -> int -> long -> float -> double
有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動(dòng)將所轉(zhuǎn)換成容量最大那種數(shù)據(jù)類型,然后再進(jìn) 行計(jì)算。 A) byte,char,short, 之間不會(huì)相互轉(zhuǎn)換,他們?nèi)咴谟?jì)算時(shí)首先轉(zhuǎn)換為 int 類型 。
B) boolean 類型不能與其他數(shù)據(jù)類型轉(zhuǎn)換
C) 當(dāng)把任何基本數(shù)據(jù)類型的值和字符串 (String)進(jìn)行連接運(yùn)算時(shí) (+) ,基本數(shù)據(jù)類型的值將 自動(dòng)轉(zhuǎn)化為字符串 (String)類型 。
1.10.1. 字符串類型: String
String 不是基本數(shù)據(jù)類型,屬于引用數(shù)據(jù)類型。使用方式與基本數(shù)據(jù)類型一致。例如 Stringstr = “abc”; 一個(gè)字符串可以串接另一個(gè)字符串也可以直接串接其他類型的數(shù)據(jù)。例如: str=str+ “xyz” ; intn=100; Str=str+n;
1.10.2. 判斷對(duì)錯(cuò)
String str1=100; // 錯(cuò)誤 String str2=2.8f+””;
1.10.3. 自動(dòng)轉(zhuǎn)換
一個(gè) int 類型變量和一個(gè) byte 類型變量進(jìn)行加法運(yùn)算, 結(jié)果會(huì)是什么數(shù)據(jù)類型?
inti=1; byteb=2; 運(yùn)算結(jié)果,變量的類型將是 int 類型,這就是出現(xiàn)了數(shù)據(jù)類型的自動(dòng)類型轉(zhuǎn)換現(xiàn)象。 自動(dòng)轉(zhuǎn)換 :將 取值范圍小的類型 自動(dòng)提升為 取值范圍大的類型 。

public static void main(String[] args) { int i = 1; byte b = 2;// byte x = b + i;// 報(bào)錯(cuò) //int類型和byte類型運(yùn)算,結(jié)果是int類型 int j = b + i;System.out.println(j); }

byte 類型內(nèi)存占有 1 個(gè)字節(jié),在和 int 類型運(yùn)算時(shí)會(huì)提升為 int 類型 ,自動(dòng)補(bǔ)充 3 個(gè)字節(jié),因此計(jì)算后的結(jié)果還是 int 類型。 同樣道理,當(dāng)一個(gè) int 類型變量和一個(gè) double 變量運(yùn)算時(shí), int 類型將會(huì)自動(dòng)提升 為 double 類型進(jìn)行運(yùn)算。范圍小的類型向范圍大的類型提升,byte 、 short、 char 運(yùn) 算時(shí)直接提升為 int 。
1.10.4. 強(qiáng)制類型轉(zhuǎn)換
表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型,這種方式稱為強(qiáng)制類型轉(zhuǎn)換 將 1.5 賦值到 int 類型變量會(huì)發(fā)生什么?產(chǎn)生編譯失敗,肯定無法賦值。
inti=1.5;// 錯(cuò)誤
分析報(bào)錯(cuò)原因: double 類型內(nèi)存 8 個(gè)字節(jié), int 類型內(nèi)存 4 個(gè)字節(jié)。 1.5 是 double 類型,取值范圍大于 int 。可以理解為 double 是 8 升的水壺, int 是 4 升的水壺,不能把大水壺中的水直接放 進(jìn)小水壺去。 想要賦值成功,只有通過強(qiáng)制類型轉(zhuǎn)換,將 double 類型強(qiáng)制轉(zhuǎn)換成 int 類型才能賦值。
自動(dòng)轉(zhuǎn)換是 Java 自動(dòng)執(zhí)行的,而強(qiáng)制轉(zhuǎn)換需要我們自己手動(dòng)執(zhí)行。 強(qiáng)制類型轉(zhuǎn)換格式: 范圍小的數(shù)據(jù)類型 變量 =(范圍小的數(shù)據(jù)類型) 范圍大的數(shù)據(jù)類型值; 如: int i = (int)6.718; //i的值為6 或 double d = 3.14; int i2 = (int)d; //i2的值為3
同樣道理,當(dāng)一個(gè) short 類型與 1 相加,我們知道會(huì)類型提升,但是還想給結(jié)果賦值給 short 類型變量,就需要強(qiáng)制轉(zhuǎn)換。

publicstaticvoidmain(String[]args){//short 類型變量,內(nèi)存中 2 個(gè)字節(jié)shorts=1;/* 出現(xiàn)編譯失敗 s 和 1 做運(yùn)算的時(shí)候,1 是 int 類型,s 會(huì)被提升為 int 類型 s+1 后的結(jié)果是 int 類型,將結(jié)果在賦值會(huì) short 類型時(shí)發(fā)生錯(cuò)誤 short 內(nèi)存 2 個(gè)字節(jié),int 類型 4 個(gè)字節(jié) 必須將 int 強(qiáng)制轉(zhuǎn)成 short 才能完成賦值 */ s=s+1//編譯失敗s=(short)(s+1);//編譯成功

1.10.5. 強(qiáng)制轉(zhuǎn)換損失精度的問題
浮點(diǎn)轉(zhuǎn)成整數(shù),直接取消小數(shù)點(diǎn),可能造成數(shù)據(jù)損失精度。 int 強(qiáng)制轉(zhuǎn)成 short 砍掉 2 個(gè)字節(jié),可能造成數(shù)據(jù)丟失。 //定義 s 為 short 范圍內(nèi)最大值 shorts=32767; //運(yùn)算后,強(qiáng)制轉(zhuǎn)換,砍掉 2 個(gè)字節(jié)后會(huì)出現(xiàn)不確定的結(jié)果 s=(short)(s+10);
1.10.5. 強(qiáng)制轉(zhuǎn)換損失精度的問題
浮點(diǎn)轉(zhuǎn)成整數(shù),直接取消小數(shù)點(diǎn),可能造成數(shù)據(jù)損失精度。 int 強(qiáng)制轉(zhuǎn)成 short 砍掉 2 個(gè)字節(jié),可能造成數(shù)據(jù)丟失。 //定義 s 為 short 范圍內(nèi)最大值 shorts=32767; //運(yùn)算后,強(qiáng)制轉(zhuǎn)換,砍掉 2 個(gè)字節(jié)后會(huì)出現(xiàn)不確定的結(jié)果 s=(short)(s+10);
2.計(jì)算機(jī)的編碼
在計(jì)算機(jī)的內(nèi)部都是二進(jìn)制的 0、1 數(shù)據(jù),如何讓計(jì)算機(jī)可以直接識(shí)別人類文字的問題呢? 就產(chǎn)生出了編碼表的概念 編碼表 :就是將人類的文字和一個(gè)十進(jìn)制數(shù)進(jìn)行對(duì)應(yīng)起來組成一張表格。
2.1.1. ASCII 編碼表
將所有的英文字母,數(shù)字,符號(hào)都和十進(jìn)制進(jìn)行了對(duì)應(yīng),因此產(chǎn)生了世界上第一張編碼表 ASCII(AmericanStandardCodeforInformationInterchange 美國(guó)標(biāo)準(zhǔn)信息交換碼)。

2.1.2. 案例分析
publicstaticvoidmain(
String[]args){ //字符類型變量
charc=‘a(chǎn)’;
inti=1;
//字符類型和 int 類型計(jì)算
System.out.println(c+i);
//輸出結(jié)果是 98 }
在 char 類型和 int 類型計(jì)算的過程中,char 類型的字符先查詢編碼表,得到 97,再和 1 求 和,結(jié)果為 98。char 類型提升為了 int 類型。char 類型內(nèi)存 2 個(gè)字節(jié),int 類型內(nèi)存 4 個(gè)字 節(jié)。
3.運(yùn)算符
運(yùn)算符是一種特殊的號(hào),用以表示數(shù)據(jù)、賦值和比較等 。 算術(shù)運(yùn)符,賦值運(yùn)算符,比較運(yùn)算符,邏輯運(yùn)算符,位運(yùn)算符,三元運(yùn)算符
算術(shù)運(yùn)算符

我們?cè)谑褂盟阈g(shù)運(yùn)算符時(shí),記得要注意下列事項(xiàng):
? 加法運(yùn)算符在連接字符串時(shí)要注意,只有直接與字符串相加才會(huì)轉(zhuǎn)成字符串。
? 除法“/”當(dāng)兩邊為整數(shù)時(shí),取整數(shù)部分,舍余數(shù)。當(dāng)其中一邊為浮點(diǎn)型時(shí),按正 常規(guī)則相除。
? “%”為整除取余符號(hào),小數(shù)取余沒有意義。結(jié)果符號(hào)與被取余符號(hào)相同。
? 整數(shù)做被除數(shù),0 不能做除數(shù),否則報(bào)錯(cuò)。

/* * 算術(shù)運(yùn)算符 */ public class OperatorDemo1 { public static void main(String[] args) {/* * 常量使用算數(shù)運(yùn)算符 */ System.out.println(10+20); /* * 變量使用算數(shù)運(yùn)算符 */ int x = 10; int y = 20;//"+"作為加法運(yùn)算使用int z = x + y;//"+"作為連接字符串使用System.out.println("x="+x);System.out.println("y="+y);System.out.println("z="+z); } }

3.1. 算數(shù)運(yùn)算符++、–的使用
算數(shù)運(yùn)算符在前面我們已經(jīng)學(xué)習(xí)過了,這里進(jìn)行一些補(bǔ)充。 在一般情況下,算數(shù)運(yùn)算符不會(huì)改變參與計(jì)算的變量值。而是在原有變量值不變的情況 下,計(jì)算出新的值。但是有些操作符會(huì)改變參與計(jì)算的變量的值,比如++,–。 我們來看一段代碼:

int a = 3; int b = 3;a++; b--; System.out.println(a); System.out.println(b);

上面代碼的輸出結(jié)果 a 值為 4,b 值為 2; 這說明 a 的原有值發(fā)生了改變,在原有值的基礎(chǔ)上自增 1;b 的原有值也發(fā)生了改變, 在原有值的基礎(chǔ)上自減 1; ? ++運(yùn)算符,會(huì)在原有值的基礎(chǔ)上自增 1; ? --運(yùn)算符,會(huì)在原有值的基礎(chǔ)上自減 1。
int a = 3;
int b = 3;
++a; --b;
System.out.println(a);
System.out.println(b);
上面代碼的輸出結(jié)果 a 值為 4,b 值為 2; 這說明++,–運(yùn)算符單獨(dú)使用,不參與運(yùn)算操作時(shí),運(yùn)算符前后位置導(dǎo)致的運(yùn)算結(jié)果是一 致的。
接下來,介紹下++,–運(yùn)算符參與運(yùn)算操作時(shí),發(fā)生了怎樣的變化,我們來看一段代碼:
int a = 3;
int b;
b = a++ + 10;
System.out.println(a);
System.out.println(b); 上面代碼的輸出結(jié)果 a 值為 4,b 值為 13; 這里我要強(qiáng)調(diào)一下了,當(dāng)++,–運(yùn)算符參與運(yùn)算操作時(shí),后置++,–的作用: ? ++,–運(yùn)算符后置時(shí),先使用變量 a 原有值參與運(yùn)算操作,運(yùn)算操作完成后,變量 a 的值自增 1 或者自減 1;再介紹下++,–運(yùn)算符前置時(shí),參與運(yùn)算操作的變化,我們來看一段代碼:
int a = 3
; int b;
b = ++a + 10;
System.out.println(a);
System.out.println(b);
上面代碼的輸出結(jié)果 a 值為 4,b 值為 14; 這里我強(qiáng)調(diào)一下,當(dāng)++,–運(yùn)算符參與運(yùn)算操作時(shí),前置++,–的作用: ? ++,–運(yùn)算符前置時(shí),先將變量 a 的值自增 1 或者自減 1,然后使用更新后的新值 參與運(yùn)算操作。
3.2. 賦值運(yùn)算符
賦值運(yùn)算符就是為變量賦值的符號(hào)


3.3. 比較運(yùn)算符
比較運(yùn)算符,又叫關(guān)系運(yùn)算符,它是用來判斷兩個(gè)操作數(shù)的大小關(guān)系及是否相等關(guān)系的, 結(jié)果是布爾值 true 或者 false。


3.4. 邏輯運(yùn)算符
邏輯運(yùn)算符,它是用于布爾值進(jìn)行運(yùn)算的,運(yùn)算的最終結(jié)果為布爾值 true 或 false。

? 短路與&&:參與運(yùn)算的兩邊數(shù)據(jù),有 false,則運(yùn)算結(jié)果為 false; ? 短路或||:參與運(yùn)算的兩邊數(shù)據(jù),有 true,則運(yùn)算結(jié)果為 true; ? 邏輯非! : 參與運(yùn)算的數(shù)據(jù),原先是 true 則變成 false,原先是 false 則變 成 true
3.5. 三元運(yùn)算符
接下來我們要學(xué)習(xí)的三元運(yùn)算符與之前的運(yùn)算符不同。之前學(xué)習(xí)的均為一元或者二元運(yùn) 算符。元即參與運(yùn)算的數(shù)據(jù)。 ? 格式: (條件表達(dá)式)?表達(dá)式 1:表達(dá)式 2; ? 表達(dá)式:通俗的說,即通過使用運(yùn)算符將操作數(shù)聯(lián)系起來的式子,例如: ? 3+2,使用算數(shù)運(yùn)算符將操作數(shù)聯(lián)系起來,這種情況,我們稱為算數(shù)表達(dá)式。 ? 3>2,使用比較運(yùn)算符(也稱為條件運(yùn)算符)將操作數(shù)聯(lián)系起來,這種情況, 我們稱為條件表達(dá)式。 ? 其他表達(dá)式,不再一一舉例。 ? 三元運(yùn)算符運(yùn)算規(guī)則: 先判斷條件表達(dá)式的值,若為 true,運(yùn)算結(jié)果為表達(dá)式 1;若為 false,運(yùn)算結(jié)果為 表達(dá)式 2。
通過代碼演示,我們來學(xué)習(xí)下三元運(yùn)算符的使用:


3.6. 運(yùn)算符優(yōu)先級(jí)
在學(xué)習(xí)運(yùn)算符的過程中,我們發(fā)現(xiàn),當(dāng)多個(gè)運(yùn)算符一起使用的時(shí)候,容易出現(xiàn)不清晰先 后運(yùn)算順序的問題,那么,在這里,我們來學(xué)習(xí)下,運(yùn)算符之間的運(yùn)算優(yōu)先級(jí)。 下圖是每種運(yùn)算符的優(yōu)先級(jí),按照運(yùn)算先后順序排序(優(yōu)先級(jí)相同的情況下,按照從左 到右的順序依次運(yùn)算)

.知識(shí)小結(jié)
? 數(shù)據(jù)類型轉(zhuǎn)換
? 數(shù)據(jù)類型范圍從小到大排序(byte < char < short < int < long < float < double),布爾類型 Boolean 不能參與類型轉(zhuǎn)換;
? 自動(dòng)類型轉(zhuǎn)換,范圍小的數(shù)據(jù)類型向范圍大的數(shù)據(jù)類型轉(zhuǎn)換時(shí)使用;
? 強(qiáng)制類型轉(zhuǎn)換,范圍大的數(shù)據(jù)類型向范圍小的數(shù)據(jù)類型轉(zhuǎn)換時(shí)使用。

算數(shù)運(yùn)算符 ? 用來完成算數(shù)運(yùn)算(如加減乘除計(jì)算等) ? ++,–運(yùn)算符的使用 ? ++,–前置(如++a),當(dāng)參與運(yùn)算時(shí),變量 a 的值先自增 1,然后用自 增后的新值再參與運(yùn)算; ? ++,–后置(如 a++),當(dāng)參與運(yùn)算時(shí),變量 a 先使用原有值參與運(yùn)算符, 變量 a 的值再自增 1。
? 賦值運(yùn)算符 ? 用來完成數(shù)據(jù)的賦值(如 int a = 100;) ? +=,-,*=,/=這樣的賦值運(yùn)算符包含了一個(gè)強(qiáng)制轉(zhuǎn)換的操作,會(huì)將左右兩邊運(yùn)算 后的結(jié)果,強(qiáng)制類型轉(zhuǎn)換后賦值給左邊

總結(jié)

以上是生活随笔為你收集整理的02-java常量变量数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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