2015-09-25 2 views
-6

Каким будет размер объекта класса?Каким будет размер объекта класса?

public class Example { 

    int x = 10; 
    String name = "Anuj Kumar"; 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     System.out.println("hello java"); 
    } 

} 

Ваша помощь будет очень признательна.

В данном классе у нас есть 2 элемента данных, и каков будет размер объекта класса, теперь, когда я его изменил, пусть говорит от int до float, тогда какой размер будет? Благодаря ...

+2

Google: «как проверить размер класса Java» – Maroun

+1

Вы знаете, что класс файл содержит байт код (инструкции)? – TheLostMind

+2

Что значит «размер класса» в любом случае? Количество байтов, необходимых для каждого экземпляра? –

ответ

1

Это отличный вопрос, я предполагаю, когда вы говорите, размер класса вы имели в виду размер объекта класса В 32 битной ОС объект Integer занимает 128 байт 32 бит класс указатель на тип класса 32 битовые флаги 32 бита блокирует 32 бит данных, т.е. INT

Строка в основном массив полукокса Таким образом, мы имеем 2 объекта java.lang.Sting и символ []

Так что, если у заглянуть внутрь класса Струнный мы имеем Hash CONT смещение и значение то есть указатель на массив символов

Так снова 32 битный указатель класса для класса типа 32 битовые флаги 32 бита запирает 32 бита Hash 32 бита COUNT 32 бита смещения 32 битный указатель на массив символов 124 бит

символьные [] снова имеет размер и символы Так 32 бит класса указатель на тип класса 32 битовые флаги 32 бита запирает 32 бита размер 10 битов для фактического полукокса в Уре случае Ануй Кумар 138 бит

Снова мы имеем пример класса 32 битный указатель класса к типу класса 32 битовые флаги 32 бита запирает 32 биты для указателя строки 32 бита для Integer обертки 160 битых

Следовательно, общего размер должен быть где-то около 160 + 138 + 124 = 422 битых бит

Пожалуйста, т аке взгляд на этот разговор https://www.youtube.com/watch?v=FLcXf9pO27w который чудесно expains то же

Не знаю, почему люди downvoted вопрос вместо того, чтобы ответить на него

+0

Спасибо Ashish за ваш ответ, я очень ценю ваш анализ. –

Смежные вопросы