import java.util.Scanner; public class TestScanner { public static void main(String[] args) { //Java会确保一个字符串常量只有一个拷贝 String str1="hello"; String str2="hello"; //输出true System.out.println(" "+(str1==str2)); //输出true System.out.println(" "+str1.equals(str2)); //S1和S2指向不同的对象 new String() 创建的字符串不是常量,不能在编译期就确定, //所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。 String S1=new String("hello"); String S2=new String("hello"); //输出false System.out.println(" "+(S1==S2)); //输出true System.out.println(" "+S1.equals(S2)); //str3和str4指向同一个对象 String str3="hello"; String str4=str3; //输出true System.out.println(" "+(str3==str4)); //输出true System.out.println(" "+str3.equals(str4)); } }
总结:在比较字符串是否相同的时候尽量使用equals。
时间: 2024-10-21 08:20:59