Сокеты & ndash; Разные байты из Python и Java

Если вы используете Grail's Framework, просто разрешить ленивое исключение инициализации с помощью ключевого слова Lazy в определенном поле в классе домена.

Пример:

class Book {
    static belongsTo = [author: Author]
    static mapping = {
        author lazy: false
    }
}

Найти дополнительную информацию здесь

2
задан Cody Hafemeister 3 March 2019 в 21:27
поделиться

1 ответ

Байт имеет 8 битов, что означает, что вы можете иметь максимальное значение 0xff в качестве значения.

Но Java использует подписанный байт, что означает, что msb зарезервирован для подписанного бита. Это оставляет вам только 7 битов для вашего значения, поэтому вы можете хранить максимум 0x7f в байтовой переменной. Любое число больше 0x07f приведет к переполнению.

Попробуйте использовать массив int. Поскольку int использует 4 байта (32 бита), следовательно, всегда будет место для 8 битов.

использовать byte [] для чтения из потока, а затем скопировать содержимое в int [], использовать int intArr[i] = byteArr[i] & 0xFF; для i-го значения из байта [], чтобы избежать отрицательных чисел из-за переполнения байтов

0
ответ дан nits.kk 3 March 2019 в 21:27
поделиться
Другие вопросы по тегам:

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