tgoop.com/java_360/277
Last Update:
Я хотел сломать Java и я это сделал
На написание этой статьи, меня натолкнул разбор результата изменения полей объекта, лежащего в HashSet. Я развил идею и привнёс альтернативную математику в Java.
Ломаем
В Java существуют примитивные типы и их объектные версии. Для оптимизации JVM заранее создаёт и кеширует Boolean, Byte, Short и часть диапазона Integer, чтобы вместо создания нового объекта использовать существующий в кеше.
Взглянем на Integer.javapublic final class Integer extends Number
implements Comparable<Integer>, Constable, ConstantDesc {
private final int value;
@IntrinsicCandidate
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
}
https://habr.com/ru/articles/767114/
👉@BookJava
BY Книги по Java | Books Java 📚

Share with your friend now:
tgoop.com/java_360/277