Отказ от ответственности: я понимаю, что могу сгенерировать это во время выполнения в Java, это было необходимо для особого случая при тестировании производительности некоторого кода. Я нашел другой подход, так что теперь это просто любопытство, а не что-то практическое.
Я пробовал следующее как статическое поле, как поле экземпляра и инициализировал его непосредственно в конструкторе. Каждый раз, когда eclipse сообщает мне, что либо «Код конструктора TestData() превышает ограничение в 65535 байт», либо «Код статического инициализатора превышает ограничение в 65535 байт».
Есть 10000 целых чисел. Если каждое целое число составляет 4 байта (32 бита), то не будет ли это 40 000 байт? Действительно ли существует более 25 000 байт служебных данных в дополнение к данным, просто создающим массив?
Данные генерируются с помощью этого небольшого фрагмента Python:
#!/usr/bin/python
import random;
print "public final int[] RANDOM_INTEGERS = new int[] {";
for i in range(1,10000):
print str(int(random.uniform(0,0x7fffffff))) + ",";
print "};";
Вот небольшой образец:
public final int[] RANDOM_INTEGERS = new int[] {
963056418, 460816633, 1426956928, 1836901854, 334443802, 721185237, 488810483,
1734703787, 1858674527, 112552804, 1467830977, 1533524842, 1140643114, 1452361499,
716999590, 652029167, 1448309605, 1111915190, 1032718128, 1194366355, 112834025,
419247979, 944166634, 205228045, 1920916263, 1102820742, 1504720637, 757008315,
67604636, 1686232265, 597601176, 1090143513, 205960256, 1611222388, 1997832237,
1429883982, 1693885243, 1987916675, 159802771, 1092244159, 1224816153, 1675311441,
1873372604, 1787757434, 1347615328, 1868311855, 1401477617, 508641277, 1352501377,
1442984254, 1468392589, 1059757519, 1898445041, 1368044543, 513517087, 99625132,
1291863875, 654253390, 169170318, 2117466849, 1711924068, 564675178, 208741732,
1095240821, 1993892374, 87422510, 1651783681, 1536657700, 1039420228, 674134447,
1083424612, 2137469237, 1294104182, 964677542, 1506442822, 1521039575, 64073383,
929517073, 206993014, 466196357, 1139633501, 1692533218, 1934476545, 2066226407,
550646675, 624977767, 1494512072, 1230119126, 1956454185, 1321128794, 2099617717,
//.... to 10,0000 instances