Dúvidas Java

Java é Linguagem ou Plataforma?
É possível voltar ao um .java um arquivo .class?
Diferença de == ou equals? Quando usar quem?
Java é casesensetive, mas em comparação de string também?

Obrigado…

olá javamail,

espero que ajude e espero que também esteja certo hahah:

P: Java é Linguagem ou Plataforma?
R: Os 2.

P: É possível voltar ao um .java um arquivo .class?
R: Sim é possível, por exemplo através de um decompiler.

P: Diferença de == ou equals? Quando usar quem?
R: Acho q esse link explica melhor que eu(eita preula eu não sei explicar(e talvez nem a diferença)hahah²!) http://javafree.uol.com.br/artigo/3932/Comparar-variaveis-==-ou-equals.html
http://www.guj.com.br/posts/list/66620.java

P: Java é casesensetive, mas em comparação de string também?
R: Sim.

Boa noite galera,

Sem nenhuma pretenção de estar 100%… só pra alimentar uma discussão saudavel.

Java é Linguagem ou Plataforma?
Na minha opinião é uma plataforma.

É possível voltar ao um .java um arquivo .class?
Sim, embora, o resultado pode não ser exatamente igual ao fonte original, as vezes até com um comportamento diferente do esperado.
Eu ja tive problema principalmente em clausulas “catch”.

Diferença de == ou equals? Quando usar quem?
Para comparação de String´s utilizar o equals, o == compara se os objetos são os mesmos e não se o conteudo deles esta igual.
No caso de tipos primitivos vc usa o ==.
Para cada classe é necessário verificar o funcionamento do equals, por exemplo, para ao comparar dois objetos Long o equals ira retornar true se o value dos dois for igual.

Java é casesensetive, mas em comparação de string também?
Sim.

As explicações estão meio curtas, mesmo porque meu conhecimento teórico não é dos melhores, assim, assim mais informações ou correções seriam muito bem vindas

[]s

No string o método equals é case sensitive. Porém a classe String já possui um método chamado equalsIgnoreCase, que faz o teste sem considerar maiúsculas e minúsculas.

Ainda é possível comparar strings desprezando acentuação, através da classe Collator:
http://www.guj.com.br/posts/list/48001.java#250910

Somos 2 :smiley:

concordo plenamente, tirando o fato q eu nem pesquisei ainda por ai hahaha

[quote]No string o método equals é case sensitive. Porém a classe String já possui um método chamado equalsIgnoreCase, que faz o teste sem considerar maiúsculas e minúsculas.

Ainda é possível comparar strings desprezando acentuação, através da classe Collator:
http://www.guj.com.br/posts/list/48001.java#250910[/quote]

uia! :shock: acho que eu nunca precisei usar mas é bom saber heheh

  • Sendo uma platoforma, ela me disponibiliza outra linguagem além do próprio java
  • Então para comparar string num devo usar o == ? e o equas serve para Integer?

Segundo o wikipedia sim:
A palavra Java usualmente é uma referência a linguagem de programação Java, que é a primeira linguagem criada pela Sun Microsystems para a JVM. A segunda linguagem criada pela Sun Microsystems para a JVM é chamada de Groovy, uma linguagem mais dinâmica, inspirada em linguagens como Python, Ruby e Smalltalk. Também existem implementações para a linguagem Python, a Jython, e para a linguagem Ruby, a JRuby.

como eu ainda estou engatinhando heheh, só li algumas coisas a respeito de Python e RubyOnRails.
alguém ai com + exp p/ ajudar hehe?

A máquina virtual do java (JVM=Java Virtual Machine) é responsável por compilar código fonte em bytecodes (arquivos .class).

Estes bytecodes devem ser capazes de ser interpretados pela mesma JVM e executados.

Alguma coisa como abaixo

[quote]Código Fonte Java ==>> Compilado em bytecode pela JVM ==>> interpretado pela JVM

Código Fonte Ruby ==>Compilado em bytecode pela JVM ==>> interpretado pela JVM[/quote]

Só um detalhe. O Groovy não é uma linguagem criada pela Sun Microsystems.
É do desenvolvimento próprio do Laforge.

Quanto ao ==.

Use para:

  1. Comparar tipos primitivos: boolean, byte, short, int, long, float e double.
  2. Testar se dois objetos referem-se à mesma instância.

Então, se você está comparando classes, provavelmente vai usar o equals. Não interessa se é String, Integer, Long, Double, vai usar equals.

Com ==, você está testando se os objetos são os mesmos. Dois objetos do tipo Integer podem conter o mesmo valor, mas serem objetos diferentes, por exemplo:

[code]Integer a = new Integer(10);
Integer b = new Integer(10);
Integer c = a;

System.out.println(a == b); //False. São objetos diferentes.
System.out.println(a.equals(b)); //True, tem o mesmo valor.
System.out.println(a == c); //True. a e c referem-se ao mesmo objeto.[/code]

No java, não existem exceções para essa regra.

Os enums, por exemplo, podem ser comparados com == pois representam um conjunto fixo de objetos.
Existe também o caso do auto-boxing (na comparação de um tipo primitivo int com o tipo Integer). Nesse caso, é importante entender a conversão que o java faz.
Esse código:

Integer a = 10; int b = 10; System.out.println(a == b); //imprime true

É convertido para isso:

Integer a = Integer.valueOf(10); int b = 10; System.out.println(a.intValue() == b); //imprime true

Essa questão de primitivo, em teoria o que seria um tipo primitivo e um tipo Objeto.?
Notei também que java não possui primitivo para string?
Então é possível programar em outra linguagem? e executar pela JVM?

Alguém?