Talvez a classe String seja uma das 2 ou 3 mais utilizadas da API Java, mas mesmo assim é comum que programados saiam criando “blah,blah,blah”, sem ter idéia do que está acontecendo por baixo dos panos, e consequentemente sem poder tomar as melhores decisões com relação à segurança e performance.

Seguem algumas considerações sobre Strings em Java, cujos conhecimentos são importantes para que programadores tomem suas decisões:

  • Uma String é uma cadeia de caracteres. Caracteres em Java são representações no formato UTF-16;
  • No código-fonte, uma literal do tipo String é composta por zero ou mais caracteres delimitados por aspas duplas;
  • Uma  literal do tipo String é sempre compilada como um objeto da classe String;
  • Strings com o mesmo conteúdo  são na verdade o mesmo objeto. Observe
    String a = "Teste", b = "Teste";
    System.out.println(a == b);

    Irá imprimir “true”, porque a e b são referências ao mesmo objeto;

  • Objetos do tipo String são imutáveis. Sempre que uma instrução altera o conteúdo de uma String, ela está na verdade mudando a referência para um objeto recém-criado, ou um reaproveitado (caso o mesmo valor já exista na memória);
  • Concatenações entre Strings cujos resultados possam ser inferidos em tempo de compilação são feitas na compilação (entre literais, por exemplo);
  • Concatenações entre Strings cujos valores não possam ser conhecidos na compilação, implicam na criação de uma nova  instância da classe String;
  • A classe java.lang.StringBuilder, é uma sequência de caracteres desenvolvida para ser utilizada por uma única thread;
  • A classe java.lang.StringBuffer, é uma sequência de caracteres desenvolvida para que  suas instâncias possam ser acessadas e modificadas por várias threads de forma segura.

Leituras interessantes:

  1. http://pt.wikipedia.org/wiki/UTF-16
  2. http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5
  3. http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.3.3
  4. http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html
  5. http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html

Existem outras coisas importantes para se saber sobre Strings em Java, mas esse é, na minha opinião o pacote básico.

 

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

* Copy this password:

* Type or paste password here:

4 Spam Comments Blocked so far by Spam Free Wordpress

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Set your Twitter account name in your settings to use the TwitterBar Section.