|| = ou inclusivo, ou seja, ou um, ou outro ou ambos.
No caso:
intx=0;inty=10;if(x>=0||y<100){/*Aqui esse bloco iria ser executado pois:x é igual a 0y é menor que semOu seja se somente a primeira expressão for verdadeira ou se somente a segunda ou se ambas forem verdadeiras o que tem neste trecho será executado sem falta.*/}
| = ou exclusivo, ou um ou outro. Nunca ambos.
É o caso das exceptions, você só tem uma exception por vez. Ah, mas se for uma FileNotFoundException e uma IOException? Ele só irá capturar a IOException, visto que FileNotFoundException é uma exceção que estende IOException.