天天看点

数据类型的拓展以及面试题

## 数据类型扩展

#### 进制

* 二进制 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! 代码要精简易读 ,更少的就是更多的。

}

```