ruby中使用类变量会导致内存泄露吗

Python011

ruby中使用类变量会导致内存泄露吗,第1张

比如

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还未处理到,造成内存泄露)