There's no way in
Java to do it, but with enough knowledge of the JVM implementation, you could possibly recover some objects from native code. The same could be said of most languages with dynamic memory -- erasing all the bits of a deallocated block is expensive and generally only done in some debug builds.