String s1="abc";
String s2="abc";
System.out.println(s1==s2);//true
System.out.println(s1.eqauls(s2));//true
//创建了几个对象?
String s1=new String("abc");//两个对象,常量池新对象及堆内存一个副本
String s1=new String("abc");
String s2="abc";
System.out.println(s1==s2);//false,地址值不同
System.out.println(s1.eqauls(s2));//true,常量池
String s1="a"+"b"+"c";
String s2="abc";
System.out.println(s1==s2);//true,常量优化机制,编译器完成字符串,s1创建,s2不用操作
System.out.println(s1.eqauls(s2));//true
String s1="ab";
String s2="abc";
String s3=s1+"c";
System.out.println(s3==s2);//false
System.out.println(s3.eqauls(s2));//true
Java学习笔记19:==与equals用法比较
最新推荐文章于 2025-03-31 18:10:20 发布
本文详细探讨了Java中字符串的比较方法,包括使用'=='和equals()的区别,以及字符串常量池和对象创建的影响。通过具体示例,阐述了字符串在不同情况下的对象创建数量,以及编译器优化机制。

931

被折叠的 条评论
为什么被折叠?



