資料型別的擴充套件

2021-10-10 14:10:08 字數 2392 閱讀 8265

​ #進製

進製2進製

10進製

8進製16進製制

表示方法0b0

0x例項

0b10

10010

0x10結果2

10816

//float    有限   離散   捨入誤差   大約接近,但不等於

//double

//最好完全使用浮點數進行比較

//最好完全使用浮點數進行比較

//最好完全使用浮點數進行比較

例項1:

float f =

0.1f

;double d =

1.0/10;

system.out.

println

(f==d)

;//判斷f與d是否一樣

system.out.

println

(f);

system.out.

println

(d);

結果:false

0.10.1

結論:雖然f與d的結果均為0.1但大小並不相同 (因為會有捨入的情況)

例項2:

float d1 =

2313313131313f

;float d2 =d1+1;

system.out.

println

(d1)

; system.out.

println

(d2)

; system.out.

println

(d1==d2)

;結果:

2.31331306e12

2.31331306e12

true

結論:數值過大,導致捨入並不明顯

因此,在涉及到金融系列的問題,如銀行業務時,float與double型別並不適用。 此時會用到bigdecimal類 即數學工具類

例項1:

char c1 =

'a';

char c2 =

'中';

system.out.

println

(c1)

; system.out.

println((

int) c1)

;//強制轉換

system.out.

println

(c2)

; system.out.

println((

int) c2)

;//強制轉換

結果:a97中

20013

結論:所有的字元本質還是數字

採用unicode 編碼表 為2個位元組即2的16次方 =

65536

範圍 u0000--

--uffff

轉義字元

\t 製表符

\n 換行

//......

例項2:

string sa =

newstring

("hello world");

string sb =

newstring

("hello world");

system.out.

println

(sa)

; system.out.

println

(sb)

; system.out.

println

(sa==sb)

;結果:

hello world

hello world

false

string sc =

"hello world"

; string sd =

"hello world"

; system.out.

println

(sc)

; system.out.

println

(sd)

; system.out.

println

(sc==sd)

;結果:

hello world

hello world

true

結論:此結論需從記憶體進行分析,我暫時也不明白

boolean flag =true;

if (flag==true){} 與 if (flag){}

**是一樣的

dede擴充套件資料型別 資料型別擴充套件

資料型別擴充套件 整數擴充套件 整數的進製有二進位制 0b 八進位制 0 十進位制,十六進製制 0x 例 int num1 10 int num2 0b10 int num3 010 int num4 0x10 system.out.println num1 system.out.println n...

資料型別擴充套件

進製 二進位制0b 十進位制 八進位制0 十六進製制0x int i1 0 int i2 0b10 二進位制 int i3 010 八進位制 int i4 0x10 十六進製制 system.out.println i1 0 system.out.println i2 2 system.out.pr...

資料型別擴充套件

浮點型 float 與 double 特點 有限 離散 捨入誤差 大約 接近但不等於 float a 0.1f double b 1.0 10 system.out.println f d false float d1 12354554212f float d2 d1 1 system.out.pr...