A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 京巨 中级黑马   /  2015-9-11 23:26  /  226 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 String s1 = "你好";//s1 = 0x2233
  4.                 String s2 = "你好";//s2 = 0x2233
  5.                 System.out.println("s1 == s2 : " + (s1 == s2));//true
  6.                 System.out.println("s1.equals(s2) : " + (s1.equals(s2)));//true
  7.                
  8.                 String s3 = "你好";
  9.                 String s4 = new String("你好");
  10.                 System.out.println("s3 == s4 : " + (s3 == s4));//false
  11.                 System.out.println("s3.equals(s4) : " + (s3.equals(s4)));//true
  12.                
  13.                 String s5 = new String ("你好");
  14.                 String s6 = new String("你好");
  15.                 System.out.println("s5 == s6 : " + (s5 == s6));//false
  16.                 System.out.println("s5.equals(s6) : " + (s5.equals(s6)));//true
  17.                
  18.                 //---------------------------------------------------------------------//
  19.                 String s7 = "你好";
  20.                 String s8 = "java";
  21.                 String s9 = "你好java";
  22.                 String s10 = s7 + s8;
  23.                 String s11 = s7 + "java";
  24.                 String s12 = "你好" + s8;
  25.                 String s13 = "你好" + "java";//s13 = "你好java";
  26.                
  27.                 System.out.println("s9 == s10 : " + (s9 == s10));//false
  28.                 System.out.println("s9 == s11 : " + (s9 == s11));//false
  29.                 System.out.println("s9 == s12 : " + (s9 == s12));//false
  30.                 System.out.println("s9 == s13 : " + (s9 == s13));//true
  31.         }
  32. }
复制代码


2 个回复

正序浏览
zzq18217362451 来自手机 中级黑马 2015-9-12 00:11:10
藤椅
看的有点晕
回复 使用道具 举报
本帖最后由 ashun 于 2015-9-11 23:54 编辑

对于String对象,当不使用new生成对象时,如果内容一样,则内容会占同一个内存,两个引用指向了同一块内存;当使用new关键字时,内容会存储在不同的内存中;
equals比较的是两个对象的内容是否相同,而==比较的是两个对象的内存是否相同;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马