关于String的一些小知识

http://tech.meituan.com/in_depth_understanding_string_intern.html
http://rednaxelafx.iteye.com/blog/774673
https://www.ntu.edu.sg/home/ehchua/programming/java/J3d_String.html​(需要飞出去, 我在stackoverflow上提问, 别人给我的答案)
---

String 常量到底是什么时候放入到常量池的呢(这儿的意思指得是 显示声明或者串联字符串等操作, 哪一种操作会让新的字符串马上放入到常量池中 ), 我通过网上翻阅资料得到:

主要有以下这些方法:

1.直接使用双引号声明出来的String对象会直接存储在常量池中。
2.如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中

---------------
引用传入方法体的过程​
String 形参的意义​
手动和编译器优化StringBuilder的不同(主要在循环中)
​toString()的嵌套导致递归
---------------
格式化输入出 "+" 不能重载呗​​


--------

关于String什么时候会将字符串字面量放入到String constant pool中, 我在知乎上自己回答啦,
https://www.zhihu.com/question/50743080


java用这样的方式生成字符串:String str = "Hello",到底有没有在堆中创建对象?​

-"Hello"字面量对应的java.lang.String对象会存在于Java heap里。它在一次运行中只会有一份,不会被重复创建

StringTable 存的只是对数据内容为"Hello"的引用, 而这个实例仍然会放在heap中

猜你喜欢

转载自cloudgan.iteye.com/blog/2345345