Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用
一、整型
主要擴展一下不同進(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 測試代碼
/**
* 進(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 運行結(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
二、浮點型
【特別注意】程序中盡量不要使用浮點型的數(shù)據(jù)進(jìn)行比較,否則可能會出現(xiàn)非常嚴(yán)重的問題
浮點數(shù)的詭異比較
1. float 和 double 的數(shù)據(jù)不可直接進(jìn)行比較 :
float類型:有限的離散數(shù)據(jù),舍入誤差,所以不等于double同數(shù)據(jù)
2. float 和 float 的數(shù)據(jù)比較不可直接使用 ==
【結(jié)論】 : 當(dāng)涉及到 浮點數(shù)的比較的時候:
思路一 : 做差 小于某個數(shù)
思路二 : 使用 大數(shù)類型 BigDecimal
2.1 測試代碼(很關(guān)鍵)
/**
* 浮點數(shù)的詭異比較
* 1. float 和 double 的數(shù)據(jù)不可直接進(jìn)行比較 :
* float類型:有限的離散數(shù)據(jù),舍入誤差,所以不等于double同數(shù)據(jù)
* 2. float 和 float 的數(shù)據(jù)比較不可直接使用 ==
*
* 【結(jié)論】 : 當(dāng)涉及到 浮點數(shù)的比較的時候:
* 思路一 : 做差 小于某個數(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 運行結(jié)果
f1 = 1.56
f2 = 1.56
f1 是否與 f2 的值相等 : false
d1 = 1.2312381E21
d2 = 1.2312381E21
d1 是否與 d2 的值相等 : true
三、字符的本質(zhì)是數(shù)字
字符類型的數(shù)據(jù),本質(zhì)上是一個數(shù)字
字符對應(yīng)的是Unicode 編碼表中數(shù)字
可以直接寫 U0000 UFFFF (U后跟著的是十六進(jìn)制的數(shù))
【特殊的字符】 : 轉(zhuǎn)義字符***
3.1 測試代碼
char c1 = 'a';
char c2 = '國';
char c3 = '\u0065'; // 十六進(jìn)制 65 對應(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 運行結(jié)果
c1 = a ; (int)c1 = 97
c2 = 國 ; (int)c2 = 22269
c3 = e
四、字符串的比較
【注意】 字符串String 不屬于基本數(shù)據(jù)類型!
此處的比較主要是體會一下值 的比較和對象地址的比較
4.1 測試代碼
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 對象的比較
System.out.println("s3 是否與 s4 相等 ? : "+(s3 == s4)); // true 值的比較
4.2 運行結(jié)果
s1 是否與 s2 相等 ? : false
s3 是否與 s4 相等 ? : true
到此這篇關(guān)于Java基礎(chǔ)之詳解基本數(shù)據(jù)類型的使用的文章就介紹到這了,更多相關(guān)Java基本數(shù)據(jù)類型 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入探究TimSort對歸并排序算法的優(yōu)化及Java實現(xiàn)
這篇文章主要介紹了TimSort歸并排序的優(yōu)化及Java實現(xiàn),TimSort 是一個歸并排序做了大量優(yōu)化的版本,需要的朋友可以參考下2016-05-05
Java全面細(xì)致講解Cookie與Session及kaptcha驗證碼的使用
web開發(fā)階段我們主要是瀏覽器和服務(wù)器之間來進(jìn)行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進(jìn)行交流一樣,但是對于機器來說,在一次請求之間只是會攜帶著本次請求的數(shù)據(jù)的,但是可能多次請求之間是會有聯(lián)系的,所以提供了會話機制2022-06-06
一篇文章總結(jié)Java虛擬機內(nèi)存區(qū)域模型
這篇文章主要介紹了一篇文章總結(jié)Java虛擬機內(nèi)存區(qū)域模型,本篇文章主要來總結(jié)一下Java虛擬機內(nèi)存的各個區(qū)域,以及這些區(qū)域的作用、服務(wù)對象以及其中可能產(chǎn)生的問題,作為大家的面試寶典。,需要的朋友可以參考下2019-06-06

