请问System.gc()这个方法执行后是立即回收内存吗?

 A a = new A();
a = null;
System.gc();

把A创建的对象的引用置为空后,执行System.gc();
就立即把创建的这个对象的所占的内存回收掉了吗?
还是说得等到当前内存不足时他才会去回收?System.gc()只是提前让系统去观察下
当前系统的内存情况而已?

不会的,System.gc();只是建议Java虚拟机对此部分内存进行回收,但是不一定会发生GC

【System.gc();】此函数建议JVM进行GC,只是建议而非一定,

很多情况下它会触发主GC

参考链接:http://blog.csdn.net/jiyiqini/article/details/46725647

视当时内存使用量而定,并不是一定的