English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Diferença entre & e && no Java: & é tanto um operador de bitwise quanto um operador lógico, os lados de & podem ser int ou expressões booleanas, quando os lados de & são int, é necessário converter os números dos lados do operador para números binários antes da operação, enquanto os lados do operador && devem ser expressões booleanas.
Muitas pessoas, ao aprender Java ou durante a entrevista, encontrarão isso
& e &&
No entanto, se você não entender realmente o significado deles, isso trará muita dificuldade em sua linha de pensamento
Neste blog, após você ler, perceberá que é fácil distingui-los
A seguir está meu demo
/**
*
*/
package com.b510.test;
/**
* @author Jone Hongten
* @create date:2013-11-2
* @version 1.0
*/
public class Test {
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 estar um pouco confusos, vamos ver primeiro os problemas de circuito de & e &&:
Para: &&
if(str != null && !"".equals(str))
Quando str != null, só então será executado: !"".equals(str)
Se str != null for false, neste momento, o programa está em uma situação de curto-circuito, então, !"".equals(str) não será executado.
Mas para: &
if(str != null & !"".equals(str))
Independentemente do resultado de str != null (ou seja, true, false), o programa executará: !"".equal(str)
Resumo de problemas de circuito:
Para: & -- De qualquer forma, o programa à esquerda e à direita do símbolo "&" será executado
Para: && -- Se o programa à esquerda do símbolo "&&" for verdadeiro (true), então será executado o programa à direita do símbolo "&&".
Vamos falar das regras de operação:
Para: & -- Se um dos lados esquerdo ou direito for false, o resultado será false; apenas quando todos forem true, o resultado será true
Para: && -- Se o símbolo à esquerda for false, o resultado será false; quando a esquerda for true e a direita também for true, o resultado será true
Agradecemos a leitura, esperamos que ajude a todos, obrigado pelo apoio ao site!