类型转换

public class 类型转换 {
/*由于Java是强类型语言,所以进行某些运算时需要进行类型转换
类型转换以容量划分从低到高分别为(小数优先级大于整数,因此float与double在最后):
*byte,short,char,int,long,float,double*
本质都是数字,因此非数字会被转化为Unicode数字
在运算时,不同类型数据先转化为同一类型,再运算
*/
public static void main(String[] args) {
/*当输入
int a = 128;
byte b = a;
时会报错,因为byte的值为-128~127,因此byte后面的赋值会被检测为int类型,因此需要强制转换
*/
int a = 128;
byte b = (byte)a;
System.out.println(a);
System.out.println(b);
System.out.println("============================================");
//低转高自动转换,高转低需要强制转换,即要转换的变量名前面加(类型)
//此处可得int的a值为128,而byte的b输出值为-128,是因为内存溢出,应避免此情况
int c = 128;
double d = c;
System.out.println(c);
System.out.println(d);
System.out.println("============================================");
//注意精度问题
int e = 10;
double f = e;
float g = 1.001f;
int h = (int)g;
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println("============================================");
/*注:
不能把对象类型转化为不相干的类型
大容量转低容量需要强制转换
转换时注意内存溢出,以及精度问题
*/
//一个特殊的输出
System.out.println((int)22.1f);
System.out.println("============================================");
//非数字计算会先转化成Unicode数字,再计算
char i = '中';//注意字符外应为'',而不是”“
int j = a;
float k =2.005f;
int l = (int) (i+j+k);//由于有float存在,所以需要先转化为int,否则报错
System.out.println(i);
System.out.println(j);
System.out.println(k);
System.out.println(l);
System.out.println((char)20143);//中文”中“后面”a“与”2“位是”亯(xiang3)“ 记住哦,划重点! Σ( ° △ °|||)︴ Unicode真牛x
System.out.println("============================================");
//溢出问题
int 一天摸鱼 = 10_0000_0000;//JKD7新特性,数字间可以用下划线分割
int 年份 = 20;
long 摸鱼总量 = 一天摸鱼*年份;
System.out.println(摸鱼总量);
System.out.println("============================================");
/*可得值-1474836480
很显然我是在摸鱼而不是生鱼,(更何况生不出那么多)
这是由于int的取值范围为-2147483648~2147483647,而二百亿超出了int范围,造成内存溢出
即使最后变量为long,但先计算了int变量形式,已经溢出,因此转化成long仍然错误
底层原因:此处为先计算,后赋值
*/
//解决方法,先赋值,后计算
long 只要摸不死就往死里摸 = 一天摸鱼*((long)年份);
System.out.println("先赋值,后计算");
System.out.println(只要摸不死就往死里摸);//注意命名给变量命名时中间不要加标点,除非你愿意看见一堆看不懂的红色字符刷屏
}
}
上一篇:常用的utils


下一篇:手写数字识别 ----在已经训练好的数据上根据28*28的图片获取识别概率(基于Tensorflow,Python)