溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JavaSE中數(shù)據(jù)類(lèi)型的示例分析

發(fā)布時(shí)間:2021-09-01 13:34:54 來(lái)源:億速云 閱讀:106 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)JavaSE中數(shù)據(jù)類(lèi)型的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。


    Java類(lèi)型匯總

    JavaSE中數(shù)據(jù)類(lèi)型的示例分析

    整型變量-int\長(zhǎng)整型變量-long\短整形變量-short

    基本語(yǔ)法格式:

    int   變量名 = 初始值;
    long  變量名 = 初始值;
    short 變量名 = 初始值;
    • 包裝類(lèi):Integer(依舊是整形); Long ; Short

    • 示例:

    int num = 10; // 定義一個(gè)整型變量
    System.out.println(num);
    long num = 10L; // 定義一個(gè)長(zhǎng)整型變量, 初始值寫(xiě)作 10l 也可以(小寫(xiě)的 L, 不是數(shù)字1). 
    System.out.println(num);
    short value = 0; 
    System.out.println(value);

    注:Java 是強(qiáng)類(lèi)型語(yǔ)言,10 默認(rèn)是 int 型,不加 L 則等號(hào)左右類(lèi)型不匹配

    • 整型數(shù)據(jù)范圍:

    int 類(lèi)型占4字節(jié),數(shù)據(jù)范圍是 -2^31 ~ 2^31-1

    JavaSE中數(shù)據(jù)類(lèi)型的示例分析

    • 如何查看:

    System.out.println(Integer.MAX_VALUE);  // int 的最大值 2147483648
    System.out.println(Integer.MIN_VALUE);  // int 的最小值-2147483648
    • 長(zhǎng)整形數(shù)據(jù)范圍:

    long 類(lèi)型占 8 個(gè)字節(jié) . 表示的數(shù)據(jù)范圍 - 2^63 - > 2^63 - 1
    • 如何查看:

    System.out.println(Long.MAX_VALUE);\\ 9223372036854775807
    System.out.println(Long.MIN_VALUE);\\-9223372036854775807
    • 短整形數(shù)據(jù)范圍:

    short 占用 2 個(gè)字節(jié) , 表示的數(shù)據(jù)范圍是 - 32768 - > +32767
    • 如何查看:

    System.out.println(Short.MAX_VALUE);	
    System.out.println(Short.MIN_VALUE);	
    • 注意:

    當(dāng)運(yùn)算的結(jié)果超出了相應(yīng)類(lèi)型的范圍, 就會(huì)出現(xiàn)溢出的情況(參考上文圓形范圍圖)

    • 以int類(lèi)型為例:

    System.out.println(Integer.MAX_VALUE+1);// 結(jié)果為-2147483648
    System.out.println(Integer.MIN_VALUE-1);// 結(jié)果為 2147483648

    特別注意:

    變量定義時(shí)一定要初始化,否則編譯不通過(guò)(java語(yǔ)言安全性高)

    變量大小與平臺(tái)位數(shù)無(wú)關(guān)(java語(yǔ)言可移植性高)

    浮點(diǎn)型變量-double\float

    • 基本語(yǔ)法格:

    double 變量名 = 初始值;
    float  變量名 = 初始值;
    • 示例:

    double num = 1.0;
    System.out.println(num)
    float num = 1.0f;    // 寫(xiě)作 1.0F 也可以
    System.out.println(num);

    注:Java 是強(qiáng)類(lèi)型語(yǔ)言,1.0 默認(rèn)是 double 型,不加 f 則等號(hào)左右類(lèi)型不匹配

    • 輸出:

    如果想規(guī)定輸出小數(shù)點(diǎn)多少位時(shí)使用 printf

    System.out.printf("%.nlf",num);\\n表示想要輸出小數(shù)點(diǎn)后幾位

    注意:

    1.Java 中的 double 占 8 個(gè)字節(jié);float 占四個(gè)字節(jié)
    2.當(dāng)整型相除得到的是整型,如果需要得到小數(shù)點(diǎn)需要double類(lèi)型運(yùn)算
    3.浮點(diǎn)數(shù)的存儲(chǔ)與整型存儲(chǔ)不同,java浮點(diǎn)數(shù)的存儲(chǔ)參考C語(yǔ)言(遵守IEEE754標(biāo)準(zhǔn))

    字符類(lèi)型變量-char

    • 基本格式:

    char 變量名 = 初始值;

    • 示例:

    char ch2 = 'A';
    char ch3 = '呵'; 
    System.out.println(ch);

    注:Java 中使用 單引號(hào) + 單個(gè)字母 的形式表示字符字面值

    • 字符類(lèi)型數(shù)據(jù)范圍:

    java中 char 類(lèi)型占兩個(gè)字節(jié)(表示的字符種類(lèi)更多, 包括中文)

    System.out.println(Character.MAX_VALUE);	// char 的最大值'\uFFFF'
    System.out.println(Character.MIN_VALUE);	// char 的最小值'\u0000'

    注:計(jì)算機(jī)中字符本質(zhì)為整數(shù):C語(yǔ)言中使用ASCII表示字符, Java中使用Unicode表示字符

    • 注意:

    當(dāng)有編碼有中文時(shí)需要在編譯執(zhí)行 javac 時(shí)加上 -encoding UTF-8 (否則會(huì)編譯錯(cuò)誤)

    字節(jié)類(lèi)型變-byte

    • 基本語(yǔ)法格式:

    byte 變量名 = 初始值;

    • 示例:

    byte value = 0; 
    System.out.println(value);

    注:字節(jié)類(lèi)型表示的也是整數(shù),只占一個(gè)字節(jié), 表示范圍較小 ( -128 -> 127 )(與char不同)

    當(dāng)字節(jié)等小于4個(gè)字節(jié)的類(lèi)型運(yùn)算時(shí)會(huì)發(fā)生整型提升

    布爾類(lèi)型變量-boolean

    • 基本語(yǔ)法格式:

    boolean 變量名 = 初始值;//初始值只能是true\flase

    • 示例:

    boolean value = true; 
    System.out.println(value);
    • 注意:

    1.boolean 類(lèi)型的變量只有兩種取值, true 表示真, false 表示假(與C語(yǔ)言不同)
    2.Java 中 boolean 類(lèi)型和 int 不能相互轉(zhuǎn)換(類(lèi)型不兼容),不存在 1 表示 true, 0 表示 false 這樣的用法
    3.boolean 類(lèi)型有些 JVM 的實(shí)現(xiàn)是占 1 個(gè)字節(jié), 有些是占 1 個(gè)比特位, 這個(gè)沒(méi)有明確規(guī)定

    字符串類(lèi)型變量-String

    String不是基本類(lèi)型,是引用類(lèi)型

    • 基本語(yǔ)法格式:

    String 變量名 = "初始值";

    • 示例:

    String name = "zhangsan"; 
    System.out.println(name);

    注:Java 使用 雙引號(hào) + 若干字符 的方式表示字符串字面值

    name存放的是字符串所占的那片空間的地址

    字符串拼接

    字符串“+”任意類(lèi)型的數(shù)據(jù)結(jié)果是字符串

    • 示例:

    //字符串與字符串拼接
    String a = "hello"; 
    String b = "world"; 
    String c = a + b; 
    System.out.println(c);
    輸出結(jié)果:hello world
    //字符串和整數(shù)進(jìn)行拼接
    int a = 10;
    System.out.println("a = " + a);
    輸出結(jié)果:a=10
    注意:當(dāng)想要先計(jì)算數(shù)據(jù)時(shí)可以加上括號(hào)
    • 示例:

    int a = 10;
    int b = 20;
    System.out.println("a+b = " + (a + b));
    輸出結(jié)果:a+b=30

    字符串轉(zhuǎn)義

    字符串中的一些特定的不太方便直接表示的字符需要進(jìn)行轉(zhuǎn)義(同C語(yǔ)言)
    • 示例:

    String str = "Hello \"xxx\" !";
    System.out.println(str);
    輸出結(jié)果:Hello "xxx" !
    • 特殊的轉(zhuǎn)義字符:


    特殊字符的轉(zhuǎn)義序列
    轉(zhuǎn)義字符解釋Unicode 值
    \b退格\u0008
    \t制表\u0009
    \n換行\u000a
    \r回車(chē)\u000d
    \ ‘'雙引號(hào)\u0022
    \ '單引號(hào)\u0027
    \ \反斜杠\u005c

    變量的作用域

    定義:指變量能生效的范圍,
    一般是變量定義所在的代碼塊 (大括號(hào))(與C語(yǔ)言一致)

    變量的命名規(guī)則

    • 硬性指標(biāo):

    1. 一個(gè)變量名只能包含數(shù)字, 字母, 下劃線
    2. 數(shù)字不能開(kāi)頭
    3. 變量名是大小寫(xiě)敏感的. 即 num 和 Num 是兩個(gè)不同的變量
    注意: 雖然語(yǔ)法上也允許使用中文/美元符($)命名變量, 但 強(qiáng)烈 不推薦這樣做

    • 軟性指標(biāo):

    1. 變量命名要具有描述性, 見(jiàn)名知意
    2. 變量名不宜使用拼音(但是不絕對(duì))
    3. 變量名的詞性推薦使用名詞
    4. 變量命名推薦 小駝峰命名法, 當(dāng)一個(gè)變量名由多個(gè)單詞構(gòu)成的時(shí)候, 除了第一個(gè)單詞之外, 其他單詞首字母都大寫(xiě)

    常量

    定義:指的是運(yùn)行時(shí)類(lèi)型不能發(fā)生改變

    字面值常量

    10 		// int 字面值常量(十進(jìn)制) 
    010 	// int 字面值常量(八進(jìn)制) 由數(shù)字 0 開(kāi)頭. 010 也就是十進(jìn)制的 8 
    0x10 	// int 字面值常量(十六進(jìn)制) 由數(shù)字 0x 開(kāi)頭. 0x10 也就是十進(jìn)制的 16 
    10L 	// long 字面值常量. 也可以寫(xiě)作 10l (小寫(xiě)的L) 
    1.0 	// double 字面值常量. 也可以寫(xiě)作 1.0d 或者 1.0D 
    1.5e2 	// double 字面值常量. 科學(xué)計(jì)數(shù)法表示. 相當(dāng)于 1.5 * 10^2 
    1.0f 	// float 字面值常量, 也可以寫(xiě)作 1.0F 
    true 	// boolen 字面值常量, 同樣的還有 false 
    'a' 	// char 字面值常量, 單引號(hào)中只能有一個(gè)字符
    "abc" 	// String 字面值常量, 雙引號(hào)中可以有多個(gè)字符

    final 關(guān)鍵字修飾的常量

    final int a = 10; 
    a = 20; // 編譯出錯(cuò). 提示 無(wú)法為最終變量a分配值

    注:常量不能在程序運(yùn)行過(guò)程中發(fā)生修改

    類(lèi)型轉(zhuǎn)換

    int 和 long/double 相互賦值

    隱性類(lèi)型轉(zhuǎn)換
    小范圍類(lèi)型賦值給大范圍類(lèi)型(不會(huì)報(bào)錯(cuò))
    顯性類(lèi)型轉(zhuǎn)換
    大范圍類(lèi)型賦值給小范圍類(lèi)型(會(huì)報(bào)錯(cuò))

    • 示例:

    int a = 10; 
    long b = 20; 
    a = b; // 編譯出錯(cuò), 提示可能會(huì)損失精度
    b = a; // 編譯通過(guò)
    注:使用強(qiáng)制類(lèi)型轉(zhuǎn)化的方式可以將 double 類(lèi)型強(qiáng)制轉(zhuǎn)成 int,但是可能精度缺失

    int 和 boolean 相互賦值 示例:

    int a = 10; 
    boolean b = true; 
    b = a; // 編譯出錯(cuò), 提示不兼容的類(lèi)型
    a = b; // 編譯出錯(cuò), 提示不兼容的類(lèi)型

    注:int 和 boolean互不相干,互不相干的類(lèi)型之間無(wú)法強(qiáng)轉(zhuǎn)

    總結(jié):

    1. 不同數(shù)字類(lèi)型的變量之間賦值, 表示范圍更小的類(lèi)型能隱式轉(zhuǎn)換成范圍較大的類(lèi)型
    2. 如果需要把范圍大的類(lèi)型賦值給范圍小的, 需要強(qiáng)制類(lèi)型轉(zhuǎn)換, 但是可能精度丟失
    3. 將一個(gè)字面值常量進(jìn)行賦值的時(shí)候, Java 會(huì)自動(dòng)針對(duì)數(shù)字范圍進(jìn)行檢查

    數(shù)值提升

    int 和 long 混合運(yùn)算

    int a = 10; 
    long b = 20; 
    int c = a + b; // 編譯出錯(cuò), 提示將 long 轉(zhuǎn)成 int 會(huì)丟失精度
    long d = a + b; // 編譯通過(guò)

    結(jié)論:

    當(dāng) int 和 long 混合運(yùn)算的時(shí)候 , int 會(huì)提升成 long , 得到的結(jié)果是 long 類(lèi)型 , 需要 long 類(lèi)型接收
    如果非要用 int 來(lái)接收結(jié)果 , 就需要使用強(qiáng)制類(lèi)型轉(zhuǎn)換

    byte 和 byte 的運(yùn)算

    byte a = 10; 
    byte b = 20; 
    byte c = a + b; 
    System.out.println(c); // 編譯報(bào)錯(cuò)

    解釋?zhuān)河?jì)算時(shí)先將a和b都提升成int, 得到的結(jié)果也是int, 需要int型接收(或者強(qiáng)制類(lèi)型轉(zhuǎn)化)

    結(jié)論:

    當(dāng)小于4字節(jié)類(lèi)型數(shù)據(jù)計(jì)算時(shí)需考慮整型提升

    int 和 String 之間的相互轉(zhuǎn)換

    int 轉(zhuǎn)換成 String

    示例:

    int num = 10;
    String str1 = num + "";
    //String str2 = String.valueOf(num);

    String 轉(zhuǎn)換成 int

    示例:

    String str = "100";
    int num = Integer.parseInt(str);
    //int num = Integer.valueOf(str);

    感謝各位的閱讀!關(guān)于“JavaSE中數(shù)據(jù)類(lèi)型的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI