a = TestClass.new
b = TestClass.new
2个@ 是属于 TestClass 的变量,a和b都能访问 TestClass的@@变量而已.
1个@ 是属于 a和b 自己的.
垃圾回收是一旦执行 @@aa=XXX.new() 这句,则原 @@aa 的旧值XXX.new()如果不再被使用,就回收了.
我想就算你每秒调用1万次 TestClass.new , 也不会泄漏吧.
1、用static声明handler,静态类不会引用外部类2、如果Handler中必须用到Activity,那就用WeakReference去引用
3、在Activity结束或暂停的事件中,removeMessages或者removeCallbacksAndMessages将消息队列中的消息移除(避免满足上面两条后,当Activity关闭了,但是Handler还未处理到,造成内存泄露)