什么是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。所以还是需要查好目标类型可以储存的范围。

相关文章
|
1月前
|
存储 Java
Java入门——数据类型、自动类型转换、强制类型转换
Java入门——数据类型、自动类型转换、强制类型转换
18 2
|
2月前
|
存储 安全 Java
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
【Java开发指南 | 第三篇】Java 空行、强制类型转换及基本数据类型
32 6
|
2月前
|
Java 程序员
Java中的强制类型转换(Explicit Type Casting)
Java中的强制类型转换(Explicit Type Casting)
52 0
|
2月前
|
Java 程序员
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
|
10月前
|
Java
JAVA强制类型转换
JAVA强制类型转换
67 0
|
Java
Java强制类型转换异常
Java强制类型转换异常
293 0
|
存储 Java
java:int强制类型转换成byte
int 在java中是32位, byte是8位 原码:就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值 反码:在原码的基础上,正数反码就是他本身,负数除符号位之外全部按位取反 补码:正数的补码就是自己本身, 负数的补码是在自身反码的基础上加1
java:int强制类型转换成byte
|
Java
java.lang.ClassCastException(java强制类型转换异常)
ClassCastException,从字面上看,是类抛出异常,即是类型转换错误,通常是进行强制类型转换时候出的错误。如下图所示: 下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
1931 0
|
Java
java多态和强制类型转换
子类可以赋值给超类,称之为向上转型,这个是自动的。   超类不可以赋值给子类,这个是向下转型,需要我们手动实现。   赋值给超类的子类引用在运行期间将表现出不同的特性,这就是多态。   小类型    可转换为   大类型   大类型   转小类型需要   强制转换   对于存在继承关系的强制类型转换: 子类转换为父类属于向上塑型,可以直接转换 父类转换为子类属于向下塑型,需要强制类型转换,但是不一定成功。
1457 0
|
JavaScript Java
《Java 7程序设计入门经典》一2.13 使用强制类型转换
本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.13节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1253 0