天天看點

資料類型的拓展以及面試題

## 資料類型擴充

#### 進制

* 二進制 0b 開頭

* 十進制

* 八進制 0 開頭

* 十六進制 0x 開頭

```java

public class Demo01 {

public static void main(String[] args) {

//整數拓展 進制 二進制(0b開頭) 十進制 八進制(0開頭) 十六進制(0x開頭)

int i=10;

int i2=010;//八進制0

int i3=0x10;//十六進制0x //0~9 A~F(它們分别表示十進制數10~15)

System.out.println(i);

System.out.println(i2);

System.out.println(i3);

System.out.println("===============================");

//==================================================

//浮點數拓展(小數的意思)

//BigDecimal 數學工具類(如果需要計算,而且不能讓它有誤差就使用這個類)

//================================================

//float 美[floʊt] 浮點數表現的字長是有限的,也是離散的,舍入誤差,大約,接近但不等于

//double 美[ˈdʌbl]

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

//少去使用浮點數進行比較

float f =0.1f; //0.1

double d =1.0/10; //0.1

System.out.println(f==d); //輸出false 美[fɔːls]

System.out.println(f);

System.out.println(d);

float d1=2313131313131313131313f;

float d2=d1+1;

System.out.println(d1==d2); //輸出true 美[truː]

//===============================================

//字元拓展

//=============================================

char c1='a';

char c2='中';

//我們通過單引号來表示字元常量

System.out.println(c1);

System.out.println((int)c1);//裡面加上一個(int),意思就是強制轉換的意思,不是所有東西都可以強制轉換,但是這裡是可以的

System.out.println(c2);

System.out.println((int)c2);

//強制轉換可以把字元轉換成數字,所有的字元本質還是數字

//char類型會涉及到一個編碼問題

// Unicode 編碼表:97=a 65=A (本質上還是數字)

// 2位元組 65536字元 Excel最長有2的16次方=65536

//U0000 UFFFF

char c3='\u0061';

System.out.println(c3);//a

//轉義字元(轉義字元它有特殊的意思)

// \t 制表符

// \n 換行

// 轉義字元有非常的多,可以自己去查詢一下

System.out.println("Hello\tWorld");

System.out.println("Hello\nWorld");

String sa = new String("Hello World");

String sb=new String("Hello World");

System.out.println(sa==sb);

String sc = "Hello World";

String sd="Hello World";

System.out.println(sc==sd);

//等我們學到對象的時候,我們就從記憶體分析

//布爾值擴充

boolean flag=true;

if (flag==true){} //新手

if (flag){} //老手

//Less is More! 代碼要精簡易讀 ,更少的就是更多的。

}

```