变量分三种 
如果是放在堆里面对象变量 则不存在指向对象的引用时 对象有可能被回收
如果是放在栈里面的变量 比如primitive类型和void 类型或者reference本身 在作用域结束的时候消失
如果是放在stitic storage的变量 比如Class对象(类对象) 和类变量 则当这个类没有任何实例对象的时候 有可能被回收当然 其实变量不止这几种....