В этом нет ничего странного:
&
Побитовый оператор bit-and
принимает двоичное представление двух чисел и выполняет a&b
на этих битах.
1010
приведет к 0 в случае:
- a == 0 || b == 0
- a, b различаются по каждому, но где один из них имеет бит.
СОВЕТ .
У меня для вас очень важный намек. НЕ допускайте, чтобы Java работала не так, как должна. Вероятно, это проблема в вашей логике кода. Ваш заголовок должен быть: Java-оператор и не работает, поскольку я ожидал, что он сработает . В конце концов, Java всегда работает в соответствии со спецификацией. Проблемы всегда с логикой. Иногда очевидна, иногда логика и знания о том, как работают компьютеры (и JVM).