A diferença entre Java & &&: & é um operador de bits e um operador lógico. Ambos os lados de & podem ser expressões int ou booleanas. Quando os dois lados de & são int, os números de ambos os lados do operador devem ser convertidos em números binários antes de executar operações. Os dois lados do curto -circuito e (&&) devem ser expressões booleanas.
Eu acho que muitas pessoas vão encontrá -lo ao aprender Java ou durante as entrevistas
&e&&
No entanto, se você realmente não entende o que eles significam, isso causará muitos problemas em seu pensamento
Neste blog, depois de terminar de lê -lo, você descobrirá que é fácil distingui -los
Aqui está minha demonstração
/**
*
*/
pacote com.b510.test;
/**
* @Author Jone Hongten
* @create Data: 2013-11-2
* @version 1.0
*/
Teste de classe pública {
public static void main (string [] args) {
String str = null;
if (str! = null &&! "". Equals (str)) {
// Faça algo
}
if (str! = null &! "". Equals (str)) {
// Faça algo
}
}
}
Podemos ter um pouco de borrão agora, então vamos dar uma olhada nos problemas de circuito de & &&:
para:&&
if (str! = null &&! "". Equals (str))
Quando: str! = NULL, a seguinte execução será realizada:! "". Equals (str)
Se: str! = Nulo é falso, então, neste momento, o programa está em um curto -circuito, então! "". Equals (str) não será executado.
Mas para: &
if (str! = null &! "". Equals (str))
Independentemente do resultado de str! = Nulo (ou seja, verdadeiro, falso), o programa será executado:! "". Equal (str)
Resumo dos problemas do circuito:
Para: & -> Não importa o quê, o programa nos lados esquerdo e direito do símbolo "&" será executado
Para: && -> o programa no lado direito do símbolo "&&" será executado apenas se o programa no lado esquerdo do símbolo "&&" for true (true).
Vamos falar sobre as regras de operação abaixo:
Pois: & -> Enquanto um dos lados esquerdo e direito for falso, é falso; Somente quando todos são verdadeiros, o resultado é verdadeiro
Para: && -> enquanto o lado esquerdo do símbolo for falso, o resultado será falso; Quando o lado esquerdo é verdadeiro e o lado direito é verdadeiro, o resultado é verdadeiro
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!