&& (AND) y || (O) en las declaraciones IF

Tengo el siguiente código:

if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){  
    partialHits.get(z).put(z, tmpmap.get(z));  
}

dóndepartialHits es un HashMap.
¿Qué pasará si la primera afirmación es cierta? ¿Seguirá Java verificando la segunda declaración? Porque para que la primera declaración sea verdadera, el HashMap no debe contener la clave dada, por lo que si se marca la segunda declaración, obtendréNullPointerException.
Así que en palabras simples, si tenemos el siguiente código

if(a && b)  
if(a || b)

lo vería Javab Sia es falso en el primer caso y sia ¿Es cierto en el segundo caso?

Respuestas a la pregunta(9)

Su respuesta a la pregunta