数据类型转换和强制转换
自动类型转换
指的是容量小的数据类型可以自动转换为容量大(占多少空间)的数据类型。如下图中,黑色实线表示数据无丢失的自动类型转换,虚线表示在转换中可能有精度丢失。
特例:int 可以转成short、byte、char,只要不超过要转换为的类型的表述范围
public class Test{ public static void main(String[] args){ //容量小的转换为容量大的 int a = 1234; long b = a; double h = a; // int c = b; // 会报错 char c = 97; //97是整型 byte d = 123; // 123也是整型 System.out.println(b); System.out.println(h); System.out.println(c); System.out.println(d); } }
强制类型转换
可能损失精度,语法 (type)var
public class Test{ public static void main(String[] args){ double a = 3.9415; int b = (int) a; System.out.println(b); int c = 97; char d = (char) c; System.out.println(d); //强制转换超过类型的表述范围会出现一个没有意义的数字,并不会报错 int e = 300; byte f = (byte) e; System.out.println(f); } }
类型转换的常见错误
1.操作数太大了要留意是否会溢出,尤其是整数操作时
2. L和l的问题:
(1)命名变量含有I时,用L好区分;
(2) long类型使用L,不用小写l
一种 int 乘法转 long 的方法
int salary = 2e9; // 未超过21亿的范围 int year = 20; long total = 1L * year * salary;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix