Une variable qui ne peut avoir qu'une des deux valeurs suivantes, vrai ou faux, est une variable de type booléen, et vrai et faux sont des quantités directes booléennes. Vous pouvez définir une variable booléenne nommée state à l'aide de l'instruction suivante :
état booléen = vrai
Cette instruction initialise l'état de la variable avec une valeur vraie. Vous pouvez également utiliser l'instruction d'affectation pour attribuer une valeur à une variable booléenne. Par exemple, la déclaration,
état = faux
Définissez la valeur de la variable state sur false.
Actuellement, nous ne pouvons pas faire grand-chose de plus que d'attribuer des valeurs aux variables booléennes, mais comme vous le verrez dans le chapitre suivant, les variables booléennes sont utiles lors de la prise de décisions dans un programme, en particulier lorsque nous pouvons utiliser des expressions pour générer un It. est plus utile pour les résultats booléens.
Il existe plusieurs opérateurs qui combinent des valeurs booléennes, notamment : Boolean AND (AND), Boolean OR (oR) et Boolean NOT (qui correspondent respectivement à &&, 11 et !), ainsi que des opérateurs de comparaison qui produisent des résultats booléens. Plutôt que de les apprendre de manière abstraite maintenant, nous nous reportons au chapitre suivant, où nous pourrons voir dans des exercices comment les appliquer pour modifier l'ordre d'exécution d'un programme.
Une chose que vous devez noter est que la variable booléenne est différente des autres types de données de base. Elle ne peut pas être convertie en un autre type de base, et les autres types de base ne peuvent pas être convertis en type booléen.
Comparaison de trois méthodes de génération d'objets booléens en Java
La première manière courante par laquelle Java génère des objets booléens consiste à utiliser l'opérateur new
Booléen boolean1 = new Boolean(1==1);
La seconde consiste à utiliser la méthode statique valueOf
Booléen boolean1 = Boolean.valueOf(1==1);
Le troisième type est la boxe automatique après JDK1.5
Booléen booléen1 = 1==1 ;
Quelle est la différence entre ces trois méthodes ?
Regardons d'abord un morceau de code
Boolean[] boolean1 = new Boolean[100];Boolean[] boolean2 = new Boolean[100];Boolean[] boolean3 = new Boolean[100];for (int i = 0; i < 100;i++){ boolean1[i ] = Boolean.valueOf(1==1);}for (int i = 0;i < 100;i++){ boolean2[i] = new Boolean(1==1);}for (int i = 0; i < 100;i++){ boolean3[i] = 1==1;}System.out.println("valueOf: " + String.valueOf(boolean1[1] == boolean1[2]));System.out.println("nouveau Boolean : " + String.valueOf(boolean2[1] == boolean2[2]));System.out.println("auto wrap: " + String.valueOf(boolean3[1] == boolean3[2]));
Le résultat est :
valueOf : truenew Booléen : falseauto wrap : true
Pourquoi cela se produit-il ?
La raison en est que l'objet booléen créé avec new crée continuellement un nouvel objet instance, tandis que valueOf renvoie les variables membres statiques de la classe booléenne et ne génère pas un grand nombre de variables d'instance identiques. L'emballage automatique est similaire à valueOf.
En fait, le document jdk recommande également d'utiliser valueOf au lieu de new pour créer des objets de classe booléenne.