It’s not necessarily bad, it’s just superfluous. Also, the actual variable name weights a lot. I would prefer for example if (userIsAllowedToLogin)
over if (b)
or even worse if (flag)
.
As to the performance concern, the compiler optimizes it away at any way.
As to the authoritative sources, I can’t find something explicitly in the Java Code Conventions as originally written by Sun, but at least Checkstyle has a SimplifyBooleanExpression
module which would warn about that.