zoukankan      html  css  js  c++  java
  • 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版本之后,自动装箱,如果装箱的是一个字节,那么该数据就会被共享不会重新开辟空间。

  • 相关阅读:
    USACO--2.1The Castle
    浅谈python字符串存储形式
    面向对象——一起来复习托付与事件!
    数据结构——算法之(032)(求两个串中的第一个最长子串)
    读《浪潮之巅》有感
    关于android 怎样安装 assets文件下的apk
    每日一小练——求质数
    怎样使破解网页的禁止复制黏贴
    Angularjs Nodejs Grunt 一个样例
    《TCP/IP具体解释卷2:实现》笔记--域和协议
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/8134630.html
Copyright © 2011-2022 走看看