Java中数据类型的转换及示例代码

在编写代码时,使用合适的数据类型,可以更好的优化内存和程序性能

Java中,有两种数据类型的转换,分别是隐式数据类型转换和显示数据类型转换

隐式数据类型转换

隐式数据类型转换又称为自动类型转换,是指较小的数据类型可以自动的转换为较大的数据类型,而不需要显示转换。

这种转换是由编译器自动完成的,不需要额外的代码。

隐式转换的规则:

取值范围小的与范围大的运算,小的会先提升为大的,再进行计算

byte, short, char这三种数据类型的数据在进行计算时,会先提升为int,再进行计算

可以理解为小瓶子里装的水可以装入大的瓶子里,不会发生溢出,仅仅是大瓶子没有装满而浪费空间

但是大瓶子装入小瓶子就有可能发生溢出(大瓶子只装了一点时,倒入小瓶子也不会发生溢出,所以是有可能发生溢出)

如上图所示,byte类型的变量可以装入short类型的“桶”里,但是short类型的变量装入byte类型的“桶”里时就有可能发生溢出,从而导致数据丢失

复制代码
int i = 100;
long l = i; // 隐式转换,int 转换为 long

显示数据类型转换

显示数据类型转换又称为强制类型转换,是指程序员需要再代码中明确指定将一个数据类型转换为另一个数据类型,通常发生在较大数据类型转换为较小数据类型时

强制类型转换的格式:

目标数据类型 变量名 = (目标数据类型)被强制转换的数据

需要注意的是:数据较大时,强制转换可能会发生错误

复制代码
double d = 123.456;
int i = (int) d; // 显式转换,double 转换为 int,可能会丢失小数部分
对象之间的转换

类型提升(向上转型)示例:

复制代码
// 子类对象到父类对象的转换
ParentClass parent = new ChildClass(); // 自动转换,无需显式转换代码

类型降低(向下转型)示例:

复制代码
// 父类对象到子类对象的转换
ParentClass parent = new ParentClass();
ChildClass child = (ChildClass) parent; // 显式转换,需要类型转换,可能抛出 ClassCastException
包装类与基本数据类型之间的转换

自动装箱与拆箱

复制代码
javaInteger integerObject = 5; // 自动装箱
int intValue = integerObject; // 自动拆箱

显式转换包装类到基本数据类型

复制代码
Integer integerObject = new Integer(10);
int intValue = integerObject.intValue(); // 显式调用 intValue() 方法进行转换

integerObject.intValue() 方法是 Integer 类的一个实例方法,用于将 Integer 类型的包装类对象转换回其对应的基本数据类型 int

字符串与其他类型之间的转换

字符串到基本数据类型

复制代码
javaString strInt = "123";
int intValue = Integer.parseInt(strInt); // 显式转换

Integer.parseInt() 是 Java 中 Integer 类的一个静态方法,用于将字符串解析为 int 类型的整数。

基本数据类型到字符串

复制代码
int intValue = 123;
String strInt = String.valueOf(intValue); // 显式转换

String.valueOf 是Java中 String 类的一个静态方法,它用于将任意类型的数据转换成字符串形式。

posted @   Molina  阅读(146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示