各自的优缺点
- 栈空间优势
在栈空间开辟空间相比在堆空间开辟效率是要高的。
而且栈空间的内存是自动释放的。
- 栈空间缺点
但是栈空间的空间很小,如果我们类占用的空间很大的时候,在栈开辟空间就不合理了。
而且栈空间不能根据我们的需求来控制空间的开辟和释放。
- 堆空间优势
堆空间的空间很大。
而且堆空间我们可以自己控制空间的开辟和释放。
- 堆空间的缺点
比栈空间效率低。
而且容易忘记释放空间,造成内存泄露。
建议(根据具体情况来定)
所以:
如果我们的类占用的空间很大,或者我们希望根据需求来空间空间的开辟和释放,那么就再堆上面创建对象。
然后别的情况可以在栈上开辟空间,效率更高。