Qual a utilidade da palavra transient

Olá a todos, qual é a utilizadade/funcionalidade do modificador transient?

Quando devo usá-lo, quais as vantagens?

Bom, como houve um monte de opiniões nesse post citado, vou indicar exatamente para que serve “transient”.

Quando uma classe implementa java.io.Serializable, você às vezes precisa indicar que alguns membros de um objeto dessa classe não devem ser serializados.
Tipicamente trata-se de campos que são calculados (e portanto podem ser obtidos a partir dos outros campos) ou então campos que não podem ser serializados (um exemplo clássico é um java.io.OutputStream ou outra coisa que represente um arquivo. Não faz sentido serializar tal tipo de campo).
Se você tiver um campo desses, deve marcá-lo como “transient”. Um exemplo:

class Aluno implements Serializable {
    private double[] notas;
    private transient double media;  // a media pode ser obtida (calculada) a partir das notas
    private transient FileOutputStream arquivoComNotas; // este campo não deve ser serializado
}