The thing that can hot update classes is called HotSwap and is built into JVM. All the IDEs do is that they call 'redefine' command via debugger protocol when there's a new version of *.class file.
The JVM itself can only hot swap when the method signature doesn't change