数据类型扩展及面试题讲解
import java.math.BigDecimal;标签:面试题,String,int,浮点数,数据类型,System,讲解,println,out From: https://www.cnblogs.com/QK-qk/p/16704866.html
public class demo03 {
public static void main(String[] args) {
//整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i1 = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x 0~9 A~F
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
//输出结果:10 8 16
//浮点数拓展: 银行业务怎么表示钱?
//BigDecimal 数学工具类
//======================================================
//float 浮点数显示字长是有限的,最终显示会四舍五入,有舍入误差
// 只是大约,接近但不等于原数字
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较(Ctrl + D IDEA向下复制一行快捷键)
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
float d1 = 314159265354555648f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1);//强制转换
System.out.println(c2);
System.out.println((int) c2);//强制转换
//输出结果:a 97 中 20013
//所有的字符本质上还是数字
//编码 Unicode 表:(97 = a , 65 = A) 占2字节 编码范围0 ~ 65536(2的16次方)
//Unicode 表编码通常为16进制 范围 U0000~UFFFF
char c3 = '\u0061';//(0061)16 = 97
System.out.println(c3);//输出 a
//转义字符 \t 制表符(空格) \n 换行 ....
String s1 = new String("hello world");
String s2 = new String("hello world");
System.out.println(s1==s2);//false
//"=="比较地址 equals比较字符串内容
//new就是在内存开辟了一个空间,然后这个空间有地址,new了几个就有几块空间,就有几个地址,比较的是地址所以不相等
String s3 = "hello world";
String s4 = "hello world";
System.out.println(s3==s4);//true
//布尔值扩展
boolean flag = true;
if (flag==true){}//新手
if (flag){}//老手
}
}