Это называется оценкой короткого замыкания, и оно является общим для всех языков, с которыми я когда-либо работал (C, C ++, C #, Java, Smalltalk, Javascript, Lisp), за исключением VB, VB.NET и Fortran.
На самом деле это довольно полезная функция. Без короткого замыкания вы не сможете сделать это:
if (a != null && a.isBlank())
Без короткого замыкания вам пришлось бы иметь вложенные операторы if, потому что вторая часть вызвала бы ошибку, если a было нулевым.