O objectivo da refactorização do programa Java é efectuar alterações ao código em todo o sistema sem afectar o comportamento do programa. As ferramentas Java facultam assistência no código de fácil refactorização.
As ferramentas de refactorização suportam um número de transformações descritas no livro de Martin Fowler Refactoring: Improving the Design of Existing Code, Addison Wesley 1999, tais como o Método de Extracção, Variável Local Inline, etc.
Ao executar uma operação de refactorização, pode opcionalmente pré-visualizar todas as alterações resultantes de uma acção de refactorização, antes de escolher levá-las a cabo. Ao pré-visualizar uma operação de refactorização, será notificado acerca de potenciais problemas e ser-lhe-á apresentada uma lista das alterações que serão executadas pela acção de refactorização. Se não pré-visualizar uma operação de refactorização, a alteração será efectuada na sua totalidade e serão apresentados quaisquer problemas resultantes. Se for detectado um problema que não permita a continuação da refactorização, a operação será interrompida e será apresentada uma lista de problemas.
Os comandos de refactorização estão disponíveis nos menus contextuais de várias vistas Java (por exemplo, Explorador de Pacotes, Esquema) e editores. Muitos comando "aparentemente simples", tais como Mover e Mudar o nome, são na verdade operações de refactorização, uma vez que movimentar e mudar o nome de elementos Java frequentemente exige alterações em ficheiros dependentes.
As refactorizações não só podem ser executadas interactivamente, mas também a partir de scripts de refactorizações. A maioria das refactorizações disponíveis no menu Refactorizar são armazenadas no histórico de refactorizações do espaço de trabalho, de modo a serem utilizadas posteriormente em scripts de refactorizações. As ferramentas de refactorização ajudam na criação de scripts de refactorização baseados em refactorizações no histórico de refactorizações do espaço de trabalho. Os scripts de refactorizações podem, então, ser aplicados a um espaço de trabalho arbitrário. Aplicar um script de refactorização lança um assistente de refactorização que reproduz as refactorizações como se tivessem sido iniciadas pelo utilizador originalmente responsável pela sua criação.
Relacionadas com scripts de refactorizações, as ferramentas de refactorização oferecem uma refactorização para migrar um Ficheiro JAR para um versão mais próxima, utilizando informações sobre refactorizações para evitar anular alterações no seu espaço de trabalho após a migração.

Criar scripts de refactorizações
Aplicar scripts de refactorizações
Procurar o histórico de refactorizações

Acções de refactorização
Assistente de refactorização
Preferências Java