`
uule
  • 浏览: 6351630 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

深入解析JAVA中的装箱与拆箱

 
阅读更多

地址:

https://www.cnblogs.com/dolphin0520/p/3780005.html

 

拆箱装箱的原理

Integer i = 10;  //装箱
int n = i;       //拆箱

 

装箱过程是通过调用包装器的valueOf方法(譬如Integer的valueOf(int))实现的,而拆箱过程是通过调用包装器的 xxxValue方法(譬如Integer的intValue())实现的

 

Integer、Short、Byte、Character、Long这几个类的valueOf方法的实现是类似的。

  值在-128到127之间用缓存,之外新建对象。

Double、Float的valueOf方法的实现是类似的。

  一直新建对象。

 

为什么Double类的valueOf方法会采用与Integer类的valueOf方法不同的实现。很简单:在某个范围内的整型数值的个数是有限的,而浮点数却不是。

分享到:
评论

相关推荐

    Java自动装箱与拆箱深度解析:原理、应用与性能考量

    自动装箱和拆箱是Java语言中的重要特性,它们简化了基本数据类型与包装类之间的转换过程。然而,这两个机制也带来了一定的性能影响。为了编写更高效、更可维护的Java代码,开发者需要了解自动装箱和拆箱的工作原理、...

    《深入理解java虚拟机》自动装箱拆箱实例.doc

    ### 自动装箱与拆箱概念 在Java中,自动装箱是指将基本数据类型自动转换为对应的包装类...通过以上分析,我们可以更深入地理解Java中的自动装箱、拆箱及其对对象比较的影响,这对于编写高效且可读性强的代码非常重要。

    Java JDK 5.0学习笔记

    3. **自动装箱与拆箱(Autoboxing/Unboxing)**:Java 5.0引入了自动装箱和拆箱机制,使得基础数据类型和对应的包装类之间可以无缝转换。例如,一个整数可以直接赋值给Integer对象,反之亦然,这简化了代码并减少了...

    【电子版】校招面试题库(附答案与解析)java篇.zip

    这份压缩包包含了一份详细的PDF文档,全面覆盖了Java编程语言在校园招聘面试中的常见问题、答案以及深入解析,旨在帮助应聘者在面试中展现出扎实的技术功底。 一、Java基础篇 1. Java发展历程:从Sun Microsystems...

    深入理解Java虚拟机++JVM高级特性与最佳实践1

    书中还探讨了Java编译与代码优化,如即时编译(JIT)、逃逸分析、自动装箱拆箱等特性,以及如何通过HotSpot的即时编译器提升程序性能。这部分内容对于提升Java程序的运行效率至关重要。 最后,书本深入剖析了Java...

    Java面试题全集.pdf

    文件中涵盖了多个与Java编程和面试相关的知识点,包括但不限于方法重载与重写、访问控制关键字、基本数据类型、浮点数精度问题、自动装箱和拆箱、整型缓存机制等。以下是根据文件内容整理出的详细知识点: 1. 方法...

    Professional.Java.JDK.6.Edition

    《Professional Java JDK 6 Edition》是一本专门为Java开发者和爱好者准备的专业指南,旨在深入解析Java Development Kit(JDK)6的各个方面。这本书由资深的Java专家编写,详细介绍了JDK 6的新特性和改进,帮助读者...

    JAVA SE6.0 API文档

    3. **自动装箱与拆箱**:Java 6实现了基本类型与其对应的包装类之间的自动转换。这意味着你可以直接将`int`赋值给`Integer`,反之亦然,无需手动进行装箱或拆箱操作。 4. **动态代理**:Java 6通过`java.lang....

    java最全面试宝典.docx

    本篇将详细解析Java的专业技能,涵盖面试中可能遇到的核心知识点。 首先,Java的跨平台原理是基于Java虚拟机(JVM)的概念。JVM为不同的操作系统提供了兼容层,使得Java程序无需针对特定操作系统进行修改就能运行。...

    Java五道输出易错题解析(进来挑战下).pdf

    Java编程语言中包含...对于Java程序员来说,熟悉Unicode字符、类加载机制、装箱拆箱以及异常处理等概念至关重要。在实际开发中,时刻保持警惕,对代码进行详尽的测试和审查,能够帮助我们写出更加健壮和可靠的程序。

    JAVA 5.0 TIGER程序高手秘笈.rar

    3. **Autoboxing和Unboxing(自动装箱与拆箱)**:Java 5.0自动实现了基本类型与对应的包装类之间的转换。当基本类型与对象之间需要进行操作时,系统会自动进行装箱和拆箱,简化了代码,减少了程序员的工作负担。 4...

    深入解析Java的包(package)

    在Java 1.5及以后的版本中,为了简化编程,引入了自动装箱和拆箱,使得基本类型和包装类之间可以直接进行赋值操作,例如`Integer i = 5;`和`int m = i;`。 包装类的应用场景广泛,例如: 1. 在集合框架中,因为...

    java-puzzlers-sampler_java_Joshua_

    1. **类型转换与自动装箱拆箱**:Java中存在基本类型与其对应的包装类,如`int`与`Integer`。自动装箱与拆箱可以简化代码,但也会引入一些问题,例如在循环中使用`Integer`而非`int`可能会导致内存泄漏。 2. **变量...

    Java 面试全解析:核心知识点与典型面试题.zip

    本资源包"Java 面试全解析:核心知识点与典型面试题.zip"包含了多个关键主题,帮助求职者深入理解和掌握 Java 的核心概念,以及应对面试中的各种问题。 1. **设计模式** - 34-设计模式常见面试题汇总.html 设计...

    2021-2022年收藏的精品资料软件工程师Java字节码开发深入解析教程解释.docx

    通过分析字节码,我们可以发现潜在的性能瓶颈,比如过度的对象创建、不必要的装箱和拆箱操作,或者冗余的计算。基于这些信息,我们可以采用更高效的算法或数据结构,甚至利用JVM的即时编译(JIT)特性来提升程序性能...

    jdk1.5.0_12源代码

    《深入解析JDK1.5.0_12源代码》 JDK1.5.0_12是Java Development Kit的一个重要版本,它引入了许多关键特性,对Java编程语言产生了深远的影响。在这个版本中,Java语言进行了重要的更新,包括泛型、枚举、自动装箱/...

    JavaJDK6学习笔记(林信良著)

    《Java JDK6学习笔记》是由林信良编著的一本针对Java初学者和进阶者的学习资料,书中详细讲解了Java编程语言与JDK6版本的相关知识。这本笔记不仅包含传统的Java学习内容,还结合了作者独特的见解和实践经验,为读者...

    JAVA6学习文集-精彩内容汇总

    3. **自动装箱与拆箱**:在Java 6中,原始类型(如int)与对应的包装类(如Integer)之间可以自动进行装箱和拆箱操作,极大地简化了代码,避免了手动转换的繁琐。 4. **增强的for循环(foreach)**:Java 6引入了...

Global site tag (gtag.js) - Google Analytics