dsp 数据类型强制转换_JavaSE第二章总结—数据类型
命名規范
(變量命名、常量命名、方法命名乃至以后使用開發框架的配置文件命名,都可使用駝峰命名法)
①類的命名:首字母大寫,單詞語單詞之間首字母大寫。如:StudentId(學生ID號)、MaxValue(最大值)。
②變量的命名:第一個首字母小寫,其他單詞首字母大寫。如:identityCard firstName getName。
③常量命名:一個活多個單詞組成,所有字母大寫。
④方法的命名:第一個首字母小寫,其他單詞首字母大寫,如setName( )、getName( )。
數據類型
上一章也提到過,基本數據類型如下表
本章講講各數據類型間轉換(重點)
1)自動類型轉換
①當把存儲范圍小的值(常量值、變量的值、表達式計算的結果值)賦值給了存儲范圍大的變量時,
byte->short->int->long->float->double
char->
int signA = 'a'; //char自動升級為int double signB = 20; //20屬于int類型,該例中int自動升級為double②當存儲范圍小的數據類型與存儲范圍大的數據類型一起混合運算時,會按照其中最大的類型運算
int?signA= 1;byte signB = 1; double signC = 1.0;double sum = signA + signB + signC; //混合運算,升級為存儲范圍大的變量double③當byte,short,char數據類型進行算術運算時,按照int類型處理
byte b1 = 1; byte b2 = 2; byte b3 = (byte)(b1 + b2); //b1 + b2首先升級為int,進行加的操作,再強轉成bytechar c1 = '0'; char c2 = 'A'; System.out.println(c1 + c2); //1132)強制類型轉換
①當把存儲范圍大的值(常量值、變量的值、表達式計算的結果值)賦值給了存儲范圍小的變量時,需要強制類型轉換
double->float->long->int->short->byte
->char
提示:強轉有風險,可能會損失精度或溢出
②當某個值想要提升數據類型時,也可以使用強制類型轉換
int i = 1; int j = 2; double shang = (double)i/j;提示:這個情況的強制類型轉換是沒有風險的。
代碼示例 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類型運算,結果是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 會出現編譯失敗 * * 原因: * s 和 1 做運算的時候,1 是 int 類型,s 會被提升為 int 類型 * s+1 后的結果是 int 類型,將結果在賦值會 short 類型時發生錯誤 * short 內存2個字節,int 類型4個字節 * 必須將 int 強制轉成 short 才能完成賦值 */ s= (short) (s+1); System.out.println(s); }}3)特殊的數據類型轉換
任意數據類型的數據與String類型進行“+”運算時,結果一定是String類型
System.out.println("" + 1 + 2); //12但是String類型不能通過強制類型()轉換,轉為其他的類型
String str = "123"; int num = (int)str; //這是錯誤的4)“+=”符號擴展范例
示例代碼 A:
public class DataDemo4 { public static void main(String[] args) { short s = 1; s += 1; System.out.println(s); }}分析:
? s += 1 邏輯上看作是 s = s + 1 計算結果被提升為int類型,再向short類型賦值時發生錯誤,因為不能將 取值范圍大的類型賦值到取值范圍小的類型。但是, s=s+1進行兩次運算 , += 是一個運算符,只運算 一次,并帶有強制轉換的特點,也就是說 s += 1 就是 s = (short)(s + 1) ,因此程序沒有問題編譯通過, 運行結果是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 是常量,為固定不變的數據,在編譯的時候(編譯器javac),已經確定了 1+2 的 結果并沒有超過byte類型的取值范圍,可以賦值給變量 b3 ,因此 b3=1 + 2 是正確的。
? 反之, b4 = b2 + b3 , b2 和 b3 是變量,變量的值是可能變化的,在編譯的時候,編譯器javac不確定 b2+b3的結果是什么,因此會將結果以int類型進行處理,所以int類型不能賦值給byte類型,因此編譯失 敗。
數據類型的轉換,簡而言之,記住兩句話:
1.程序中的整數默認都是int型,即在方法調用直接傳入的一個具體的整數值,默認情況下是int型。
2.值域小的的類型可以自動轉化為值域大的。值域大的不能直接轉化為值域小的,但是確認無風險的情況下,可以通過強制轉化實現。
重中之重:學習的動力,在于美圖
總結
以上是生活随笔為你收集整理的dsp 数据类型强制转换_JavaSE第二章总结—数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 知乎2022年总收入36.05亿元,同比
- 下一篇: 像是开高达 宗申机甲X-1电动车上市:续
