LINUX.ORG.RU

[java] new

 


0

0

class test
{
public static void main(String[] args)
{
int size = 1024*1024*1024*20;
byte[] a = new byte[size];
System.out.println("a.length = " + a.length);
}
}

Это нормально что в этом примере java не генерит никакого исключения и просто создает массив byte[] размером 0 ?

Это нормально что даже игры с опциями --ms --mx не позволяют выделить жалкие 20 метров на машине с 1 гигом практически свободной памяти ?


воторой вопрос снимается - я попутал гигабайты с мегабайтами, но первый вопрос остается

xtron
() автор топика
Ответ на: комментарий от xtron

У меня int size = 1024 * 1024 * 1024 * 20;

System.out.println(size);

выдает 0.

Так что начинать надо с этого.

А при создании массива размером 1024 * 1024* 100 * 20 выдает OutOfMemoryException

Aphreet
()
Ответ на: комментарий от xtron

все работает как надо

хочешь массив размоером в 0 - жри.

Pi ★★★★★
()

всем спасибо, совсем мне эта жаба уже мозг сломала, забыл про кастинг слишком это C/C++ фича

xtron
() автор топика
Ответ на: комментарий от wfrr

>Тогда лочично попробовать long

В жабе конструкция вида byte[] a = new byte[size];
хочет чтобы size был типа int

xtron
() автор топика
Ответ на: комментарий от xtron

10100000000000000000000000000000000::BIN
AND
00011111111111111111111111111111111::BIN
=
0

xtron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.