数据类型转换和强制转换

 

 

自动类型转换

指的是容量小的数据类型可以自动转换为容量大(占多少空间)的数据类型。如下图中,黑色实线表示数据无丢失的自动类型转换,虚线表示在转换中可能有精度丢失。

 

特例: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;

 

posted @   我就一水  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示