Meus cumprimentos a todos.Muitas vezes fazemos as coisas sem saber o pq elas se procedem desta ou daquela forma.Partindo deste principio tentei fazer alguns teste sobre o tamanho de um objeto definido por mim.Crie esta classe e este metodo para ver o tamanho dela:
import java.io.Serializable;
public class Cliente implements Serializable
{
private char[] sNome;
private char[] sSobreNome;
private char[] sCidade;
public Cliente(char[] nome,char[] sobreNome,char[] cidade)
{
sNome = new char[35];
sSobreNome = new char[35];
sCidade = new char[30];
this.sNome = nome;
this.sSobreNome = sobreNome;
this.sCidade= cidade;
}
}
e o metodo
public static int sizeof(Object o)
{
int tam =0;
try
{
ByteArrayOutputStream ba = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ba);
oos.writeObject(o);
tam = ba.size();
//tam = ba.toByteArray().length;
}
catch (IOException ex)
{
JOptionPane.showMessageDialog(null,ex.toString());
}
return tam;
}
Apos executado tive como resultado 183 (considerei metodos tambem q nao foram postados).Considerando q, neste caso, minha classe tem atributos nome,sobre e cidade estaticos com tamanho 35,35 e 30, respectivamente, se a soma do tamanho das variaveis tem 100 e java considera cada caracter com 2 bytes entao teria 200 bytes no minimo.
Assim, somado com o tamanho de alguma referencia para o objeto e para controle dos metodos daria mais de 200.Logo, nao entendi qual o logica q java usa para este caso e peço a quem souber me responder.Desde jah agradeço.
Valeu
Carlos Martins