nas duas declarações abaixo o array de objetos criado terá o mesmo tamanho já que nos dois casos eles vão apenas armazenar referências para os objetos dos dois tipos?
Thread arr1 = new Thread[5];
Sbronskly arr2 = new Sbronskly[5];
nas duas declarações abaixo o array de objetos criado terá o mesmo tamanho já que nos dois casos eles vão apenas armazenar referências para os objetos dos dois tipos?
Thread arr1 = new Thread[5];
Sbronskly arr2 = new Sbronskly[5];
Sim 
ok, obrigado, mais uma dúvida, no código abaixo, quando a linha “esta linha” é executada quantos objetos foram criados na heap no total? 5?
class QualquerCoisa {}
class Base {
private QualquerCoisa algumaCoisa;
public Base () {
algumaCoisa = new QualquerCoisa();
}
}
public class TesteBase {
public static void main (String [] args) {
Base [] b = new Base[2];
b[0] = new Base();
b[1] = new Base();
System.out.println("esta linha");
}
}
Na verdade, 6, nessa sequencia:
TesteBase
Base[]
Base
QualquerCoisa
Base
QualquerCoisa
Hmm, onde TesteBase tá sendo instanciado que não reparei?^
Isso são os objetos que voce diretamente instanciou, não esqueça que nesse exemplo existem 1 monte de objetos alocados sem voce perceber:
“essa linha” (String)
args (String[]) e todas String contidas nos array.
Isso sem mencionar os objetos estáticos como System.out
comentando a linha com o System.out.println e não passando nenhum argumento na linha de comando, serão 5?
Passando 0 argumentos args vai conter um array de tamanho zero.
então só o fato de declarar o parâmetro do método e chamar o método mesmo sem usar o parâmetro um objeto é criado? então são seis no total?
isso, 5
se tiver estudando pra prova de certificacao so leve em concideracao objetos que tenho um “new” explicito na frente, nao leve em consideracao a thread atual (main) nem os objetos do System
isso, 5
se tiver estudando pra prova de certificacao so leve em concideracao objetos que tenho um “new” explicito na frente, nao leve em consideracao a thread atual (main) nem os objetos do System
5? ok então vamos complicar um pouco:
class QualquerCoisa {}
class Base {
private QualquerCoisa algumaCoisa;
public Base () {
algumaCoisa = new QualquerCoisa();
}
}
public class TesteBase {
public static void main (String [] args) {
int i, j;
Base [][] b = new Base[2][];
b[0] = new Base[2];
b[1] = new Base[3];
for (i=0; i<b.length; i++) {
for (j=0; j<b[i].length; j++) {
b[i][j] = new Base();
}
}
}
}
quantos objetos foram criados na heap? 11?

eu contei 13:
1º - Base [][] b = new Base[2][];
2º - b[0] = new Base[2];
3º - b[1] = new Base[3];
4º - b[0][0] = new Base();
5º - ---- algumaCoisa = new QualquerCoisa();
6º - b[0][1] = new Base();
7º - ---- algumaCoisa = new QualquerCoisa();
8º - b[1][0] = new Base();
9º - ---- algumaCoisa = new QualquerCoisa();
10º - b[1][1] = new Base();
11º - ---- algumaCoisa = new QualquerCoisa();
12º - b[1][2] = new Base();
13º - ---- algumaCoisa = new QualquerCoisa();
está certo, eu contei um objeto array mas na verdade são 3
, um de duas dimensões e dois de uma dimensão
obrigado!