Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Размер переменной


Автор: ShellRaiser 25.7.2007, 16:26
Всем привет!
У меня есть небольшой вопрос для знающих людей:

Как в java узнать размер занимаемой памяти предопределённым типом(классом) в байтах,
я знаю что в с++ есть такая функция sizeof() есть ли аналог реализации данной функции на java?

Автор: chief39 25.7.2007, 16:56
Нету такой. Суть джавы в том, что её переменные занимают одинаковое количество памяти на любой платформе.
Инт - 4, лонг - 8 и т.д.
Размеры - в офиц. доке

ОБъект класса, по идее, будет занимать столько, сколько в нём переменные потянут.
метода сайзоф - нету. Прогрраммер отстранён от работы с памятью

Автор: Samotnik 26.7.2007, 01:39
Гы......
long - 64
     int   - 32
     short - 16
     byte   - 8

энд
double - 64
     float     -  32

 энд 
char-  16(ЮНИКОД!!!!!!!!!!  не то как  в  С)

Автор: math64 26.7.2007, 13:24
Узнать размер памяти занимаешй классом приблизительно можно по свободной  памяти Это больше чем сумма памяти занимаемой полями
Код

int t1 = Runtime.getRuntime().totalMemory();
int f1 = Runtime.getRuntime().freeMemory();
A a1 = new A();
int t2 = Runtime.getRuntime().totalMemory();
int f2 = Runtime.getRuntime().freeMemory();
A a2 = new A();
int t3 = Runtime.getRuntime().totalMemory();
int f3 = Runtime.getRuntime().freeMemory();
a1 = null;
a2 = null;
 Runtime.getRuntime().gc();
int t4 = Runtime.getRuntime().totalMemory();
int f4 =  Runtime.getRuntime().freeMemory();
System.out.println("t1=" + t1 + " f1=" + f1 +" t2=" + t2 +" f2=" +f2);
System.out.println("t3=" + t3 + " f3=" + f3 +" t4=" + t4 +" f4=" +f4);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)