public class StringTest {

/**
   * @param args
   */
  public static void main(String[] args) {
   test1();
   test2();
  
  
  }

private static void test2() {
   // TODO Auto-generated method stub
   String s1 = "kvill";
   String s2=s1.intern();
   System.out.println( s1==s1.intern() );
   System.out.println( s1+" "+s2 );
   System.out.println( s2==s1.intern() );
  }

result:

true
kvill kvill
true

private static void test1() {
   // TODO Auto-generated method stub
   String s1 = new String("kvill");
   String s2=s1.intern();
   System.out.println( s1==s1.intern() );
   System.out.println( s1+" "+s2 );
   System.out.println( s2==s1.intern() );
  }

result:

false
kvill kvill
true
  /**
   * 说明:从上面的结果可以看出,针对语句string str = "abc"而言,它在编译期的时候就会检查常量池,是否有“abc”这个字符串是否存在,
   * 不存在就添加进去,存在就不创建对象的引用(引用1),这种方式创建的字符串对象在底层可能也是以类“String”的方式来创建对象;
   * 针对于语句String str = new String("abc")来说,在编译期是不会创建对象的,而且,到了运行期,当执行了s2 = s1.intern()
   * 方法后,s1!=s2说明,new String()这个对象存储的其实不是“abc”这个常量,而是“abc”这个常量的引用(引用2)
   *
   *
   * intern方法将返回常量字符串的引用(引用1),可以看出这里的“常量”字符串引用和string的引用(引用2)是不同的
   *
   *
   * 猜想:我想为什么会出现上面的情况,那是因为new string中存储的可能是“abc”这个常量的“真身”,到了运行期的某个时期,JVM就会将
   * 这个真身“复制”(可能不是复制)到常量池中,然后再销毁这个“真身”,这时候,他们指向的就是一个对象引用了。
   */

不过总觉得想到了,却还差点什么,希望大神们看看,给我一些新的提示!

最新文章

  1. 简单理解Socket
  2. NodeJs教程(介绍总结!)终于在网上找到一个靠谱点的了T_T
  3. hdu-acm steps Common Subsequence
  4. hdu A strange lift
  5. X86平台下嵌入式linux触摸屏解决方案(usb触摸屏控制器+完美校准方案+触摸屏QTE开发环境搭建)
  6. R语言绘图002-页面布局
  7. hosts文件配置作用
  8. java的各个队列之间的联系和区别是什么
  9. 《Java并发编程实战》第二章 线程安全性 读书笔记
  10. Coder的利器
  11. 1.9 分布式协调服务-Zookeeper(二)
  12. 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权
  13. Kubernetes 学习1 k8s架构概述
  14. 51 Nod 1256 乘法逆元(数论:拓展欧几里得)
  15. [PA2014]Fiolki
  16. Docker之 默认桥接网络与自定义桥接网卡
  17. python技巧 计算字符串中字母出现的次数并取出最大
  18. element UI 导航栏根据路径来确定默认选中
  19. linux md5sum命令
  20. [Coci2015]Kamp

热门文章

  1. FastApi下载文件
  2. 纯前端实现词云展示+附微博热搜词云Demo代码
  3. 尖端之作看逐浪-Zoomla!逐浪CMS python版发布
  4. Arduino uno r3 使用 ESP8266 UART-WiFi 透传模块
  5. [bzoj1385]Division expression
  6. 【JavaSE】finally块不被执行的情况总结
  7. 洛谷 P7156 - [USACO20DEC] Cowmistry P(分类讨论+trie 树上 dp)
  8. 洛谷 P5280 - [ZJOI2019]线段树(线段树+dp,神仙题)
  9. python版的MCScan绘图
  10. [R] 添加误差棒的分组折线图:geom_path: Each group consists of only one observation. Do you need to adjust the...