Outros modificadores que se aplicam às classes são
final,
abstract e
strictfp. Uma classe é marcada como final quando se deseja que os seus métodos não possam ser sobrescritos. Isso significa que se uma classe A é declarada como final, então uma classe B não pode estender A. Uma classe abstrata por outro lado é um classe que jamais pode ser instanciada. Sua razão de ser, então, é que ela seja estendida por outra classe, que, então, irá implementar os métodos abstratos da primeira, caso eles existam. Se uma classe tem métodos abstratos, então a classe deve ser marcada como abstrata. Obviamente, uma classe não pode ser marcada como final e abstract ao mesmo tempo. O modificador strictfp serve para indicar em um método ou em uma classe, que as operações de ponto flutuante seguem o padrão especificado pela IEEE.
Java possui ainda mais dois modificadores para variáveis de instância e um para métodos. São eles, respectivamente: transient, volatile e native. O modificador transient serve para marcar uma variável de instância que deverá ser ignorada em um processo de serialização.
volatile serve para assegurar que uma determinada variável de instância tendo por referência a memória principal da JVM e não a memória local da thread. Em algumas situações, 3 threads diferentes podem ter acessado a mesma variável e alterado o seu valor, sem, no entanto, que eles tenham propagado para a memória. Utilizando-se o marcador volatile, evita-se esse tipo de situação. Já o modificador native de métodos serve para indicar que o método é implementado de maneira dependente da plataforma, provavelmente chamando alguma biblioteca em C.