Dúvida com ArrayList

Ola, pessoal. Sei que em java não existe ponteiro como em C, mas o resultado que estou obtendo é o mesmo de um ponteiro. No código abaixo, eu tenho uma ArrayList global povoada com 5 elementos, logo o .size() é 5. Quando atribuo essa lista a uma outra variável, esta segunda variável recebe o mesmo conteúdo da lista original, entretanto, quando eu mudo o valor da lista original, a segunda também é alterada (como se fosse apenas um ponteiro). Alguém sabe explicar o por que disso?

[code]ArrayList<int[][]> listaDePontos = new ArrayList();

public ArrayList<int[][]> func1(){
ArrayList<int[][]> aux = new ArrayList();

    aux = listaDePontos;
    System.out.println("tamanho da lista original:" +listaDePontos.size()); //exibe o valor 5
    System.out.println("tamanho da lista aux:" +aux.size()); //exibe o valor 5

    listaDePontos.clear();

    System.out.println("tamanho da lista original:" +listaDePontos.size()); //exibe o valor 0
    System.out.println("tamanho da lista aux:" +aux.size()); //exibe o valor 0

    return aux;

}[/code]

Não existe variável global em Java. Existe apenas o conceito de variável de instância, local ou de bloco.

De qualquer forma, quando você faz: aux = listaDePontos; Você está apontando a variável de referência aux para o mesmo objeto apontado pela variável de referência listaDePontos. Se você inserir o código: listaDePontos = new ArrayList();Será criado um novo objeto que será atribuído para a variável listaDePontos. Nesse momento, existirão dois objetos na heap e acada variável de referência estará apontando para um objeto diferente. Caso altere algum dos objetos o outro não será alterado.

Entenda que, em java, a variável, seja primitiva ou de referência, sempre é passada para a outra por valor.

No caso de variáveis de referência, o valor da variável é uma referência para um objeto. Quando vc diz que uma variavel de referencia é igual a outra variavel de referencia vc está dizendo que a referencia de uma seja passada para a outra.

Segue um artigo muito bom sobre esse tema: http://www.javaranch.com/campfire/StoryPassBy.jsp