Значение 0_0 в Java 7

Я прочитал, что в Java7 мы можем теперь написать это смешное утверждение:

public static boolean isZero(int O_O){
  return O_O == 0_0;
}

Вопрос: что именно означает 0_0 в этом контексте?

Ответ 1

Подчеркивание символов в числовых литералах разрешено в Java 7 только для целей читаемости. Из javadocs:

В Java SE 7 и более поздних версиях любое количество символов подчеркивания (_) может появляются где-нибудь между цифрами в числовом литерале. Эта особенность позволяет вам, например, разделять группы цифр в числовом литералы, которые могут улучшить читаемость вашего кода.

Ответ 2

В Java 7 вы можете добавить символы подчеркивания для повышения удобочитаемости литералов числа:

int oldMillion = 1000000;
int newMillion = 1_000_000;

Это особенно полезно для двоичных данных:

byte oldMax = 0b01111111;
byte newMax = 0b0111_1111;

Ответ 3

Подчеркивания valid в числах, если они не являются первым символом, последним символом или непосредственно по обе стороны от 0x, 0b 1 и т.д. В основном между цифрами.

Например, 4_294_967_296 является более стандартным использованием этого.

Ваш код будет проверять, равен ли значение, равное нулю.

Однако это не десятичный int, а скорее восьмеричный int. 0_12 не равно 12 или 1_2. Вместо этого первая равна десяти десятичной.

1 В Java 1.7 добавлены бинарные литералы.