Я всегда считал, что оператор && в Java используется для проверки того, являются ли оба его булевых операнда true, а оператор & используется для выполнения битовых операций с двумя целыми типами.
Недавно я узнал, что оператор & также может использоваться, проверяя, являются ли оба его булевых операнда true, единственное отличие состоит в том, что он проверяет операнд RHS, даже если операнд LHS является ложным.
Является ли оператор & в Java внутренне перегружен? Или есть какая-то другая концепция?