Java字符串与享元模式的关系?

String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");

System.out.println(s1 == s2); //true 字符串会优先去常量池拿、常量池有不再添加相同字符串
System.out.println(s3 == s4); //false new String 会在栈中存放、s3、s4会在栈中开两块空间
System.out.println(s1 == s3.intern()); //true intern 即 去常量池拿值
System.out.println(s3.intern() == s4.intern()); //true 同上

String 常量池 使用的就是享元模式

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容