• java:String使用equals和==比较的区别


     "=="操作符的作用

    1、用于基本数据类型的比较

    2、判断引用是否指向堆内存的同一块地址。

    equals所在位置:

    在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写

    public boolean equals(Object obj) {
            return (this == obj);
        }

    equals的作用:

    用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型

    equals的基本使用:

    boolean b = obj1.equals(obj2);

    String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。

    分析如下:

    String作为一个对象来使用

    例子一:对象不同,内容相同,"=="返回false,equals返回true

    String s1 = new String("java");
    String s2 = new String("java");
    
    System.out.println(s1==s2);            //false
    System.out.println(s1.equals(s2));    //true

    例子二:同一对象,"=="和equals结果相同

    String s1 = new String("java");
    String s2 = s1;
    
    System.out.println(s1==s2);            //true
    System.out.println(s1.equals(s2));    //true

    String作为一个基本类型来使用

    如果值不相同,对象就不相同,所以"==" 和equals结果一样

    String s1 = "java";
    String s2 = "java";
    
    System.out.println(s1==s2);            //true
    System.out.println(s1.equals(s2));    //true

    如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。

    如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

    本文来自 http://www.cnblogs.com/tinyphp/p/3768214.html

  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/cainiao-Shun666/p/6868605.html
Copyright © 2020-2023  润新知