首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中的自动装箱与拆箱

自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。...为了让代码简练,Java 1.5引入了具有在原始类型和对象类型自动转换的装箱和拆箱机制。...什么是自动装箱和拆箱 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。...因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。...何时发生自动装箱和拆箱 自动装箱和拆箱在Java中很常见,比如我们有一个方法,接受一个对象类型的参数,如果我们传递一个原始类型值,那么Java会自动讲这个原始类型值转换成与之对应的对象。

59620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java中的自动装箱和拆箱

    一、什么是自动装箱和拆箱: 我们知道java为8种基本类型分别提供了对应的包装类型,在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i=new Integer...(10); 而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了: Integer i=10; 这个过程会自动根据数值的类型创建Integer...对象,则就是自动装箱,同理 Integer i=10; int j=i; 上面的代码则是自动拆箱,将Integer对象自动拆箱为int 简单来说装箱就是自动将基本数据类型转换为包装器类型,拆箱就是自动将包装器类型转化为基本类型...由反编译的结果可知,装箱的时候调用的是Integer的valueOf方法,拆箱时调用的是Integer的intValue方法 其他的包装器类也类似,这里就不一一举例了 总结:java装箱过程是调用包装类的...valueOf方法实现的,而拆箱过程则是调用包装类的xxxValue方法实现的(xxx代表对应的基本类型) 三、面试中相关问题: 下面的这段代码将输出什么: public class Main {

    59840

    Java中的自动装箱与拆箱

    自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。...为了让代码简练,Java 1.5引入了具有在原始类型和对象类型自动转换的装箱和拆箱机制。...什么是自动装箱和拆箱 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。...因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。...何时发生自动装箱和拆箱 自动装箱和拆箱在Java中很常见,比如我们有一个方法,接受一个对象类型的参数,如果我们传递一个原始类型值,那么Java会自动讲这个原始类型值转换成与之对应的对象。

    73020

    针对需求分包的情况,是否要为每个分包寻找出它的组织

    fochaillee (747**11) 2012-08-28 16:24:56 潘老师,请教一下,业务建模过程中,针对需求分包的情况,是否要为每个分包寻找出它的组织?以及找到这个组织要解决的问题?...fochaillee (747**11) 2012-08-28 16:31:05 如果系统要解决的问题的组织是一个公司,老大的愿景是比较宏观的,但要达到老大的愿景,还是需要各个组织(内部机构)的协调才能达到的...,这样就有需要解决各个组织的问题; 不知道理解的对不对?...大家可以一起讨论一下 潘加宇 (3504847) 2012-08-28 16:34:56 需求应该从业务建模导出,既然"要达到老大的愿景,还是需要各个组织(内部机构)的协调",就把整个的组织作为研究对象...这和"需求分包"无关。

    40530

    28万的特斯拉,说拆就拆

    ▲车祸现场 事实上,特斯拉从去年开始就陷入了安全性舆论漩涡的中心。一起又一起的“刹车失灵”事件,掀起了消费者对于特斯拉的不满与质疑。...前车身域控制器的位置在前舱,这个位置理论上来说遇到的碰撞概率要更高,因此采用铝合金的保护外壳。...MCU2的主板采用了双面PCB板,正面主要布局各种网络相关芯片,例如Intel和Marvell的以太网芯片、Telit的LTE模组、TI的视频串行器等。...其最核心的前视三目摄像头包含中间的主摄像头,以及两侧的长焦镜头和广角镜头,形成不同视野范围的搭配;三个摄像头用的是相同的安森美图像传感器。 毫米波雷达放置于车头处车标附近,包含一块电路板和一块天线板。...在动力电池—电驱高压线束的连接器上,Model 3采用的是TE的HC Stak 25:其结构和功能与HC Stak 35类似,不同点在于尺寸的大小。

    66021

    java 自动装箱与拆箱

    这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱,...解包装称为拆箱); 其实按照我自己的理解自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合java的面向对象;例如用int来举例: //声明一个Integer对象Integer num =...成为一个对象以后就可以调用对象所声明的所有的方法 自动拆箱:故名思议就是将对象重新转化为基本数据类型: //装箱Integer num = 10;//拆箱int num1 = num; 自动拆箱有个很典型的用法就是在进行运算的时候...:num1==num2: false num3==num4: true 很奇怪吧:这就归结于java对于Integer与int的自动装箱与拆箱的设计,是一种模式:叫享元模式(flyweight)...为了加大对简单数字的重利用,java定义:在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象 而如果超过了从–128到127之间的值

    72360

    Java包装类,基本的装箱与拆箱

    通俗的说,为啥要这个东西的存在呢? 首先,我们要知道,Java语言优势就是在于JVM的跨平台机制与面向对象语言的这两大优势。...Java是一个面向对象的编程语言,但是却有一个小小的不足,Java中的八种基本数据类型却是不面向对象的。 那既然不面向对象,就写一个类让这些类型面向对象,于是包装类诞生了。...在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang包。...同时他也支持自动拆箱。...("自动拆箱"+j); } } 运行结果如下: 自动装箱和拆箱与手动没有区别,我们自然平常选择自动啦!

    51550

    深入剖析Java中的装箱和拆箱

    自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。...什么是拆箱? Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料。...在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i = new Integer(10); 而在从Java SE5开始就提供了自动装箱的特性,...因此可以用一句话总结装箱和拆箱的实现过程:   装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。...三.面试中相关的问题 虽然大多数人对装箱和拆箱的概念都清楚,但是在面试和笔试中遇到了与装箱和拆箱的问题却不一定会答得上来。下面列举一些常见的与装箱/拆箱有关的面试题。

    54610

    通过源码了解Java的自动装箱拆箱

    什么叫装箱 & 拆箱? 将int基本类型转换为Integer包装类型的过程叫做装箱,反之叫拆箱。...由此我们引出了Java装箱的这个操作。我们带着疑问去进行分析。...我说说的理解,因为在我们的业务中,可能存在各种状态和标识等Integer类型的字段,这些值一般都是0,1,2,3之类的,而且出现的比较频繁,如果没有缓存,那么就需要频繁的new对象,然后再释放,就非常消耗内存空间...小总结 通过上面的源码阅读和测试分析,我们可以得出结论,我们平时在进行计算统计,或者方法入参的时候,应该尽量的避免这种类型转换的问题。来提升我们整个代码的执行效率。...拆箱(intValue) 拆箱总体没有什么复杂的逻辑,直接返回这个数值的基本类型。

    39110

    Java 性能笔记:自动装箱拆箱

    我们可以将这种差异解释为对自动装箱功能的滥用,而此功能自JDK1.5我们就已开始使用。先不管造成差异的原因,让我们来仔细琢磨下Java中“自动装箱”和“自动拆箱”的概念。...Java中变量被分为两类:基础数据类型和引用数据类型。...Java中有8种基础数据类型和与每一种基础数据类型相对应的8种引用数据类型(包装类) Primitive Types Reference Types(Wrapper Class) boolean Boolean...Byte char Character float Float int Integer long Long short Short double Double 如下代码片段列举了“自动装箱”和“自动拆箱...结论,如果我们想要写出处理速度更快的代码,我们需要仔细琢磨“自动装箱”和“自动拆箱”的概念。

    44810

    Java 自动装箱与拆箱的实现原理

    什么是自动装箱和拆箱 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。...因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱。...自动装箱和拆箱的原理 自动装箱时编译器调用valueOf将原始类型值转换成对象,同时自动拆箱时,编译器通过调用类似intValue(),doubleValue()这类的方法将对象转换成原始类型值。...明白自动装箱和拆箱的原理后,我们带着上面的疑问进行分析下Integer的自动装箱的实现源码。...cache属于常量,存放在java的方法区中。     如果你不了解方法区请点击这里查看JVM内存模型 接着看下面是java8种基本类型的自动装箱代码实现。

    1.7K170

    详解 Java 中的自动装箱与拆箱

    下面我们来看看需要装箱拆箱的类型有哪些: ? ? 这个过程是自动执行的,那么我们需要看看它的执行过程: 反编译 class 文件之后得到如下内容: 1 javap -c StringTest ?...可以看到运算的时候首先对 num3 进行拆箱(执行 num3 的 longValue 得到基础类型为 long 的值 300),然后对num1 和 mum2 进行拆箱(分别执行了 num1 和 num2...所以,当 == 运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。...总结 1、需要知道什么时候会引发装箱和拆箱 2、装箱操作会创建对象,频繁的装箱操作会消耗许多内存,影响性能,所以可以避免装箱的时候应该尽量避免。...3、equals(Object o) 因为原equals方法中的参数类型是封装类型,所传入的参数类型(a)是原始数据类型,所以会自动对其装箱,反之,会对其进行拆箱 4、当两种不同类型用 == 比较时,包装器类的需要拆箱

    77000

    深入剖析Java中的装箱和拆箱

    深入剖析Java中的装箱和拆箱   自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。...本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。   以下是本文的目录大纲:   一.什么是装箱?什么是拆箱?   ...什么是拆箱?   在前面的文章中提到,Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料。...在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i = new Integer(10);   而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为...三.面试中相关的问题   虽然大多数人对装箱和拆箱的概念都清楚,但是在面试和笔试中遇到了与装箱和拆箱的问题却不一定会答得上来。下面列举一些常见的与装箱/拆箱有关的面试题。

    843140

    小程序分包的一些思考及Uiniapp 分包优化逻辑的验证

    分包 什么是分包 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。...分包的好处 对小程序进行分包的好处主要有以下两点: 可以优化小程序首次启动的下载时间 在多团队共同开发时可以更好的解耦协作 uniapp 分包配置 按官网,假设支持分包的 uni-app 目录结构如下:...哪天,我们要对该包进行分包的时候,如果按照前面的分包方式,我们如果在 pages 同级下建立一个子包的目录,假设我们这里叫 pagesA,然后把对应的活动模块的文件都挪动到该目录下,对应的 pages.json...分包预加载 分包预载配置。配置 preloadRule 后,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。...主包 下的 static 是没有我们的在分包中用的 test.png 图片,相反,它被打包自己的分包下面。

    1.5K21

    Java包装类与自动拆箱装箱

    什么是 Java 包装类和自动拆箱装箱? Java 中的基本数据类型(如 int、char、boolean 等)是不具备面向对象特性的,不能直接参与面向对象的操作。...为什么需要 Java 包装类和自动拆箱装箱? Java 的包装类和自动拆箱装箱主要有以下几个原因: 面向对象:Java 是一门面向对象的编程语言,但基本数据类型不具备面向对象的特性。...通过使用包装类,可以将基本数据类型转换为对应的对象,从而在集合中存储。 3. Java 包装类和自动拆箱装箱的实现原理? Java 的包装类是通过封装基本数据类型的值来实现的。...Java 包装类和自动拆箱装箱的使用示例 以下是 Java 包装类和自动拆箱装箱的一些使用示例: // 自动装箱 Integer num1 = 10; Double num2 = 3.14; // 手动装箱...总结 Java 的包装类和自动拆箱装箱提供了基本数据类型与对象之间的转换功能,使得基本数据类型也能够参与面向对象的操作。

    28130

    拆不拆?中台的架构合理吗?

    真正实施后发现,很多挑战不是依靠某种技术、工具或平台就可以完全解决的,于是好多机构开始忙着拆中台…… 那么问题出在了那里,中台真的是坑吗? ◆ 首先,什么是中台?...在前台和后台之间夹一个中台,屏蔽后台的数据存储,应对前台没完没了的变化需求。 前台跟着界面走,天生就稳定不了,总是有五花八门的数据请求,这是必然的事情。...后台应该主要负责数据存储,把不同形式和规模的数据以合适的方式整理好,大数据倒腾起来动静太大,要求有一定的稳定性。如果前台的请求都要求后台直接做,那后台管的事就太多了。...也是袋鼠云与客户的实战中打磨出来的经验与智慧的总结。 汇集而成《数据中台架构》一书,在书里向所有从事数据化工作的同道传达,在面对同样的问题时,可以不再重复那些艰苦的经历。...在12期的课程里,张旭老师用通俗的语言和详实的案例,带大家了解数据中台,也为企业数据化建设提供了实用的参考。

    65720
    领券