2
respostas

Passagem de parâmetro por referência

Por que o valor da lista de aulas é passado por referência e não por copia ? Tem algum curso que esclareça isso?

    List<Aula> aulas = curso.getAulas();
        System.out.println(aulas);

        curso.getAulas().add(new Aula("Como executar um container", 5));

        System.out.println(aulas);
2 respostas

De acordo com minhas pesquisas, em java, variáveis primitivas são sempre passadas por valor. Já com objetos, o que é passado por valor é a chave que referencia o objeto no heap de memoria, dessa forma, as variáveis de dentro do objeto passado são referências às variáveis do objeto original.

Opa! Beleza?

Isso aí! Em Java, apenas primitivos são passados por cópia. Objetos são sempre passados por referência.

Existem métodos que clonam o objeto original e retornam uma referência pra essa cópia, mas o que é passado continua sendo uma referência... apenas para um outro objeto igual (clonado) ao primeiro.