java - Java 如何在幕后为字符串实现享元模式?

标签 java design-patterns flyweight-pattern

如果你有一个字符串的两个实例,并且它们是相等的,在 Java 中它们将共享相同的内存。这是如何在幕后实现的?

编辑:我的应用程序使用了大量的 String 对象,其中许多是相同的。使用 Java 字符串常量池的最佳方法是什么,以避免创建自定义享元实现?

最佳答案

If you have two instances of a String, and they are equal, in Java they will share the same memory

这实际上不是 100% 正确。

This blog post is a decent explanation为什么会这样,以及字符串常量池是什么。

关于java - Java 如何在幕后为字符串实现享元模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909848/

相关文章:

java - 切换焦点后模态对话框隐藏在主框架后面

Java 代理身份验证

android - 使用 Windows Azure 推送数据

c# - 将对象字段分配给局部变量有什么好处?

java - 可从享元中自行移除资源

java - 正则表达式在 regexpal 中工作,但在 Java 中不起作用

java - 如何使用抽象从方法更新数组

java - 使用 ANTLR4 从 DSL 转换为 Java,需要重建(而不是评估)表达式的策略

c# - IDisposable 的享元和工厂问题

php - 如何在 php 中实现享元模式?