Ir ao conteúdo
  • Cadastre-se
nanquinote

String

Recommended Posts

Olá, qual a diferença entre declarar strings das duas formas abaixo:

 

1. String texto; 

2. String texto = new String();

 

Se String é uma classe, porque posso fazer da 1o forma, como se fosse um tipo primitivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

"String texto;"

Isto é uma declaração não inicializada, caso você tente acessar esta variável sem atribuir nenhum valor irá receber um erro de compilador. Neste caso, utilize uma das formas abaixo.

 

"String texto = new String();"

Isto é uma declaração inicializada, assim como:

- String texto = null;

- String texto = "super texto";

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

na vdd EU ACHO que todos os "tipos primitivos" são classes... e criaram a primeira sintaxe que você citou pra facilitar a implementação 

 

// alguns exemplos
String teste = new String("teste");
Integer num = new Integer(90);
Boolean val = new Boolean(false);
Double num2 = new Double(100.80);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipos primitivos não são classes, eles podem sofrer autoboxing para as classes equivalentes.

 

Tipos primitivos são tipos especiais, com regras específicas, como tamanho fixo, imutáveis, operações diretas. A classe String, apesar de não ser um tipo primitivo, também possui algumas regras.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, Cweiler disse:

 

Tipos primitivos não são classes, eles podem sofrer autoboxing para as classes equivalentes.

 

Tipos primitivos são tipos especiais, com regras específicas, como tamanho fixo, imutáveis, operações diretas. A classe String, apesar de não ser um tipo primitivo, também possui algumas regras.

 

 

 

então falei besteira kkkkkkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 horas atrás, nanquinote disse:

@Nikowlowisky ,

 

Acho que deve ser isso mesmo

 

@nanquinote, não é isso. Implementação, no contexto da conversa, teria a ver com a implementação do compilador Java, sendo que esta sintaxe foi copiada da linguagem C/C++. A diferença de C para Java é que, em C, toda a declaração não inicializada recebe um valor default, o que não acontece em Java.

 

Ou seja, conforme a sua pergunta "Qual a diferença", as 2 formas de declaração não são compatíveis, muito pelo contrário, são completamente diferentes para o compilador.

 

A resposta para a sua pergunta está na 2ª postagem deste tópico, caso não tenha entendido bem pode perguntar mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×