java – 提取大量的String文字是个好主意吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 提取大量的String文字是个好主意吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1274字,纯文字阅读大概需要2分钟。
内容图文
![java – 提取大量的String文字是个好主意吗?](/upload/InfoBanner/zyjiaocheng/733/450c9c3bf79644f6b863e9974837c531.jpg)
在我正在处理的遗留代码库中,有大量的String文字.其中很多都是重复的.例如,字符串“userID”用于500个地方.可能有一千种这样的文字以重复的方式使用. IntelliJ Idea静态代码分析表明我将它们提取为常量.如果IDE为我自动重构,没有我键入一行代码,我应该去吗?
通常,将许多这样的重复字符串文字提取为常量是一个好主意吗?这显然可以避免重复,提供单点访问,声明等.
但是,这些文字中的一些在访问时会出现.如果我将所有文字声明为常量(静态最终),那么所有这些文字将被加载在一起.在这种情况下,将所有这些文字声明为常量是一个好主意吗?你能提供一些指向垃圾收集的指针,在这种情况下的内存空间预防措施吗?在这种情况下使用的最佳做法是什么?
一些注意事项:我知道字符串文字被实习.所以我不会在最坏的情况下保存任何内存.此外,似乎jdk 7将这些字符串放在堆而不是permgen.我看到像我这样的couple of questions,但觉得它与众不同.所以在这里发布.
谢谢
解决方法:
>所有字符串文字都自动实习.从JDK7开始,当类(实际上是加载定义字符串文字的类的类加载器)定义它们时,它们将被GCed(假设没有其他类引用它(尽管很少发生这种情况).使它们成为静态的最终并将它们放入一个公共类中从内存保存的角度来看确实是无用的,但从设计的角度看是有用的,因为它将提供单点访问.
>在JVM中的所有类之间共享相同的字符串文字.所以,没有新的字符串.实际上,将它们放在一个类中并从该位置访问它们会使您的代码更具结构性/可读性.
我的建议是,不要修改遗留代码,除非它有很大的不同.您可以选择权衡取舍. :P
内容总结
以上是互联网集市为您收集整理的java – 提取大量的String文字是个好主意吗?全部内容,希望文章能够帮你解决java – 提取大量的String文字是个好主意吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。