* Tipos primitivos são tipos pré-definidos pela linguagem Java e seus nomes são reservados, similar ao que ocorre com os operadores. Estes são os tipos primitivos: byte, short, int, long, float, double, char e boolean.
Vamos realizar um teste prático:
1) Crie um arquivo chamado Comparacao.java e salve com o seguinte código em Java:
public class Comparacao {
public static void main(String []args) {
/*
Note que as variáveis 1, 2, 3 e 4 são criadas pelo compilador, que percebe que são iguais,
criando apenas uma área da memória com o texto "abcdef" e associando ele para as 4 primeiras
variáveis
*/
String var1 = "abcdef";
String var2 = "abc" + "def";
String var3 = "" + "abcdef";
String var4 = "abcdef" + "";
/*
As variável 5 é criada durante a execução, pois no momento da compilação o seu conteúdo não é
conhecido, então o texto "abcdef" será montado em outra área de memória
*/
String var5 = var1 + "";
String parte1 = "abc";
String parte2 = "def";
/*
Aqui ocorre o mesmo que ocorreu com a variavel 5, ou seja, a variável 6 é composta por duas outras
variáveis, que serão acessadas somente em tempo de execução, sendo criadas em outra área de memória
*/
String var6 = parte1 + parte2;
System.out.println("\n+++ Conteudo das variaveis");
System.out.println("var1-> " + var1);
System.out.println("var2-> " + var2);
System.out.println("var3-> " + var3);
System.out.println("var4-> " + var4);
System.out.println("var5-> " + var5);
System.out.println("var6-> " + var6);
System.out.println("\n+++ Comparacao com ==");
System.out.println("var1==var2 -> " + (var1==var2));
System.out.println("var1==var3 -> " + (var1==var3));
System.out.println("var1==var4 -> " + (var1==var4));
System.out.println("var2==var3 -> " + (var2==var3));
System.out.println("var3==var4 -> " + (var3==var4));
System.out.println("var4==var5 -> " + (var4==var5));
System.out.println("var1==var5 -> " + (var1==var5));
System.out.println("var1==var6 -> " + (var1==var6));
System.out.println("var5==var6 -> " + (var5==var6));
System.out.println("\n+++ Comparacao com equals");
System.out.println("var1.equals(var2) -> " + (var1.equals(var2)));
System.out.println("var1.equals(var3) -> " + (var1.equals(var3)));
System.out.println("var1.equals(var4) -> " + (var1.equals(var4)));
System.out.println("var2.equals(var3) -> " + (var2.equals(var3)));
System.out.println("var3.equals(var4) -> " + (var3.equals(var4)));
System.out.println("var4.equals(var5) -> " + (var4.equals(var5)));
System.out.println("var1.equals(var5) -> " + (var1.equals(var5)));
System.out.println("var1.equals(var6) -> " + (var1.equals(var6)));
System.out.println("var5.equals(var6) -> " + (var5.equals(var6)));
}
}
2) Compile o seu programa:
javac Comparacao.java
3) Execute o seu programa:
java Comparacao
5) Teremos o seguinte resultado:
+++ Conteudo das variaveis
var1-> abcdef
var2-> abcdef
var3-> abcdef
var4-> abcdef
var5-> abcdef
var6-> abcdef
+++ Comparacao com ==
var1==var2 -> true
var1==var3 -> true
var1==var4 -> true
var2==var3 -> true
var3==var4 -> true
var4==var5 -> false
var1==var5 -> false
var1==var6 -> false
var5==var6 -> false
+++ Comparacao com equals
var1.equals(var2) -> true
var1.equals(var3) -> true
var1.equals(var4) -> true
var2.equals(var3) -> true
var3.equals(var4) -> true
var4.equals(var5) -> true
var1.equals(var5) -> true
var1.equals(var6) -> true
var5.equals(var6) -> true
Conclusões:
Sobre o operador ==
Método equals