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

歡迎訪問 生活随笔!

生活随笔

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

java

dsp 数据类型强制转换_JavaSE第二章总结—数据类型

發(fā)布時間:2023/12/19 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dsp 数据类型强制转换_JavaSE第二章总结—数据类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

命名規(guī)范

(變量命名、常量命名、方法命名乃至以后使用開發(fā)框架的配置文件命名,都可使用駝峰命名法)

①類的命名:首字母大寫,單詞語單詞之間首字母大寫。如:StudentId(學(xué)生ID號)、MaxValue(最大值)。

②變量的命名:第一個首字母小寫,其他單詞首字母大寫。如:identityCard firstName getName。

③常量命名:一個活多個單詞組成,所有字母大寫。

④方法的命名:第一個首字母小寫,其他單詞首字母大寫,如setName( )、getName( )。

數(shù)據(jù)類型

上一章也提到過,基本數(shù)據(jù)類型如下表

本章講講各數(shù)據(jù)類型間轉(zhuǎn)換(重點(diǎn))

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

①當(dāng)把存儲范圍小的值(常量值、變量的值、表達(dá)式計算的結(jié)果值)賦值給了存儲范圍大的變量時,

byte->short->int->long->float->double

char->

int signA = 'a'; //char自動升級為int double signB = 20; //20屬于int類型,該例中int自動升級為double

②當(dāng)存儲范圍小的數(shù)據(jù)類型與存儲范圍大的數(shù)據(jù)類型一起混合運(yùn)算時,會按照其中最大的類型運(yùn)算

int?signA= 1;byte signB = 1; double signC = 1.0;double sum = signA + signB + signC; //混合運(yùn)算,升級為存儲范圍大的變量double

③當(dāng)byte,short,char數(shù)據(jù)類型進(jìn)行算術(shù)運(yùn)算時,按照int類型處理

byte b1 = 1; byte b2 = 2; byte b3 = (byte)(b1 + b2); //b1 + b2首先升級為int,進(jìn)行加的操作,再強(qiáng)轉(zhuǎn)成bytechar c1 = '0'; char c2 = 'A'; System.out.println(c1 + c2); //113

2)強(qiáng)制類型轉(zhuǎn)換

①當(dāng)把存儲范圍大的值(常量值、變量的值、表達(dá)式計算的結(jié)果值)賦值給了存儲范圍小的變量時,需要強(qiáng)制類型轉(zhuǎn)換

double->float->long->int->short->byte

->char

提示:強(qiáng)轉(zhuǎn)有風(fēng)險,可能會損失精度或溢出

②當(dāng)某個值想要提升數(shù)據(jù)類型時,也可以使用強(qiáng)制類型轉(zhuǎn)換

int i = 1; int j = 2; double shang = (double)i/j;

提示:這個情況的強(qiáng)制類型轉(zhuǎn)換是沒有風(fēng)險的。

代碼示例 A:

public class DataDemo2 { public static void main(String[] args) { /** * int a=1.5; 編譯失敗,無法賦值 */ int i = (int)1.5; double d=2.5; //int類型和double類型運(yùn)算,結(jié)果是double類型 //int類型會提升為double類型 double e = d + i; System.out.println(e); }}

代碼示例B:

public class DataDemo3 { public static void main(String[] args) { short s = 1; /** * s = s + 1 會出現(xiàn)編譯失敗 * * 原因: * s 和 1 做運(yùn)算的時候,1 是 int 類型,s 會被提升為 int 類型 * s+1 后的結(jié)果是 int 類型,將結(jié)果在賦值會 short 類型時發(fā)生錯誤 * short 內(nèi)存2個字節(jié),int 類型4個字節(jié) * 必須將 int 強(qiáng)制轉(zhuǎn)成 short 才能完成賦值 */ s= (short) (s+1); System.out.println(s); }}

3)特殊的數(shù)據(jù)類型轉(zhuǎn)換

任意數(shù)據(jù)類型的數(shù)據(jù)與String類型進(jìn)行“+”運(yùn)算時,結(jié)果一定是String類型

System.out.println("" + 1 + 2); //12

但是String類型不能通過強(qiáng)制類型()轉(zhuǎn)換,轉(zhuǎn)為其他的類型

String str = "123"; int num = (int)str; //這是錯誤的

4)“+=”符號擴(kuò)展范例

示例代碼 A:

public class DataDemo4 { public static void main(String[] args) { short s = 1; s += 1; System.out.println(s); }}

分析:

? s += 1 邏輯上看作是 s = s + 1 計算結(jié)果被提升為int類型,再向short類型賦值時發(fā)生錯誤,因為不能將 取值范圍大的類型賦值到取值范圍小的類型。但是, s=s+1進(jìn)行兩次運(yùn)算 , += 是一個運(yùn)算符,只運(yùn)算 一次,并帶有強(qiáng)制轉(zhuǎn)換的特點(diǎn),也就是說 s += 1 就是 s = (short)(s + 1) ,因此程序沒有問題編譯通過, 運(yùn)行結(jié)果是2.

示例代碼 B:

public class DataDemo5 { public static void main(String[] args) { byte b1=1; byte b2=2; byte b3=1+2; //byte b4 = b1 + b2; 編譯失敗 System.out.println(b3); }}

分析:

? b3 = 1 + 2 ,1 和 2 是常量,為固定不變的數(shù)據(jù),在編譯的時候(編譯器javac),已經(jīng)確定了 1+2 的 結(jié)果并沒有超過byte類型的取值范圍,可以賦值給變量 b3 ,因此 b3=1 + 2 是正確的。

? 反之, b4 = b2 + b3 , b2 和 b3 是變量,變量的值是可能變化的,在編譯的時候,編譯器javac不確定 b2+b3的結(jié)果是什么,因此會將結(jié)果以int類型進(jìn)行處理,所以int類型不能賦值給byte類型,因此編譯失 敗。

數(shù)據(jù)類型的轉(zhuǎn)換,簡而言之,記住兩句話:

1.程序中的整數(shù)默認(rèn)都是int型,即在方法調(diào)用直接傳入的一個具體的整數(shù)值,默認(rèn)情況下是int型。

2.值域小的的類型可以自動轉(zhuǎn)化為值域大的。值域大的不能直接轉(zhuǎn)化為值域小的,但是確認(rèn)無風(fēng)險的情況下,可以通過強(qiáng)制轉(zhuǎn)化實(shí)現(xiàn)。

重中之重:學(xué)習(xí)的動力,在于美圖

總結(jié)

以上是生活随笔為你收集整理的dsp 数据类型强制转换_JavaSE第二章总结—数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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