Objetos na memoria

Ola pessoal tudo bom, minha duvida é a seguinte:

O que eu poderia dizer a respeito de objetos criados na memoria referente a estes exemplo abaixo:

EXEMPLO 1;
Integer A = 1;
Integer B = A;
Integer C = B;

EXEMPLO 2;
Integer A = 1;
Integer B = 1;
Integer C = 1;

EXEMPLO 3;
int a = 1;
int b = a;
int c = b;

EXEMPLO 4;
int a = 1;
int b = 1;
int c = 1;

Desde ja agradeço a atenção de todos!!

nao entendi

é mais ou menos assim…

No exemplo 1 eu tenho tres variaveis (A,B,C) referenciando-se para o mesmo objeto 1.

Eu posso dizer o mesmo para os outros 3 exemplos ???

Obrigado

Integer A = 1 é um sinônimo para

Integer A = Integer.valueOf (1), que por sua vez faz o seguinte:

Se -128 <= n <= +127, retorna um Integer obtido de um array de Integer que é pré-alocado no início do programa.
Se n < -128 ou n > +127, retorna um new Integer(n).

A partir daí você pode ficar brincando de contar objetos (que coisa mais inútil… )

int a = 1;

é uma atribuição de um não-objeto (o valor 1, inteiro) para uma variável não-objeto.

Ta me Cheirando tarefa de casa =) .

No link abaixo vc encontra um aplicativo bastante interessante ele mostra para onde estao sendo apontados as variaveis de referencia
e quantos objetos foram criados .
http://www.bluej.org/

Bom Estudo .

pois é, o Integer.valueOf nesse caso vai retornar uma referencia para o mesmo objeto do cache, fazendo com que nenhum objeto seja criado (apenas durante a primeira vez de todas). Esse tipo de pergunta é meio pegadinha por causa desse cache.