Я создаю класс узлов trie, который содержит поле с логическим типом, и я не знаю, что будет лучше использовать логическое или логическое.Java trie node Boolean vs boolean
Я знаю, что один экземпляр Boolean принимает 16 байтов и 4 байта принимает его ссылку в 32-разрядной виртуальной машине. Но булевы имеют константы Boolean.TRUE и Boolean.FALSE, что можно использовать для оптимизации пространства. Таким образом, приложение wiil занимает 4 * N + 32 байта, где N - количество узлов, да?
Насколько, я знаю логическое значение занимает 4 байта (в массиве ее оптимизации до 1 байт на элемент) в 32-битной виртуальной машины тоже)
Однако можно использовать такой код
boolean EOW = Boolean.TRUE;
, но сколько места займет и сколько времени займет автобокс/inboxing?
Итак, что будет лучше использовать для оптимизации использования пространства и времени? И не могли бы вы ответить мне, сколько пространства это сказывается на 64-битной виртуальной машине?
eah, я знаю о коллекциях, из-за структуры дженериков. Я знал, что лучше использовать примитивы, чем обертки, но я не был уверен в Boolean –
Итак, вы имеете в виду, что такие значения, как 'true' и' false', это что-то вроде обналичивания? –
в зависимости от вашего сообщения Я могу сделать вывод, что все это займет 'N * sizeOfReferences + 8' bytes? –