Diferença entre | (Tubo único) e ||

A diferença é que o | (tubo único) é bit a bit ou operador e quando também pode ser usado no projeto de condição.

por exemplo.

class CheckCondition {

public static boolean checkMe(int x)
{
System.out.println("checked");

if(x>10)
return true;
else
return false;
}
public static void main(String[] args)
{
int a=2,b=32,c=4;

if( checkMe(2) | checkMe(2) | checkMe(4)){
System.out.println("====");
}

if(checkMe(2) || checkMe(2) || checkMe(4)){
System.out.println("====");
}
}

}

No trecho de código acima, “|” verificará todas as partes da condição, enquanto “||” verificará em sequência começando da primeira. Se alguma condição na sequência for verdadeira, então || interrompe a verificação adicional. então || é mais eficiente em declarações condicionais.