类型转换

类型转换

由于Java时强类型语言,所有要进行有些运算的时候,需要用到类型转换。

 

------------------------------------------------------------>

byte,short,char-> int -> long -> float -> double

 

         int i =128;
         byte b = (byte) i;//内存溢出
 
         //强制转换 (类型)变量名     高--低
         //自动转换       低--高
 
         System.out.println(i);  //128
         System.out.println(b);  //-128

而当换成double时,则不会溢出

 

         int i =128;
  double b = i; //低-->高 自动转换
 
         System.out.println(i);  //128
         System.out.println(b);  //128.0

 

注意点:

 1.   不能对布尔值进行转换
 2.   不能把对象类型转换为不相干的类型
 3.   在把高容量转换到低容量的时候,强制转换
 4.   转换的时候可能存在内存溢出,或者精度问题!

 

精度问题

 System.out.println((int)23.7);  //23
 System.out.println((int)-45.89f);   //-45

 

char转换成int类型

 char c = 'a';
 int d = c+1;
 System.out.println(d);  //98
 System.out.println((char)d);    //b

 

补充

 //操作比较大的数的时候,注意溢出问题
 //JDK7新特性,数字之间可以用下划线分割
 int money = 10_0000_0000;
 System.out.println(money);
 int years = 20;
 int total = money*years;    //-1474836480,计算的时候溢出了
 long total2 = money*years;
 System.out.println(total2); //默认是int,转换之前已经存在问题了?
 
 long total3 = money*((long)years); //先把一个数转换为long
 System.out.println(total3);
 
 //L     l   在定义long时多用大写L少用l

 

posted @ 2020-07-04 00:46  小卢传  阅读(138)  评论(0编辑  收藏  举报