[Java] Différence entre == et égal

Journal d'étude de programmation

10 novembre 2020 Un bref mémorandum sur la façon d'utiliser la méthode equals pour comparer des chaînes et ==.

Différence entre == et epuals

J'entrerai immédiatement dans le sujet principal. Utilisez l'opérateur == pour comparer si deux valeurs sont égales dans un type primitif tel que int ou char. Pour les types de référence tels que le type String, comparez avec la méthode equals. Lorsque vous comparez avec == dans le cas d'un type de référence tel que le type String, comparez si la destination de référence est la même </ b>, et ne comparez pas si la valeur de destination de référence est la même. Exécutons-le réellement avec l'exemple de code.

Exemple de code


public static void main(String[] args) {
	//Initialisez les variables de type String str1 et str2 avec la même chaîne
	String str1 = "hello";
	String str2 = "hello";

	if(str1 == str2)
		System.out.println("str1=str2 (==Comparer avec) ");
	else
		System.out.println("str1≠str2 (==Comparer avec) ");

	//Ajouter la même chaîne
	str1 += "!";
	str2 += "!";

	if(str1 == str2)
		System.out.println("str1=str2 (==Comparer avec) ");
	else
		System.out.println("str1≠str2 (==Comparer avec) ");
	
	if(str1.equals(str2))
		System.out.println("str1=str2 (Comparer avec des égaux) ");
	else
		System.out.println("str1≠str2 (Comparer avec des égaux) ");
}

Résultat d'exécution


str1=str2 (==Comparer avec) 
str1≠str2 (==Comparer avec) 
str1=str2 (Comparer avec des égaux) 

Lorsque str1 et str2 des variables de type String sont initialisés avec la même chaîne de caractères et que la même chaîne de caractères est ajoutée, «false» est renvoyé par rapport à «==», et «true» est renvoyé par rapport à la méthode equals. Je reviens. Le type String est traité comme un type pseudo primitif au moment de la déclaration et de l'initialisation, mais il est utilisé comme type de référence lorsqu'une chaîne de caractères est ajoutée. Par conséquent, même si les valeurs sont identiques, la destination de référence est différente, donc la comparaison avec == renvoie false.

Références

Comparaison du type de base et comparaison du type de référence [Apprentissage rapide Java] Différence entre "==" et "égal" (explique comment refuser)

Recommended Posts

[Java] Différence entre == et égal
[Java] Différence entre Hashmap et HashTable
[JAVA] Différence entre abstrait et interface
[Java] Différence entre array et ArrayList
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
Différence entre final et immuable en Java
[Pour les débutants] Différence entre Java et Kotlin
Différence entre vh et%
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre i ++ et ++ i
Différence entre int et Integer en Java
[Java] Comprendre la différence entre List et Set
Différence entre next () et nextLine () dans Java Scanner
[Java] Différence entre "variable finale" et "objet immuable"
Différence entre produit et variante
Différence entre redirect_to et render
Différence entre redirect_to et render
Différence entre CUI et GUI
Différence entre les variables et les variables d'instance
Différence entre mockito-core et mockito-all
[Java] HashCode et remplacement égal
Différence entre classe et instance
Différence entre l'installation de bundle et de bundle
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
java Generics T et? Différence
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to
== et égal
[Java] Différence entre statique final et final dans les variables membres
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
[Java débutant] Différence entre la longueur et la longueur () ~ Je ne sais pas ~
[Java] Différence entre equals et == dans une chaîne de caractères qui est un type de référence
[Ruby] Différence entre obtenir et publier
Différence entre la méthode d'instance et la méthode de classe
Différence entre interface et classe abstraite
Différences entre Java "débutant" et Kotlin
[Terminal] Différence entre irb et pry
JavaServlet: différence entre executeQuery et executeUpdate
[Ruby] Différence entre is_a? Et instance_of?
Différence entre l'opérateur == et la méthode eqals
Différence approximative entre RSpec et minitest
[Rails] Différence entre find et find_by
Différence entre la variable d'instance et la variable de classe
[Java débutant] == opérateur et méthode equals
[Java] Relation entre H2DB et JDBC
Différence entre Thymeleaf @RestController et @Controller
Différence entre Stream map et flatMap
Comprendre equals et hashCode en Java
Différence entre le type primitif et le type de référence
Différence entre string.getByte () et Hex.decodeHex (string.toCharaArray ())