Um atributo transient não é serializado junto com o restante do objeto.
Ex.:
public class Teste implements Serializable{
private int x;
private transient int y;
}
Ao serializar um objeto dessa classe somente o x será serializado o y não!
Marca um atributo como sendo “volatil”, indica que ele pode ser modificado aleatoriamente por varios segmentos e que não há grandes garantias de seu valor, isso inibe algum tipo de cache que a JVM possa tentar fazer com o valor da variavel, advertindo que ele pode ser modificado a qualquer momento.
Para proteger o codigo de acesso simultaneo por varias Threads, um metodo que modifica o valor de um atributo por exemplo, é recomendavel que seja synchronized, pois se mais de um segmento acessa-lo ao mesmo tempo, não há garantias de qual será o valor quardado lá, então com synchronized, só um pode acessar, os outros tem que esperar.
Marca um determinado metodo como sendo nativo, ou seja, é escrito em alguma linguagem nativa, geralmente C++, aí você carrega uma biblioteca (.dll, .so, etc) que contem a implementação desse metodo, a tecnologia usada nisso chama-se JNI (Java Native Interface), seve basicamente para implementar em outras linguagens coisas que não podem ser feitas em Java ou que ficam melhores em outras linguagens, mas que devem ser usadas dentro dos seus programas Java, geralmente implementações de bem baixo nivel.