Если вы не знаете, что происходит под капотом, у JDK есть очень мощный инструмент под названием javac . Просто скомпилируйте эти 2 класса и сравните их байт-код (на этот раз я сделал это для вас). Итак, первый
public class YouCantAvoidNullPointerLikeThat {
public static void main(String[] args) {
if((5 < 10) && (5 < 6)) {
//run some code;
}
}
}
дает вам этот байт-код
javap -c YouCantAvoidNullPointerLikeThat.class
Compiled from "YouCantAvoidNullPointerLikeThat.java"
public class YouCantAvoidNullPointerLikeThat {
public YouCantAvoidNullPointerLikeThat();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: return
}
И следующий пример:
public class YouCantAvoidNullPointerLikeThat {
public static void main(String[] args) {
if(5 < 10) {
if(5 < 6) {
//run some code;
}
}
}
}
дает вам байт-код как
javap -c YouCantAvoidNullPointerLikeThat.class
Compiled from "YouCantAvoidNullPointerLikeThat.java"
public class YouCantAvoidNullPointerLikeThat {
public YouCantAvoidNullPointerLikeThat();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: return
}
Так что да, результат этих 2 равен