String的intern方法

string类型的常量池:
    直接使用双引号声明出来的string对象会直接存储在常量池中
    
    如果不是用双引号声明的string对象,可以使用string提供的intern方法。intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当前字符串放入常量池中。
    如果常量池中存在当前字符串,就会直接返回当前字符串,如果常量池中没有此字符串,会将此字符串放入常量池中后,再返回。

    intern的不当使用:
        常量池的长度是1009且不可变的,因此一旦常量池中的字符串达到一定规模后,性能会急剧下降。
        fastjson中对所有的json的key使用了intern方法,缓存到了字符串常量池中,这样每次读取的时候就会非常快,大大减少时间和空间。而且json的key通常都是不变的。但如果变化太大,会给字符常量池带来很大的负担。fastjson修复的办法是在程序中加入了一个最大的缓存大小,超过这个大小后就不会再往字符串常量池中放了。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值