《Java 7程序设计入门经典》一2.12 赋值中的类型转换

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第2章,第2.12节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.12 赋值中的类型转换

在编程中,常常需要将一种类型的变量赋值给另一种类型的变量。例如,要把int值赋给float变量,如:
image

当在一个赋值语句中有兼容的类型时,运算符右边的值自动转换为左边的类型。于是,在上面的代码片段中,变量i的值转换为float类型,然后赋给变量f。但是,由于Java有严格的类型检查,不是所有的类型都互相兼容,因此,不是所有的隐式转换都允许发生。例如,boolean类型与int类型就不兼容。
当把一种类型的数据赋给另一种类型的变量时,在以下情况下会发生自动类型转换(automatic type conversion):
两种类型兼容。
目标类型比源类型范围更大。
当满足这两个条件时,发生类型扩张的转换。例如,对于所有有效的byte类型的值而言,int类型总是足够大的,可以保存。而且,int类型和byte类型都是整数类型。所以,发生从byte类型到int类型的自动转换。
对于扩大范围的转换,数值型数据(包括整数类型和浮点数类型)都互相兼容。例如,因为从long类型到double类型是扩大范围的转换,其能自动执行,所以下面的程序完全可以运行:
image

尽管从类型long到类型double有自动转换,但是从类型double到类型long没有自动转换,因为这并不是扩大范围的转换。于是,上面的程序若改成下面的版本,就无效:
image
image

没有从数值类型到char类型或boolean类型的自动转换。char类型与boolean类型也不互相兼容。但是,可以把一个整数字面量赋给char类型。

相关文章
|
15天前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
|
2月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
125 63
|
1月前
|
存储 Java 开发者
Java 中 Set 类型的使用方法
【10月更文挑战第30天】Java中的`Set`类型提供了丰富的操作方法来处理不重复的元素集合,开发者可以根据具体的需求选择合适的`Set`实现类,并灵活运用各种方法来实现对集合的操作和处理。
|
1月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
60 2
|
2月前
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
|
2月前
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
241 5
|
2月前
|
设计模式 Java
Java“不能转换的类型”解决
在Java编程中,“不能转换的类型”错误通常出现在尝试将一个对象强制转换为不兼容的类型时。解决此问题的方法包括确保类型间存在继承关系、使用泛型或适当的设计模式来避免不安全的类型转换。
255 7
|
2月前
|
Java
Java 中锁的主要类型
【10月更文挑战第10天】
|
2月前
|
安全 Java
Java“不兼容类型” 错误怎么查找解决
在 Java 中遇到“不兼容类型”错误时,首先理解错误信息,它表明试图将一种类型赋给不兼容的类型。检查代码中类型不匹配的赋值、方法调用参数类型不匹配、表达式类型不兼容及泛型类型不匹配等问题。解决方法包括进行类型转换、修改代码逻辑、检查方法参数和返回类型以及处理泛型类型不匹配。通过这些步骤,可以有效解决“不兼容类型”错误,确保代码类型兼容性良好。
439 9
|
2月前
|
Java 程序员 编译器
Java中的异常类型
Java中的异常类型
24 3
下一篇
DataWorks