• JAVA-初步认识-常用对象API(基本数据类型对象包类-JDK1.5自动装箱拆箱)


    一.

    接下来说一下,integer里面的基本使用说一下,数字在进行操作的时候,我们通常用的都是运算符。数字变成对象以后,用的是什么呢?

    DOS结果显示,第一个是false,第二个是true。只要是new,就是建立了堆内存中的不同空间。equals为什么相同呢?因为Integer覆盖了object里面的方法,Integer里面比较的是数值是否相同。"3"本身先被转成10的二进制值,然后再进行封装。

    Integer想比较大小,它自己最为清楚。

    以前比较数值大小直接通过比较运算符,现在是通过形成对象,调用对象的方法来进行比较。结果显示为0,意味着两个相等,通过数值来判断大小。compareTo的方法结果只有三个值1,0,-1。以前比较abc,就有减大小。现在比较数值就不需要,因为有可能有些数值非常的大。

    一个字节有八个比特位,7个比特位就可以把阿斯科码表表示出来。

    二. 某些方法的升级

    某些方法在1.5版本后,有了一些升级,这个升级出现了一些新特性。Integer本身描述的是一个整数,所以我们希望它能不能直接按照操作整数一样,来操作Integer,

    自动将这个4封装成对象了,即使写成Intefer i=4,在内存中还是表现成new Integer(4);

    不光是赋值操作,整数怎么用,它就怎么用。

    升级之后操作很简单,和操作变量一样方便,但是它是对象。

    i=i+6,i要和6相加,那么对象i要先变成整数。i要变成基本数据类型,把一个Integer对象变成基本数据类型该怎么做?

    i对象先进行自动拆箱,变成了int类型和6进行运算,接着将得到的和进行装箱赋值给i。

    那怎么进行的拆箱?使用的i.intValue();对象调用一个方法,使其变成一个整数,然后才能进行运算。

    在使用1.5版本以后的新特性的话,必须有一点要注意, i除了取整数值以外,它还多了一个值,多了一个null。如果是int类型的变量,只能是1,2,3......。如果出现了Integer i=null的话,在运行的时候会出现nullpointException,在null的情况下,就无法调用方法得到整数。新的特性健壮性会差一些,要进行判断。不为空的时候,才能进行运算,为空要小心,会抛出异常。一抛空异常,程序就会停掉,因为是runtime异常。

    i是引用数据类型,因此可以是null,自动拆箱装箱虽然简化了操作,但是有弊端需要做健壮性的判断操作。

    接下来说一下,自动拆箱装箱比较特殊的地方,开发不多见,但是面试可能会有。

    旧版本和1.5版本之后的两种写法,结果是false,true,true,true。

    换成128之后,结果就是false和true。

    jdk1.5版本之后,自动装箱,如果装箱的是一个字节,那么该数据就会被共享不会重新开辟空间。

  • 相关阅读:
    C#中对ActiveX控件的调用
    C#打开播放器后指定其播放的视频文件的路径代码怎么写啊!
    利用Visual C#开发一个媒体播放器
    C# 播放器控件 的常用方法
    用C#打开一个pdf文件
    C#利用微软DirectX做的视频播放器
    请问C#高手: [DllImport("kernel32.dll")]是什么意思??
    C#中的abstract与virtual
    ListBox Grouping的研究(一):初探GroupItem对象
    一个“>”导致我调试了1个小时才解决问题
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/8134630.html
Copyright © 2020-2023  润新知