什么是JAVA中的强制类型转换

简介: 记录JAVA中的强制类型转换

@[TOC]

0 写在前面

在必要的时候,int类型会自动转变为double类型,但是另一方面,业务逻辑上有时候需要double类型转变为int。
在 Java 中,允许进行这种数值之间的类型转换,当然有可能会丢失一些信息。这种可能损失信息的转换要通过强制类型转换 (cast)来完成。

1 强制类型转换

格式
`(目标类型) 数值/变量;
举例:

    double x = 5.98;
    int y = (int) x;//y的值为5

结合数学函数的舍入运算:

    double x = 5.98;
    int y = (int) Math.round(x);//y的值为6

因为存在信息丢失的可能性,是在编译时不可确定的,所以使用显式的强制类型转换。

2 写在末尾

如果试图将一个数值从一种类型强制转换为另一种类型,而又超出了目标类型为表示范围,结果就会截断成一个完全不同的值。例如,(byte) 300的实际值为44。所以还是需要查好目标类型可以储存的范围。

相关文章
|
5月前
|
存储 Java
Java入门——数据类型、自动类型转换、强制类型转换
Java入门——数据类型、自动类型转换、强制类型转换
33 2
|
6月前
|
存储 安全 Java
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
47 6
|
2月前
|
Java
Java强制类型转换需要注意的点
在 Java 中,强制类型转换(显式类型转换)用于将一种数据类型转换为另一种。然而,这一过程需谨慎处理以避免以下问题:数据丢失,尤其是在从大范围类型转换到小范围类型时;类型不兼容,如 `String` 无法直接转换为 `int`;对象类型转换时应确认实际类型与目标类型兼容,可借助 `instanceof` 运算符;处理基本类型与包装类之间的自动装箱和拆箱时需注意 `null` 值;浮点数转整数时会截断小数部分;字符转整数则得到 Unicode 值。充分理解这些注意事项有助于避免运行时错误和数据不一致。
|
6月前
|
Java 程序员
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
|
6月前
|
Java 程序员
Java中的强制类型转换(Explicit Type Casting)
Java中的强制类型转换(Explicit Type Casting)
138 0
|
Java
JAVA强制类型转换
JAVA强制类型转换
77 0
|
Java
Java强制类型转换异常
Java强制类型转换异常
316 0
|
存储 Java
java:int强制类型转换成byte
int 在java中是32位, byte是8位 原码:就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值 反码:在原码的基础上,正数反码就是他本身,负数除符号位之外全部按位取反 补码:正数的补码就是自己本身, 负数的补码是在自身反码的基础上加1
java:int强制类型转换成byte
|
Java
java.lang.ClassCastException(java强制类型转换异常)
ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示: 下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
1992 0
|
Java
java多态和强制类型转换
子类可以赋值给超类,称之为向上转型,这个是自动的。   超类不可以赋值给子类,这个是向下转型,需要我们手动实现。   赋值给超类的子类引用在运行期间将表现出不同的特性,这就是多态。   小类型    可转换为   大类型   大类型   转小类型需要   强制转换   对于存在继承关系的强制类型转换: 子类转换为父类属于向上塑型,可以直接转换 父类转换为子类属于向下塑型,需要强制类型转换,但是不一定成功。
1490 0