Эти примитивные массивы, вероятно, будут внутренним состоянием таких вещей, как String
, которое сохраняет свое состояние в char[]
. Хороший профилировщик поймет это и будет иметь понятие «оставшийся размер», который описывает размер объектов, включая размер их подобъектов. Это указывало бы на то, что String
занимало пространство, а не char[]
.
Однако я не вижу упоминания о «сохраняемом размере» в VisualVM. Похоже, он не имеет надлежащих возможностей профилирования коммерческих альтернатив.
Чтобы увидеть, о чем я говорю, попробуйте загрузить оценку YourKit и подключите ее к своему приложению. Это намного сложнее, чем VisualVM, но он может дать вам размер сохраняемых объектов кучи, и это довольно освещает. Он также покажет вам, что ссылается на каждый из объектов в куче, чтобы вы могли отслеживать утечки.