关于String的一些小知识

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

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

主要有以下这些方法:

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

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


--------

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


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

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

StringTable 存的只是对数据内容为"Hello"的引用, 而这个实例仍然会放在heap中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值