码迷,mamicode.com
首页 > 其他好文 > 详细

类型转换

时间:2020-07-04 00:57:09      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:自动   之间   string   lock   load   print   var   tab   long   

类型转换

由于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

 

类型转换

标签:自动   之间   string   lock   load   print   var   tab   long   

原文地址:https://www.cnblogs.com/helloxiaolu/p/13233447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!