@Vit я пожалуй вас поправлю, не всегда == вернет false, поскольку строки берутся из пула строк. Под == не попадут явно созданные через new строки и динамически созданные. Все остальные будут возвращать true
Константин Китманов: ой ой ой, не константа она. Смотря с какой точки смотреть. Конечно можно ей пренебречь в бенчамарке языков, но разве это правильно? Хотя если её не убрать, то результаты будут невалидными вовсе.
sectronix: согласен, но не всегда так. Иногда простота кода и красота по разную сторону. По-моему при презентации Kotlin ребята из JetBrains говорили об таких ситуациях)
Вручную можно сделать memory allocation см класс sun.misc.Unsafe и java.nio.ByteBuffer.allocateDirect. Проблема в том, что gc будет приостанавливать поток в любом случае, даже при условии что у вас будет concurent mark and sweep. Хоть и на минимальный промежуток времени(можно добиться 150мс), но будет. Это возможно будет очень плохо сказываться на GUI.
Валера Программист: представьте что вам 10 лет и вы смотрите порно. Вдруг в комнату заходит мама, вы спешно пытаетесь переключить вкладку. Однако это не получается сразу, т.к. GC решил почистить за вами.
И вы готовы увидеть очень медленный браузер и который будет есть очень много памяти?
Посмотрите для начала на JavaFx компонент, который вроде как даже не на Java написанный, но тормозит ппц как