《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类型。

相关文章
|
2月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
15天前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
30 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
8天前
|
存储 安全 Java
Java 数据结构类型总结
在 Java 中,常用的数据结构包括基础数据结构(如数组和字符串)、集合框架(如 Set、List 和 Map 接口的多种实现)、特殊数据结构(如栈、队列和双端队列)、链表(单链表、双链表和循环链表)以及图和树等。这些数据结构各有特点和适用场景,选择时需考虑性能、内存和操作需求。集合框架提供了丰富的接口和类,便于处理对象集合。
|
27天前
|
Java 编译器 程序员
Java自动类型转换的妙用
Java中的自动类型转换(隐式类型转换)是指编译器在无需显式指定的情况下自动将一种数据类型转换为另一种类型。这一特性简化了代码,提高了可读性,并在多态中发挥了重要作用。例如,在数学运算时,较小类型会自动转换为较大类型以避免精度损失;在面向对象编程中,子类对象可以自动转换为父类引用,增强了代码的灵活性和兼容性。此外,它还使得数组和集合的使用更加方便,整体上让编程更加优雅和高效。
|
15天前
|
Java
java基础(10)数据类型中的整数类型
Java中的整数类型包括byte、short、int和long。整数字面值默认为int类型,加L表示long类型。整数字面值可以是十进制、八进制(0开头)或十六进制(0x开头)。小容量类型(如int)可自动转换为大容量类型(如long),但大容量转小容量需强制转换,可能导致精度损失。
27 2
|
18天前
|
监控 算法 Java
深入理解Java中的垃圾回收机制在Java编程中,垃圾回收(Garbage Collection, GC)是一个核心概念,它自动管理内存,帮助开发者避免内存泄漏和溢出问题。本文将探讨Java中的垃圾回收机制,包括其基本原理、不同类型的垃圾收集器以及如何调优垃圾回收性能。通过深入浅出的方式,让读者对Java的垃圾回收有一个全面的认识。
本文详细介绍了Java中的垃圾回收机制,从基本原理到不同类型垃圾收集器的工作原理,再到实际调优策略。通过通俗易懂的语言和条理清晰的解释,帮助读者更好地理解和应用Java的垃圾回收技术,从而编写出更高效、稳定的Java应用程序。
|
1月前
|
Java 测试技术 程序员
Java零基础(23) - Java赋值运算符,了解一下!
【9月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
45 11
|
2月前
|
Java
【Java基础面试五】、 int类型的数据范围是多少?
这篇文章回答了Java中`int`类型数据的范围是-2^31到2^31-1,并提供了其他基本数据类型的内存占用和数值范围信息。
【Java基础面试五】、 int类型的数据范围是多少?
|
2月前
|
存储 Java 程序员
Java中对象几种类型的内存分配(JVM对象储存机制)
Java中对象几种类型的内存分配(JVM对象储存机制)
66 5
Java中对象几种类型的内存分配(JVM对象储存机制)
|
1月前
|
自然语言处理 算法 Java
Java如何判断两句话的相似度类型MySQL的match
【9月更文挑战第1天】Java如何判断两句话的相似度类型MySQL的match
21 2