Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用
一、整型
主要擴(kuò)展一下不同進(jìn)制的整型
二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制
* 二進(jìn)制 : 0B(數(shù)字零+B) 0b(數(shù)字零+b)
* 八進(jìn)制 :0(數(shù)字零開頭)
* 十進(jìn)制 :正常寫就是十進(jìn)制
* 十六進(jìn)制 : 0X (數(shù)字零+X)0x (數(shù)字零+x) A-F 代表 10-15
1.1 測(cè)試代碼
/** * 進(jìn)制 : * 二進(jìn)制 : 0B(數(shù)字零+B) 0b(數(shù)字零+b) * 八進(jìn)制 :0(數(shù)字零開頭) * 十進(jìn)制 :正常寫就是十進(jìn)制 * 十六進(jìn)制 : 0X (數(shù)字零+X)0x (數(shù)字零+x) * A-F 代表 10-15 * */ int i2_1 = 0b10; // 二進(jìn)制的 2 int i2_2 = 0B10; int i8 = 010; // 八進(jìn)制的 8 int i10 = 10; // 十進(jìn)制的 10 int i16_1 = 0X1B; // 十六進(jìn)制的 16+11 = 27 int i16_2 = 0x1B; System.out.println("二進(jìn)制:i2_1 = "+i2_1); System.out.println("二進(jìn)制:i2_2 = "+i2_2); System.out.println("八進(jìn)制:i8 = "+i8); System.out.println("十進(jìn)制:i10 = "+i10); System.out.println("十六進(jìn)制:i16_1 = "+i16_1); System.out.println("十六進(jìn)制:i16_2 = "+i16_2);
1.2 運(yùn)行結(jié)果
二進(jìn)制:i2_1 = 2
二進(jìn)制:i2_2 = 2
八進(jìn)制:i8 = 8
十進(jìn)制:i10 = 10
十六進(jìn)制:i16_1 = 27
十六進(jìn)制:i16_2 = 27
二、浮點(diǎn)型
【特別注意】程序中盡量不要使用浮點(diǎn)型的數(shù)據(jù)進(jìn)行比較,否則可能會(huì)出現(xiàn)非常嚴(yán)重的問題
浮點(diǎn)數(shù)的詭異比較 1. float 和 double 的數(shù)據(jù)不可直接進(jìn)行比較 : float類型:有限的離散數(shù)據(jù),舍入誤差,所以不等于double同數(shù)據(jù) 2. float 和 float 的數(shù)據(jù)比較不可直接使用 == 【結(jié)論】 : 當(dāng)涉及到 浮點(diǎn)數(shù)的比較的時(shí)候: 思路一 : 做差 小于某個(gè)數(shù) 思路二 : 使用 大數(shù)類型 BigDecimal
2.1 測(cè)試代碼(很關(guān)鍵)
/** * 浮點(diǎn)數(shù)的詭異比較 * 1. float 和 double 的數(shù)據(jù)不可直接進(jìn)行比較 : * float類型:有限的離散數(shù)據(jù),舍入誤差,所以不等于double同數(shù)據(jù) * 2. float 和 float 的數(shù)據(jù)比較不可直接使用 == * * 【結(jié)論】 : 當(dāng)涉及到 浮點(diǎn)數(shù)的比較的時(shí)候: * 思路一 : 做差 小于某個(gè)數(shù) * 思路二 : 使用 大數(shù)類型 BigDecimal */ float f1 = 1.56f; double f2 = 1.56; System.out.println("f1 = "+f1); System.out.println("f2 = "+f2); System.out.println(" f1 是否與 f2 的值相等 : "+(f1 == f2)); float d1 = 1231238142342342342909f; float d2 = d1 +1; System.out.println("d1 = "+d1); System.out.println("d2 = "+d2); System.out.println("d1 是否與 d2 的值相等 : "+(d1 == d2));
2.2 運(yùn)行結(jié)果
f1 = 1.56
f2 = 1.56
f1 是否與 f2 的值相等 : false
d1 = 1.2312381E21
d2 = 1.2312381E21
d1 是否與 d2 的值相等 : true
三、字符的本質(zhì)是數(shù)字
字符類型的數(shù)據(jù),本質(zhì)上是一個(gè)數(shù)字
字符對(duì)應(yīng)的是Unicode 編碼表中數(shù)字
可以直接寫 U0000 UFFFF (U后跟著的是十六進(jìn)制的數(shù))
【特殊的字符】 : 轉(zhuǎn)義字符***
3.1 測(cè)試代碼
char c1 = 'a'; char c2 = '國(guó)'; char c3 = '\u0065'; // 十六進(jìn)制 65 對(duì)應(yīng) unicode 編碼表中的 小寫字母 e System.out.println("c1 = " +c1+" ; (int)c1 = "+(int)c1); System.out.println("c2 = " +c2+" ; (int)c2 = "+(int)c2); System.out.println("c3 = "+c3);
3.2 運(yùn)行結(jié)果
c1 = a ; (int)c1 = 97
c2 = 國(guó) ; (int)c2 = 22269
c3 = e
四、字符串的比較
【注意】 字符串String 不屬于基本數(shù)據(jù)類型!
此處的比較主要是體會(huì)一下值 的比較
和對(duì)象地址的比較
4.1 測(cè)試代碼
String s1 = new String("Hello World!"); String s2 = new String("Hello World!"); String s3 = "Hello World!"; String s4 = "Hello World!"; System.out.println("s1 是否與 s2 相等 ? : "+(s1 == s2)); // false 對(duì)象的比較 System.out.println("s3 是否與 s4 相等 ? : "+(s3 == s4)); // true 值的比較
4.2 運(yùn)行結(jié)果
s1 是否與 s2 相等 ? : false
s3 是否與 s4 相等 ? : true
到此這篇關(guān)于Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用的文章就介紹到這了,更多相關(guān)Java基本數(shù)據(jù)類型 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析Java編程中對(duì)于包結(jié)構(gòu)的命名和訪問
這篇文章主要介紹了Java編程中對(duì)于包結(jié)構(gòu)的命名和訪問,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12Java線程的生命周期命名與獲取代碼實(shí)現(xiàn)
這篇文章主要介紹了Java線程的生命周期命名與獲取代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04mybatis-plus實(shí)現(xiàn)自定義SQL、多表查詢與多表分頁查詢語句實(shí)例
mybatisplus是個(gè)很好用的插件,相信小伙伴們都知道,下面這篇文章主要給大家介紹了關(guān)于mybatis-plus實(shí)現(xiàn)自定義SQL、多表查詢與多表分頁查詢語句的相關(guān)資料,需要的朋友可以參考下2022-09-09JDBC+GUI實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了JDBC+GUI實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02