Demo05 数据类型拓展

public class Demo05 {
public static void main(String[] args) {
//强制类型转换 高>低
int i=128;//运算中,不同类型的数据先转化为同一类型,然后进行运算,例如:int中有个i=128 转化为byte的类型 byte d=(byte)i
byte d=(byte)i;//byte d=(byte)i;中的“byte”就是强制转换与开头的数据类型相同 低到高类型转换是强制转换,变量名前需要加转换类型名
System.out.println(i);
System.out.println(d);
/*类型转换 容量低到高的递增图
低==============================高
byte<short<char<int<long<float<double
当内存溢出的时候会代码错误。
*/
//自动类型转换 低>高
int a=128; //将int128转化为double小数运算=128.0
double c=a;//低>高 不用在变量名前书写类型名
System.out.println(a);
System.out.println(c);
/*注意点:1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候需要在变量名前加上类型名例如:(类型)变量名
4.转换的时候可能存在内存溢出或者精度错误问题!


*/
System.out.println("==============================");
System.out.println((int)24.9);//将24.9转换为int(整数) 24
System.out.println((int)-45.89f);//将-45.89转换为int(整数) -45
//结果:24 -45 原因:转换过程中具有精度问题!
char q='a';
int w=q+1;
System.out.println(q);//输出char q (将a转换为数字97)
System.out.println(w);//输出int w (a的数字+1)
System.out.println((char)w);//将int转换为char 将98转换为b a=97 b=98
//溢出问题经典条例
int mony=10_0000_0000;
int yes=20;
long t=yes*((long)mony);
System.out.println(t);

/*
int mony=10_0000_0000;
int yes=20;
int t=mony*yes;
System.out.println(t); 会出现溢出问题,不信可以输出试试看
====================================================
int mony=10_0000_0000;
int yes=20;
long t=mony*yes;
System.out.println(t); 会出现溢出问题,不信可以输出试试看
====================================================
int mony=10_0000_0000;
int yes=20;
long t=yes*((long)mony);
System.out.println(t); 正常输出模式
*/
//Java基础04 数据类型拓展及面试题讲解

}
}
posted @ 2022-09-28 23:22  陈焕新  阅读(27)  评论(0)    收藏  举报