Qual a diferença de usar
String myName = new String(?Fred Smith?);
ou
String myName = ?Fred Smith?;
Não entendi o conceito
Obrigado.
Qual a diferença de usar
String myName = new String(?Fred Smith?);
ou
String myName = ?Fred Smith?;
Não entendi o conceito
Obrigado.
Em uma vc cria uma um novo objeto String e atribui a esse novo objeto o valor.
em outro vc atribui o valor pra String.
entendeu ??
String s = new String( "EU AMO O PORTAL JAVA" )
esse código cria uma variavel de referencia s, logo instancia uma nova String na memoria e atribui a s…
String s = "ELE AMA O PORTAL JAVA"
agora pra esse codigo vc tem q enteder o pool de strings de Java… como objetos strings tendem a ser comuns em programas, e ser muitos, java usa um pool de strings pra colocar as strings q são iguais, mas se vc usar o operador new pra criar uma, vc tera 2 objetos strings na memoria, vejamos…
String s = “abc”
o java vai criar um novo objeto string na memoria com o valor “abc”, agora:
String s2 = “abc”
o java só vai criar uma nova referencia pra apontar pro MESMO objeto string na memoria… mas qnd vc fizer:
s = s + “def”;
o objeto s2 continuara referenciando “abc”, mas o java vai criar uma nova string “abcdef” e fará a variavel s referenciar… agora se vc fizer:
String s3 = new String( “abcdef” );
o java nao vai fazer s3 apontar pro mesmo objeto “abcdef” q esta no pool… vai criar outro objeto String com o conteudo “abcdef”, mas em outro local de memoria, definitivamente, vc tera 2 objetos String com o valor “abcdef”
sacou? hehehe 
Blz… vou até entrar no meio da discurssão aqui… se me permitem… ehhe
Queria saber qual a vantagem então de se criar, instanciar um objeto String?
teria alguma aplicação pratica? um exemplo que ilustrasse a vantagem?
Grato…
Blz… vou até entrar no meio da discurssão aqui… se me permitem… ehhe
Queria saber qual a vantagem então de se criar, instanciar um objeto String?
teria alguma aplicação pratica? um exemplo que ilustrasse a vantagem?Grato…
nenhuma se vc estiver criando uma string a partir de um valor “asdasd”
mas o construtor da classe string pode receber um Array de bytes, de chars, uma StringBuffer…
ai deve-se usae o construtor instanciando o objeto
Blz… vou até entrar no meio da discurssão aqui… se me permitem… ehhe
Queria saber qual a vantagem então de se criar, instanciar um objeto String?
teria alguma aplicação pratica? um exemplo que ilustrasse a vantagem?Grato…
nenhuma se vc estiver criando uma string a partir de um valor “asdasd”
mas o construtor da classe string pode receber um Array de bytes, de chars, uma StringBuffer…
ai deve-se usae o construtor instanciando o objeto
Beleza pessoal…agora entendi a diferença. Vcs teriam algum código que identifica a real necessidade de se utilizar new String() ? Se não for pedir demais…
Obrigado
vcs estão olhando pelo lado contrario das coisas, Strings são objetos, como todos os objetos elas tem seu construtor… o certo é instanciar pelo construtor, mas como strings são usadas por todo o código, tem esse atalho de simplesmente atribuir a um literal string…
é menos performatico fazer isso :
String a = new String("adskj");
String b = new String("adskj");
String c = new String("adskj");
String d = new String("adskj");
ou isso :
String a = "adskj";
String b = "adskj";
String c = "adskj";
String d = "adskj";
é menos performatico fazer isso :
String a = new String("adskj"); String b = new String("adskj"); String c = new String("adskj"); String d = new String("adskj");ou isso :
String a = "adskj"; String b = "adskj"; String c = "adskj"; String d = "adskj";
da na mesma… a diferença é q na primeira tu ta instanciando explicitamente, e na segunda ta deixando isso pro compilador fazer…
Não são a mesma coisa!
No primeiro caso, você tá criando 4 objetos String no heap, mais um no pool de strings.
No segundo caso, só 1 objeto é criado, e todas as variáveis referenciam o mesmo objeto.