public class Hello {
public static void main(String[] args) {
/**整数扩展
* 进制
* 二进制 以0b开头
* 八进制 以0开头
* 十进制
* 十六进制 以0x开头
*/
int i = 10;
int i2 = 010; //八进制
int i3 = 0x10; //十六进制
int i4 = 0b1; //二进制
System.out.println(i); //结果 0
System.out.println(i2);//结果 8
System.out.println(i3);//结果 16
System.out.println(i4);//结果1
System.out.println("---------------分割-------------------");
/**
*===============================================================
*浮点数拓展
*===============================================================
*/
float f = 0.1f; //值是0.1
double d = 1/10; //值是0.1
System.out.println(f==d); //理论上比较时应该时相等的,但是结果返回的时false
System.out.println(f);
System.out.println(d);
float s1 = 324589289.9848f;
float s2 = s1+1;
System.out.println(s1 == s2);//返回值时true!!!
System.out.println("---------------分割-------------------");
/*
=================== 原因 ===================
1. float 表现的字长是有限的,但是有的数除出来是无限的
2. 浮点数存在一个叫舍入误差的的东西,有些浮点数无法被精确的表示,所以会存在四舍五入
3. 有些数是无限接近但不等于
=================== 结论 ===================
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
=================== 解决方法 ===================
BigDecimal 数学工具类
*/
/**
*===============================================================
*字符拓展
*===============================================================
*/
char c1 = 'a';
char c2 = '中';
char c3 = '\u0061'; //此处61代表的是十六进制,如果是十进制就是97
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);//强制类型转换
System.out.println((int)c2);//强制类型转换
System.out.println(c3);//结果为a
/*
=================== 原因 ===================
1. 所有的字符本质还是数字
2. char涉及到Unicode编码集
3. 转义字符
*/
//\t 制表符
System.out.println("hello\tjava");
//\n 换行
System.out.println("hello\njava");
//\b 去一个空格
System.out.println("hello \bjava");
//转义字符有很多,自行百度
System.out.println("---------------分割-------------------");
/**
*===============================================================
*布尔拓展
*===============================================================
*/
boolean flang = true;
if(flang = true){
System.out.println("hello java");
}
if(flang){
System.out.println("hello java");
}
System.out.println("---------------分割-------------------");
/**
* ==============少即是多==================
* 上面第一个if方法中flang = true 等于 第二个if中flang
* 因为flang已经被赋了一个布尔值,在if(中需要一个boolean值){},所以省略 = true不写
*/
}
}