java数据类型(整型、浮点型、char类型、boolean型、类型转换)
生活随笔
收集整理的這篇文章主要介紹了
java数据类型(整型、浮点型、char类型、boolean型、类型转换)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 0.思維導圖總覽
- 1.整型
- 2.浮點型
- 3.char型
- 4.boolean型
- 5.java內置常量對應數據類型的取值范圍
- 6.數據類型默認值
- 7.數值類型之間的轉換
- (1)定義數據類型后自動轉換
- (2)二元運算時的自動轉換
- (3)強制類型轉換
- 8.參考
本篇文章已收錄到:https://www.bithachi.cn/posts/abf8abd7.html
0.思維導圖總覽
1.整型
- 整型用于表示沒有小數部分的數值, 它允許是負數。默認的整型為int型
- byte 和 short 類型主要用于特定的應用場合,例如,底層的文件處理或者需要控制占用
存儲空間量的大數組。 - 在 Java 中, 整型的范圍與運行 Java 代碼的機器無關。這就解決了軟件從一個平臺移植到
另一個平臺,或者在同一個平臺中的不同操作系統之間進行移植給程序員帶來的諸多問題。 - 長整型數值有一個后綴 L 或 l ( 如 4000000000L。)
- 十六進制數值有一個前綴 0x 或 0X (如0xCAFEL
- 八進制有一個前綴 0 , 例如, 010 對應八進制中的 8。
- 很顯然, 八進制表示法比較容易混淆, 所以建議最好不要使用八進制常數。
- 從 Java 7 開始, 加上前綴 0b 或 0B 就可以寫二進制數。例如,0bl001就是 9。
- 從 Java 7 開始,還可以為數字字面量加下劃線,如用 1_000_000(或者0b1111_0100_0010_10 00_0000 )表示一百萬。這些下劃線只是為了讓人更易讀。·Java 編譯器會去除這些下劃線。
- 在 Java 中, 所有的數值類型所占據的字節數量與平臺無關。
- 注意: Java 沒有任何無符號(unsigned) 形式的 int、 long、short 或 byte 類型。
- 代碼測試
2.浮點型
- 浮點類型用于表示有小數部分的數值,默認的浮點型為double型
- double 表示這種類型的數值精度是 float 類型的兩倍(有人稱之為雙精度數值)
- 實際上,只有很少的情況適合使用 float 類型,例如,需要單精度數據的庫, 或者需要存儲大量數據。
- float 類型的數值有一個后綴 F 或 f (例如,3.14F。) 沒有后綴 F 的浮點數值(如 3.14 ) 默認為 double 類型。
- 當然,也可以在浮點數值double后面添加后綴 D 或 d (例如,3.14D),不加也可以。
- 可以使用十六進制表示浮點數值。例如,0.125=2-3 可以表示成 0x1.0p-3。在十六進制表示法中, 使用 p 表示指數, 而不是 e。 注意, 尾數采用十六進制,指數采用十進制。指數的基數是 2,而不是 10。 對于十六進制表示我沒懟出來,還請大佬多多指教,留個言教教我,抱拳了!
- 所有的浮點數值計算都遵循 IEEE 754 規范。具體來說,下面是用于表示溢出和出錯情況的三個特殊的浮點數值:
?正無窮大
?負無窮大
?NaN (不是一個數字)
例如, 一 正整數除以 0 的結果為正無窮大。計算 0/0 或者負數的平方根結果為 NaN。
常量 Double.POSITIVE_INFINITY、 Double.NEGATIVE_INFINITY 和 Double.NaN
( 以及相應的 Float 類型的常量) 分別表示這三個特殊的值, 但在實際應用中很少遇到。 - 特別要說明的是, 不能這樣檢測一個特定值是否等于Double.NaN:
- 所有“ 非數值” 的值都認為是不相同的。然而,可以使用 Double.isNaN 方法:
-
浮點數值不適用于無法接受舍入誤差的金融計算中。
-
例如,命令 System.out.println( 2.0-1.1 ) 將打印出 0.8999999999999999, 而不是人們想象的 0.9。
-
這種舍入誤差的主要原因是浮點數值采用二進制系統表示, 而在二進制系統中無法精確地表示分數 1/10。 這就好像十進制無法精確地表示分數 1/3—樣。
-
如果在數值計算中不允許有任何舍入誤差,就應該使用 BigDecimal類
-
代碼測試
3.char型
- char 類型原本用于表示單個字符。不過,現在情況已經有所變化。 如今,有些 Unicode
字符可以用一個 char值描述,另外一些 Unicode 字符則需要兩個 char 值。 - char 類型的字面量值要用單引號括起來。
- char a=’’,什么都不寫報錯,可以存個空格。
- char 類型的值可以表示為十六進制值,其范圍從 \u0000 到 \Uffff。例如: \u03C0 表示希臘字母 π。
- 除了轉義序列 \u 之外, 還有一些用于表示特殊字符的轉義序列。所有這些轉義序列都可以出現在加引號的字符字面量或字符串中。例如,’\u2122’ 或 “Hello\n”。
- 轉義序列 \u還可以出現在加引號的字符常量或字符串之外(而其他所有轉義序列不可以)。例 如:
就完全符合語法規則, \u005B 和 \u005D 是 [ 和 ] 的編碼
代碼測試:
- 抱著玩的興趣測試了一下\u轉義序列
- Unicode轉義字符序列的官網 http://www.52unicode.com/
4.boolean型
- boolean (布爾)類型有兩個值:false 和 true, 用來判定邏輯條件 整型值和布爾值之間
不能進行相互轉換。
5.java內置常量對應數據類型的取值范圍
public class Test {public static void main(String[] args) {// byteSystem.out.println("基本類型:byte 二進制位數:" + Byte.SIZE);System.out.println("包裝類:java.lang.Byte");System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);System.out.println();// shortSystem.out.println("基本類型:short 二進制位數:" + Short.SIZE);System.out.println("包裝類:java.lang.Short");System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);System.out.println();// intSystem.out.println("基本類型:int 二進制位數:" + Integer.SIZE);System.out.println("包裝類:java.lang.Integer");System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);System.out.println();// longSystem.out.println("基本類型:long 二進制位數:" + Long.SIZE);System.out.println("包裝類:java.lang.Long");System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);System.out.println();// floatSystem.out.println("基本類型:float 二進制位數:" + Float.SIZE);System.out.println("包裝類:java.lang.Float");System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);System.out.println();// doubleSystem.out.println("基本類型:double 二進制位數:" + Double.SIZE);System.out.println("包裝類:java.lang.Double");System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);System.out.println();// charSystem.out.println("基本類型:char 二進制位數:" + Character.SIZE);System.out.println("包裝類:java.lang.Character");// 以數值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);// 以數值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);} }6.數據類型默認值
public class Test {static boolean bool;static byte by;static char ch;static double d;static float f;static int i;static long l;static short sh;static String str;public static void main(String[] args) {System.out.println("Bool :" + bool);System.out.println("Byte :" + by);System.out.println("Character:" + ch);System.out.println("Double :" + d);System.out.println("Float :" + f);System.out.println("Integer :" + i);System.out.println("Long :" + l);System.out.println("Short :" + sh);System.out.println("String :" + str);} }7.數值類型之間的轉換
(1)定義數據類型后自動轉換
- 數值類型之間的轉換就是自動將一種數據類型轉換成另一種數據類型
- 數值類型之間自動轉換時的表:
- 這里浮點型取值范圍與計算機組成原理里面講的IEEE754標準有關
(2)二元運算時的自動轉換
- 此外兩種不同類型的數據進行二元運算時,比如加減乘除,數據轉換從位數少的數據類型向位數多的數據類型轉換,然后再進行二元運算。
- 比如char是1個字節,int是4個字節,char+int,兩種數據類型相加,得到的是一個整數。
(3)強制類型轉換
- 比如說將double轉換為int型,即不按照上面所提到的轉換表表進行合法轉換
- 強制類型轉換將小數部分截去,將浮點值轉換為整型值
- 如果試圖將一個數值從一種類型強制轉換為另一種類型, 而又超出了目標類型的表示范圍,結果就會截斷成一個完全不同的值
- 不要將boolean與其它數據類型進行轉換
- 可以用條件轉換x? 1:0代替
8.參考
- https://www.runoob.com/java/java-basic-datatypes.html
- 《java核心技術卷一第十版》
總結
以上是生活随笔為你收集整理的java数据类型(整型、浮点型、char类型、boolean型、类型转换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基本语法及基本概念概述(标识符、访问修饰
- 下一篇: 2013 javaB3 振兴中华、从我做