Реальные примеры шаблонов проектирования пула объектов в Java - PullRequest
0 голосов
/ 04 мая 2018

Я реализовал JDBCConnectionPooling, используя Шаблон проектирования пула объектов для соединений с базой данных. Я просто интересуюсь реальными примерами Pattern Pool Design Pattern . Может кто-нибудь иметь представление о реальном примере или из каких-либо библиотек Java для Шаблон проектирования пула объектов ?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Класс Integer кэширует значения, как описано в Integer.valueOf

public static Integer valueOf (int i)

Возвращает экземпляр Integer, представляющий указанное значение типа int. Если новый экземпляр Integer не требуется, этот метод обычно следует использовать в предпочтении перед конструктором Integer (int), поскольку этот метод, вероятно, даст значительно лучшую производительность в пространстве и времени за счет кэширования часто запрашиваемых значений. Этот метод всегда кэширует значения в диапазоне от -128 до 127 включительно и может кэшировать другие значения вне этого диапазона.

Диапазон от -128 до 127 на самом деле не является пулом, поскольку это будет статический набор значений, но он также предназначен для кэширования других значений при необходимости. Обратите внимание, что я никогда не замечал такого поведения за пределами определенного диапазона. Итак:

Integer.valueOf(5) == Integer.valueOf(5) //true
Integer.valueOf(1234) == Integer.valueOf(1234) //false even if it could be true based on the javadoc
0 голосов
/ 04 мая 2018

Взгляните на java.lang. Строка использует кеш строк, и если в строке есть что-то вроде

String foo = "foobar";
String bar = "foobar";

тогда будет переведено что-то вроде:

class StringPool {
   public static String static_foo = "foobar";
}

String foo = StringPool.foo;
String bar = StringPool.foo;

Обратите внимание, это очень упрощенный пример пула строк, используемого java.

Для дальнейшего чтения я предлагаю вам прочитать Что такое пул Java-строк и чем "s" отличается от новой String ("s")?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...