Pessoal o négocio é o seguinte, terminei de ler o livro Guia completo de certificação Java e agora estou lendo o "Java 2: certificação para programador & desenvolvedor Java2 " da Kathy Seirra.
Logo no começo do livro pintou uma dúvida, o livro da Kathy Sierra diz que o tamanho de um boolean “depende virtualmente da máquina”, já outro livro diz que o boolean tem 1 bit, alguem sabe qual dos dois está certo? Alguém sabe disser o que significa “depende virtualmente da máquina”? Mais uma dúvida, o modificador transient impede que os campos sejam serializados, mas o que significa dizer que um campo ou um objeto foi serializado?
Eu acredito na Kathy quando ela diz que depende da máquina.
Quanto a serialização, significa transformar o objeto que estava na memória da JVM em “algo diferente”, como um arquivo ou um stream para ser enviado pela rede.
Sobre boolean … o livro que afirmou que ele tem 1 bit está errado 
A especificação da linguagem não diz como deve ser implementado o tipo então a implementação fica a escolha da VM contanto que respeite o comportamento esperado para o tipo.
Veja!
Que eu saiba, o único “bit” que tem tamanho de 1 bit no Java padrão é aquele armazenado em um java.util.BitSet (obviamente descontando o “overhead”
).
O tamanho de um boolean é o que o compilador e a JVM acharem melhor. Por exemplo, se você fuçar naquele documento ultrafácil de ler ( The Java Virtual Machine Specification, 2nd Ed., vai ver isto:
[i]3.3.4 The boolean Type
Although the Java virtual machine defines a boolean type, it only provides very limited support for it. There are no Java virtual machine instructions solely dedicated to operations on boolean values. Instead, expressions in the Java programming language that operate on boolean values are compiled to use values of the Java virtual machine int data type.
The Java virtual machine does directly support boolean arrays. Its newarray instruction enables creation of boolean arrays. Arrays of type boolean are accessed and modified using the byte array instructions baload and bastore.2
The Java virtual machine encodes boolean array components using 1 to represent true and 0 to represent false. Where Java programming language boolean values are mapped by compilers to values of Java virtual machine type int, the compilers must use the same encoding
2 In Sun’s JDK releases 1.0 and 1.1, and the Java 2 SDK, Standard Edition, v1.2, boolean arrays in the Java programming language are encoded as Java virtual machine byte arrays, using 8 bits per boolean element.
[/i]
Isto em português quer dizer que se você tiver um array de boolean, internamente é considerado como um array de byte pela JVM da Sun, com um byte para cada boolean. Se você tiver uma variável boolean, ela pode ocupar 4 bytes (o tamanho de um int), mas isso depende da implementação e da versão - pode ser que isso tenha mudado no Tiger; depende de olhar o código gerado pelo javac da versão Java 5.0.