有关 Java 9 的 String

一直到 Java 8,Strings 在 Java 中使用字符数组进行存储的,同时使用的是 UTF-16 字符集,因此每一个字符将会使用 2 字节的内存。

从 Java 9 开始,Java 提供了一个叫做压缩字符(Compact Strings)的存储概念。

这个存储将会针对字符串使用 char[] 和 byte[] 中字符编码,这个将会与你需要存储的内容有关。

简单来说就是从 Java 9 开始,String 将会根据存储内容的不同来使用不同的存储格式,只会在必要的时候才会使用 UTF-16 编码,这种设计将会显著降低 String 对内存的使用,并且能够让来让垃圾清理程序(Garbage Collector)更有效率的工作。

简单来说就是 Java 9 以后对 String 字符串的存储进行了优化,针对不同字符集设置了不同的存储方案以降低空间的使用。

https://www.ossez.com/t/java-string-pool/14017

posted @   huyuchengus  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-06-27 Confluence 6 整合到支持的附件存储选项
2018-06-27 Confluence 6 附件存储选项
2018-06-27 Confluence 6 附件存储配置
2018-06-27 Confluence 6 "net.sf.hibernate.PropertyValueException: not-null" 相关问题解决
2018-06-27 Confluence 6 "Duplicate Key" 相关问题解决
2018-06-27 Confluence 6 针对 key "cp_" 或 "cps_" 的 "Duplicate Entry" 问题解决
2018-06-27 Confluence 6 尝试从 XML 备份中恢复时解决错误
点击右上角即可分享
微信分享提示