静态属性是不用实例化对象就能通过类名直接调用对吧?那静态属性是个变量,或者对象,那它总得有个空间吧,它的空间开辟是在什么时候呢?
老师给我们讲,一个对象的创建分为两个过程,第一个开辟空间,它先于构造函数,然后就是调用构造函数对开辟的空间进行分配。我就猜想,静态属性是不是在开辟空间之前就创建,或者更早?
嗯,我知道了。
那还有一个问题,动态开辟的空间是在堆区对吧,那在该对象使用结束后该部分空间会被回收,而静态属性还会存在,直到程序运行结束,这样想对吗?
对。
动态开辟的空间是在堆区对吧,那在该对象使用结束后该部分空间会被回收,
空间会被gc给回收,但是什么时候由gc决定。
谢了。