public class Demo04 { //Java是强类型语言,进行运算时需进行类型转换 //不同类型的数据要先转换成同一类型再进行运算 /*数据类型排序(从低到高): byte、short、char——>int——>long——>float——>double !!long是64,float是32,为何float比long更高? ——> 小数的优先级大于整数 */ public static void main(String[] args) { int i = 123; byte b = (byte)i; //int比byte类型优先级高,所以需要强制转换 //强制转换:(类型名)变量名 //自动转换:低类型转换为高类型不需强制转换,所以不需要加(类型名) System.out.println(i); System.out.println(b); //输出结果都是123 System.out.println("=============================="); //注意点①:强制转换时需要注意内存溢出问题,如: int i1 = 128; byte b1 = (byte)i1; System.out.println(i1); //输出结果为128 System.out.println(b1); //输出结果为-128 //因为Byte类范围时-128~127,i1的值已经超出范围,所以结果不准确 System.out.println("=============================="); //注意点②:不能对布尔值进行转换 //注意点③:不能把对象类型转换为不相干的类型 //注意点④:类型转换是可能存在精度问题,如: System.out.println((double)25); //整数类型转换为小数类型(自动转换),结果为25.0 System.out.println((int)24.99); //小数类型转换为整数类型(强制转换),结果为24 System.out.println("=============================="); char c = 'a'; int i2 = c+1; System.out.println(i2); //输出结果为98 //因为根据char涉及的Unicode编码表,'a'表示的数就是97 System.out.println((char)i2); //输出结果为b System.out.println("=============================="); //操作比较大的数时,注意溢出问题 int money = 10_0000_0000; //JKD7以上新特性,数字之间可以用下划线分割且不会输出 int years = 20; int total = money*years; System.out.println(total); //输出结果为-1474836480,超出int范围,溢出 //下面使用long类型再输出: long total2 = money*years; System.out.println(total2); //输出结果还是-1474836480 ??? //money*years计算完后默认是int类型,即在转换成long之前就已经计算完了 //正确转换方法如下: long total3 = money*((long)years); //先把一个数转化为long System.out.println(total3); //输出结果为20000000000 } }
Java学习day07
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:数组常见的方法

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Day07-压测、ssh连接容器实现
容器内部的压测、ssh 实现容器的连接、容器迁移的概念、docker 镜像、容器的命令配置文件daemon
docker bash centos -
SQL学习day5
SQL学习day5
聚合函数 窗口函数 MySQL -
Spring学习-day07
Spring管理bean的生命周期及spel
Spring 学习 -
C语言学习Day07
c语言题
C语言题目 -
python讲义学习 day07
day07
python 学习 大数据 元组