I currently use IntelliJ IDEA, most often
- Rename (it can also rename getters / setters and links in comments, literals, and even non-Java files such as Hibernate mapping files).
- Enter variable / constant / field / parameter
- Internal variable / constant / field
- Retrieval method, of course (mother of all refactoring)
- Change method signature (very useful)
And then there is much more that is needed less often, but when they are needed, they are badly needed:
- Extract Interface / Superclass / Class
- Move method / class
Although renaming looks somewhat trivial, it is still the most important. Finding good and best names for my program elements is an ongoing activity. Good names can significantly affect the readability of a program.
The OTOH refactoring archetype is the extraction method, because it is much more difficult to automate. There can be many pitfalls, such as a possible collision of names with the supertype method (or even worse: unintentionally overriding), input / output parameters, etc. Thus, it was a kind of threshold test for automatic refactoring tools for a long time, although, I believe that by now ordinary people are doing a good job of this.
source share