String对象问题

 

 1 package stringtest;
 2 
 3 public class StringTest {
 4 
 5     public static void main(String[] args) {
 6         //s1在常量池中.编译器优化以后就确定了
 7         String s1 = "abc";
 8         String s4 = "abc";
 9         //s2和s3在堆栈中,在编译时期不能确定,只能在运行期才创建实例
10         //并且s2和s3是两个不同的对象
11         String s2 = new String("abc");
12         String s3 = new String("abc");
13         
14         //intern方法会在常量池中找到一个和s2的unicode值相同的字符串常量
15         //1.如果有,返回它的引用
16         //2.如果没有,则在常量池中增加一个Unicode等于s2的字符串并返回它的引用
17         String s5 = s2.intern();
18         System.out.println(s5 == s1);//true
19         
20         //“==”比的是引用
21         //equals比的是Unicode值
22         System.out.println(s1 == s2);//false
23         System.out.println(s1.equals(s2));//true
24         System.out.println(s2 == s3);//false
25         System.out.println(s2.equals(s3));//true
26         System.out.println(s1==s4);//true
27         
28     }
29 
30 }

 

转载于:https://www.cnblogs.com/promise2mm/p/3721114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值