Tengo curiosidad acerca de cómo funciona realmente Java cuando se trata de las declaraciones if
. (Nota: cuando digo "componente" a continuación me refiero a las partes idividual controladas por el estado, por ejemplo a
, b
, c
)Cómo maneja Java las declaraciones IF y la eficiencia
que es más eficiente en términos de cálculos?
if (a && b && c) { do stuff }
o
if (a) {
if (b) {
if (c) {
do stuff }
}
}
La razón por la que pido es porque es importante lo que hace de Java en la primera versión. ¿Comprueba cada cosa en la declaración o marca a
y si es false
y luego cancela el control del resto de la declaración?
Si este es el caso, entonces tiene sentido colocar el componente como el primer componente en la declaración.
Si se comprueba toda la declaración cada vez, tiene más sentido dividir los componentes en varias instrucciones diferentes, como en el segundo ejemplo.
Puede probarlo usted mismo fácilmente. – Howard
Supongo que al hacer una, byc funciones que imprimen cuando se llaman, ¿verdad? – Chro
@Howard: soy un gran defensor de probar cosas. Sin embargo, no creo que ejecutar algún código (o incluso mirar bytecodes) sea una buena forma de establecer si el comportamiento de cortocircuito está * garantizado *. Para esto, la especificación del lenguaje Java es el recurso definitivo. – NPE