1
我知道分配給Constant的對象不能被垃圾回收。 (「Ruby中的常量永遠不會被垃圾收集,所以如果一個常量有一個對象的引用,那麼這個對象就永遠不會被垃圾收集。」 - https://www.sitepoint.com/ruby-uses-memory/)在ruby中,分配給類方法中變量的對象是否可以被垃圾回收?
但是我試圖弄清楚我的安心一般情況下其他事情永遠不會被垃圾收集。
特別是,分配給類方法中的普通變量的對象是否可以被垃圾回收?例如:
class Foo
def self.bar
array = []
1000.times { array << 'string' }
end
end
Foo.bar之後被調用時,可以將這些串1000被垃圾收集,或做他們流連,因爲它們存儲針對「數組」變量?
如果數組是@array
或@@array
,會出現什麼情況?
變量'array'擁有的對象沒有被引用超出該方法的範圍,所以是的,一旦該方法完成,它將被垃圾收集。 –