关于java中的字符串对象比较
String s1="java";
String s2=new String("java");
String s3="java";
s1==s3为true
-----------------------------------------------------
两者死不一样的:
1、String s="java"; 这里产生得到一个字符串常量。系统首先会去“常量池”寻找,看是否有“java”常量存在,如果有那么就将这个常量“java”赋给s,如果没有则系统在常量池里创建“java”,并将其给s。
2、String s = new String("java"); 意思是根据常量“java”创建一个字符串的对象,如此他首先会执行1中的操作,然后根据常量“java”在堆中创建对象,并为其分配内存。
当然在使用没有什么区别,但本质是有区别地
-------------------------------------------------------------------
String a1="java";
String a2="java";
a1==a2;//结果为true,其实a1和a2是同一个数据
String b1=new String("java");
String b2=new String("java");
b1==b2//结果为false,b1和b2是两个对象