数据类型拓展
java是强类型语言,有些运算需要类型转换。
低------------------------------------------------------高
byte–short–char–int–long–float—double
输出语句后跟结果
public class 数据类型拓展 {
public static void main(String[] args) {
//整数: 进制 二进制0b 八进制0 十进制 十六进制0x
int i=10;
int i1=010;//八进制
int i2=0x10;//十六进制
System.out.println(i);//10
System.out.println(i1);//8
System.out.println(i2);//16
System.out.println("=======================================================================================================================================");
//=========================================================================================================================================
//浮点数 银行业务咋表示钱? 钱
//BigDecimal 数学工具类
float f=0.1f;//0.1 有限 离散 舍入误差 大约 接近但不等于
double d=1.0/10;//0.1
System.out.println(f==d);//false
System.out.println(f);//0.1
System.out.println(d);//0.1
float d1=2662646631f;
float d2=d1+1;
System.out.println(d1==d2);//true 浮点不能进行比较
System.out.println("=======================================================================================================================================");
//=========================================================================================================================================
//字符 Unicode(UFFFF) 0~65536 97=a 65=A
char c1='A';
char c2='中';
System.out.println(c1);//A
System.out.println((int)c1);//65 强制转换
System.out.println(c2);//中
System.out.println((int)c2);//20013 强制转换
System.out.println("=======================================================================================================================================");
//=======================================================================================================================================
char c3='\u0061';
//转义字符(具有特殊意思)
// \t(回车) \n(回车)
System.out.println("5\t5");//5 5
}
}
public class Demo01 {
public static void main(String[] args) {
int i=128;
byte b=(byte)i;
System.out.println(i);//128
System.out.println(b);//-128 内存溢出
//强制转换 (类型)变量名 高到低
//自动转换 低到高
/*
1.不能转换布尔型
2.不能转换不相干类型
3.高容量到底容量强制转换
4.转换可能溢出,或者出现精度问题x4
*/
System.out.println((int)23.7);//23
System.out.println((int)-45.56f);//-45
int money=10_0000_0000;//数字键可以下划线分割
int year=20;
int total=money*year;
System.out.println(total);//-1474836480 溢出
long total2=money*year;
long total3=money*((long)year);
System.out.println(total2);//-1474836480 默认int
System.out.println(total3);//20000000000 先转换一个为long
}
}