String比较涉及知识点 实例
Posted yxj808
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String比较涉及知识点 实例相关的知识,希望对你有一定的参考价值。
public class Test1{
public static void main(String[] args) throws Exception {
String str="abcd";
String str2="abcd";
System.out.println(str==str2);//true
String str3=new String("abcd");
System.out.println(str3==str);//false
String str4="ab"+"cd";
System.out.println(str4==str);//true
String str5="ab";
String str6="cd";
System.out.println((str5+str6)==str);//false
String str7=str;
System.out.println("-----------------");
System.out.println(str3.equals(str));//true
System.out.println(str4.equals(str));//true
System.out.println((str5+str6).equals(str));//true
System.out.println("-------------------");
String str7=str;
str7="ab";
System.out.println(str7==str);//false
System.out.println(str2==str);//true
}
}
==比较的地址,equals比较的内容。String两种构造方式,直接赋值用的是原来的地址,返回true;new String(),开辟了新的内存空间为false;
"ab"+"cd"是静态常量池,为true;str5+str6为动态常量池,运行时str5str6是变量,为false;string类型的值无法改变 ,str7为false;
以上是关于String比较涉及知识点 实例的主要内容,如果未能解决你的问题,请参考以下文章
实例的对比StringStringBuilder字符串的连接效率及StringBuilder和StringBuffer线程安全的比较