zoukankan      html  css  js  c++  java
  • java中equals和“==”补充

    在JDK1.5之后,Integer添加了自动装箱,其形式为Integer i = 5;

    装箱过程在内存中是  i = new Integer(4);大家都很熟悉这个吧。

    当使用这中形式的时候,equals的用法不变,但是“==”略有不同

    看下边的例子:

    (1)

    Integer x = 12;
    Integer y = 12;
    System.out.println(x==y);    //true
    System.out.println(x.equals(y)); //true

    (2)

    Integer x = 127;
    Integer y = 127;
    System.out.println(x==y);    //true
    System.out.println(x.equals(y));  //true

    结果和(1)相同

    (3)

    Integer x = 128;
    Integer y = 128;
    System.out.println(x==y);    //false
    System.out.println(x.equals(y)); //true

    (4)

    Integer x = 129;
    Integer y = 129;
    System.out.println(x==y);    //false
    System.out.println(x.equals(y));  //true

    结果和(3)相同

    总结:看到equals的用法和在上一篇博文中叙述的相同

    但是“==”的用法变了,这是因为,自动装箱,如果装箱的是一个字节方位内的数据(注意上边的127),那么这个数据会被共享,不会开辟新的空间,

    所以两个new的地址相同。

  • 相关阅读:
    c++ Oracle OCCI 编程
    linux库文件
    C/C++学习笔记 vector 和map基本操作总结
    linux 后台开发类常见问题及知识点
    Libmicrohttpd简介
    linux系统编程之进程(一):进程与程序
    回调函数
    va_start和va_end使用详解
    new在c#方法中的使用
    Android Studio快捷键
  • 原文地址:https://www.cnblogs.com/XuGuobao/p/6089900.html
Copyright © 2011-2022 走看看