Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque só as linhas A e C imprimem "abc"?

public class Testes {
    public static void main(String[] args) {
        System.out.println(new char[]{'a','b','c'}); // A
        System.out.println(new byte[]{'a','b','c'}); // B
        System.out.println("abc"); // C
        System.out.println(new String[]{"abc"}); // D
    }
}

Olá! Desculpe mas não entendi este exercício muito bem.... as linhas podem ser impressas no momento de sua inicialização?

porque umas linhas são impressas e outras não?

1 resposta
solução!

Oi Vinícius, é possível criar um objeto e na mesma instrução já passar sua referência para o println().

Arrays em Java são objetos, então existe uma sobrecarga do método println() que recebe um Object como parâmetro. Internamente ele chama o toString() do objeto. Por este motivo, para as seguintes linhas, você tem as saídas (toString do array):

System.out.println(new byte[]{'a','b','c'}); // [B@3ac42916
System.out.println(new String[]{"abc"}); // [Ljava.lang.String;@47d384ee

Porém existe uma outra sobrecarga que recebe um arrays de char). E por isso qundo temos um array de char ele mostra cada um dos caracteres:

System.out.println(new char[]{'a','b','c'}); // abc

Faz sentido? []'s

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software