看来帖子是沉了,我又重新读了一遍,打算结合AI自己解答一下。
比喻前提:将类视为一个房子的蓝图,而一个对象就是一个实际的房子,房子的地址像一个句柄,唯一标志了你的房子。
房子指的是对象,房子的地址(即对象的句柄)一般是不会变的,该句柄指向一个新的对象,旧对象没法被引用了,可以理解为烧毁旧房盖新房。而你原先的对象,虽然没有句柄指向他,但是它不会立即被销毁,这个意思就是不会自动垃圾回收。除非家里有儿童这句话,我去查了原句为Garbage collection at home is not automatic, especially if you have teenagers.一种可能的解释是:家里的垃圾不会自己消失,尤其是你家里还有青少年,(指青少年会不断制造垃圾)。sv没有垃圾回收,但是有内存管理,当有不再使用的对象时,就赋值为null,自动回收(但具体是什么时候是不得而知的)。
SystemVerilog 3.1a LRM 11.26 Memory management 内存管理
对象、字符串、动态数组和关联数组的内存是动态分配的。创建对象时,SystemVerilog分配更多内存。当一个对象不再需要时,SystemVerilog自动回收内存,使其可供重用。自动内存管理系统是SystemVerilog的一个组成部分。如果没有自动内存管理,SystemVerilog的多线程、可重入环境会给用户带来很多问题。手动内存管理系统,例如C语言的malloc和free提供的系统,是不够的。