第11章 类型转换
java虚拟机包括许多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶端获得。java虚拟机从栈顶端弹出一个值,对它进行转换, 然后再把转换结果压入栈。
int、float、long和double相互转换操作码:
int类型转换为比int类型占据更小空间的数据类型:byte、char、short。
float转换为byte需要两个步骤:首先float必须通过f2i转换为int类型,然后再通过i2b指令转换为byte类型。
不存在把byte、char、short转换为int的指令,因为任何byte、char、short类型值压入栈的时候,就已经有效地被转换为int类型值。从数组或堆中的对象中接受byte、char、short类型值的指令和把这些值压入栈的指令都会把它们转换为int类型值。
涉及byte、char、short类型的运算操作首先会把它们转换为int类型,然后对int类型值进行运算,最后得到int类型的结果。如果需要得到相应更小类型的结果,必须将这个int结果显示转换为对应的类型。
class ArithmeticExample { static byte addMethod() { byte a = 1; byte b = 1; //编译错误:无法把int结果赋值给byte类型 b = a + b; return b; } //正确的做法 static byte addMethodCorrect() { byte a = 1; byte b = 1; b = (byte) (a + b); //或者使用复合运算符: b += a; return b; } }
java虚拟机通过截短和带符号扩展的方法将int、long类型转换为byte、short和int类型。
相关推荐
Java虚拟机(JVM)是运行Java字节码的虚拟环境,它位于操作系统之上,硬件之下,提供了一层软件抽象,使得Java程序可以在多种平台上运行而无需重新编译。JVM的核心功能包括内存管理、垃圾收集、安全性和平台独立性。...
### 深入理解Java虚拟机(JVM)的关键知识点 #### 一、Java与Java虚拟机的关系 Java语言的设计者们为了使Java程序能够跨平台运行,引入了一个概念——Java虚拟机(JVM)。简单来说,Java源代码在编译成`.class`...
### 深入Java虚拟机JVM类加载学习笔记 #### 一、Classloader机制解析 在Java虚拟机(JVM)中,类加载器(ClassLoader)是负责将类的`.class`文件加载到内存中的重要组件。理解类加载器的工作原理对于深入掌握JVM以及...
除了上述提到的基础知识点外,《深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)》这本书籍还深入探讨了JVM的性能调优、并发编程、以及各种高级特性的具体应用。比如,对于性能调优,书中讲解了如何根据不同的...
**JVM学习笔记(Java虚拟机)** Java虚拟机(JVM)是Java语言的核心组成部分,它是Java程序运行的平台,负责解释和执行字节码。深入理解JVM对于优化Java应用程序性能至关重要。本笔记将从以下几个方面详细介绍JVM:...
首先,在Python语言基础方面,笔记涵盖了虚拟机、类型与对象、名字空间、内存管理、编译和执行等基础知识。虚拟机概念是指Python程序是在虚拟机环境中运行的,这使得Python具备了跨平台的特性。类型与对象部分则解释...
在这里,你选择了NAT模式,这意味着虚拟机将通过主机的网络接口连接到外部网络,而主机则负责地址转换。这样设置后,虚拟机可以访问互联网,但外部网络无法直接访问虚拟机。 接下来,你可以接受默认的硬盘配置,...
Java虚拟机(JVM)是Java程序的核心组成部分,它负责执行字节码并管理程序运行时的内存。本文主要探讨JVM的类加载机制,包括类加载、连接、初始化等关键过程,以及类的主动使用和被动使用的情况。 首先,我们要理解...
《深入理解Java虚拟机》是Java开发者们深入探讨Java运行机制的经典之作,作者周志明以其深入浅出的讲解方式,揭示了Java虚拟机(JVM)的工作原理。本资源包含该书第三版的源码分析及学习笔记,旨在帮助读者更透彻地...
2. **面向对象编程**:深入讲解Java的面向对象特性,包括类、对象、封装、继承、多态等概念。这部分内容是Java的核心,有助于理解如何构建可维护和可扩展的软件系统。 3. **集合框架**:详细解释ArrayList、...
Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...
这份笔记特别适合那些已有C或C++背景的学习者,因为它们之间有很多共通之处,能够帮助读者快速过渡到Java的世界。 在Java编程语言中,首要的概念是"一切都是对象"。Java是一种面向对象的编程语言,它强调类和对象的...
最后,JVM(Java虚拟机)原理是Java程序员必须掌握的知识,笔记会讲解类加载机制、内存模型、垃圾收集器以及性能优化策略。理解JVM的工作方式有助于写出更高效、更稳定的代码。 综上所述,《韩顺平Java笔记》是一份...
### 逐步深入的Java学习笔记知识点总结 #### 一、Java环境配置 1. **JAVA_HOME**: 配置JDK的目录。这是Java环境的基本配置之一,用于指示系统JDK安装的位置。 - **Linux系统**: ```bash JAVA_HOME=/opt/jdk1.5.0...
这本书的作者鼓励读者结合其他深入源码分析的书籍,比如《蟒原——Python发现之旅》,以获取更全面的知识。 本书的示例代码主要在IPython和CPython 2.7环境中编写,考虑到不同环境和版本间的差异,书中可能会省略...
JAVA学习笔记涵盖了从开发环境配置到基础概念的深入讲解,主要知识点包括: 1. **JAVA开发环境**:Eclipse是一款广泛使用的JAVA集成开发环境(IDE),对于初学者来说,需要下载并配置它来编写和运行JAVA程序。配置...