直接上区别

比较类里面的数值是否相等时,用 equals() 方法;当测试两个包装类的引用是否指向同一个对象时,用 ==。

上测试代码

public static void main(String[] args) {
    String str1 = new String("abc");
    String str2 = new String("abc");
    String str3 = "abc";
    String str4 = "abc";
    System.out.println(str1 == str1);
    System.out.println(str1 == str2);
    System.out.println(str3 == str4);
}

输出结果

true
false
true

引用了人家的一段说明

String 是一个特殊的包装类数据。可以用:

String str = new String("abc");

String str = "abc";

两种的形式来创建,第一种是用 new() 来新 建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。

而第二种是先在栈中创建一个对 String 类的对象引用变量 str,然后查找栈 中有没有存放 "abc",如果没有,则将 "abc" 存放进栈,并令 str 指向”abc”,如果已经有”abc” 则直接令 str 指向“abc”。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2266 引用 • 6669 回帖 • 1227 关注
  • String
    15 引用 • 35 回帖
  • 逗比
    18 引用 • 224 回帖 • 1 关注
感谢    赞同    分享    收藏    关注    反对    举报    ...