Массив байтов неизвестной длины в Java

Массив a является постоянным массивом символов, он полностью инициализируется во время компиляции, а также получает адрес памяти для запоминания компилятором, поэтому он может распадаться на указатель в шаблоне.

Но p является указателем к постоянному массиву символов, но сам указатель не является константой времени компиляции и может быть изменен для указания на другие строки, и это not инициализируется во время компиляции, но либо во время соединения (что происходит после компиляции), либо когда программа загружается в память. Адрес p известен во время компиляции, но не адрес строкового литерала p указывает на.


Чтобы развернуть по причине, что адрес строкового литерала не является известная во время компиляции, потому что она помещается в специальный сегмент для чтения с помощью генератора кода компилятора, и этот сегмент только для чтения затем объединяется с сегментами только для чтения из других блоков перевода при связывании. Вот почему окончательный адрес строкового литерала не может быть известен до момента связывания (как можно раньше).

67
задан GEOCHET 19 March 2009 в 23:06
поделиться

1 ответ

Попробуйте ByteArrayOutputStream . Можно использовать write( byte[] ), и это вырастет по мере необходимости.

111
ответ дан Duncan Jones 7 November 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: