Existe uma diferença entre usar um operador lógico ou um operador bit a bit em um bloco if em Java?

O conteúdo de ambos os seguintes se blocos deve ser executado:

if( booleanFunction() || otherBooleanFunction() ) {...}
if( booleanFunction() | otherBooleanFunction() ) {...}

Então, qual é a diferença entre usar| ou usando||?

Nota: Eu olhei para isso e encontrei minha própria resposta, que incluí abaixo. Por favor, sinta-se livre para me corrigir ou dar a sua opinião. Certamente há espaço para melhorias!