zoukankan      html  css  js  c++  java
  • 关于 == 和 equals() 的区别

    对于正在学习java的,以及入行不久的小伙伴们,在面试中经常会被面试官问到 "  == 和 equals() 的区别 ?"的问题,你是否回答好了呢?

    示例一:

    //两个基本类型数据比较
    int a = 10;
    int b = 10;
    System.out.println(a == b);

    答案:true

    示例二:

    //两个字符串的比较 
     String x = "hello";
     String y = "hello";
     System.out.println(x == y);
     System.out.println(x.equals(y));

    答案:true

               true

    示例三:

    //两个不同字符串的比较
     String x = "hello";
     String y = "world";
     System.out.println(x == y);
     System.out.println(x.equals(y));

    答案:false

               false

    示例四:

     //两个字符串的比较
      String x = "hello";
      String y = " world";
      String z = new String("hello world");
      System.out.println((x+y) == z);

    答案:false

    示例五:

    //两个字符串的比较
      String x = "hello";
      String y = " world";
      String z = new String("hello world");
      System.out.println(x+y);
      System.out.println(z);
      System.out.println((x+y).equals(z));

    答案:hello world

               hello world

               true

    小结:基本类型数据用 ==比较,对于字符串类型的数据,如果出现new关键字,必然会在堆内存中开屏空间,那么用 == 去比较的两个引用类型数据的地址,显然得出的结果是false,因此如果比较两个字符串的内容是否相等,用的是equals()方法。

  • 相关阅读:
    广播BroadcastReceiver(2)
    hunnu11544:小明的烦恼——找字符串
    Systemd启动图形界面过程
    大数据.......
    2014百度之星第一题Energy Conversion
    基于zookeeper简单实现分布式锁
    LeetCode OJ 215. Kth Largest Element in an Array 堆排序求解
    Leetcode
    Linux文件系统(七)---系统调用之open操作(一)
    Go语言Slice操作.
  • 原文地址:https://www.cnblogs.com/lu-manman/p/7943697.html
Copyright © 2011-2022 走看看