基本数据类型
基本数据类型
-
long类型要在数字后面加个L
-
float类型要在数字后面加个F
-
整数拓展(Java面试题):进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10; int i2 = 010; //八进制0 int i3 = 0x10; //十六进制0x System.out.println(i); System.out.println(i2); System.out.println(i3); //分别输出了10,8,16
-
浮点数拓展:少用浮点数进行比较
//float 有限 离散 舍入误差 大约 接近但不等于 //最好完全使用浮点数进行比较 float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(d1 == d2); //输出了flase float d1 = 23232121323f; float d2 = d1 + 1; System.out.println(d1 == d2);//输出了true
-
字符拓展:所有的字符本质还是数字
char c3 = '\u0061'; System.out.println(c3); //输出了a
-
类型转换
//低-------------------------------------------高 byte,short,char ->int ->long -> float ->double
int i = 128; byte b = (byte) i; //强制转换 (类型)变量名 double b = i; //不会报错 //强制转换 (类型)变量名 高-->低 //自动转换 低-->高 System.out.println(i); //输出128 System.out.println(b); //输出-128,内存溢出了 System.out.println((int)23.7); //输出23,精度有问题 System.out.println((int)-45.89f); //输出-45,精度有问题
操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years; //-1474836480,计算的时候溢出了 long total2 = money*years; //-1474836480,计算的时候也会溢出了 long total3 = money*((long)years);//先把一个数转换为long System.out.println(money); //输出1000000000 System.out.println(total); //计算的结果默认是int,转换之前已经存在问题了 System.out.println(total2); //还是溢出 System.out.println(total3); //正确 //byte/short/int/long在和int一起计算的时候都会转为int
posted on 2022-10-13 15:27 Icebreaker_7 阅读(23) 评论(0) 编辑 收藏 举报