大一下学期上完了c++课程,当时自我感觉很良好,认为对面向对象编程已经是身经百战了,但是上了院里HuangYu老师的Java课之后,才发现自己对于面向对象的编程风格的理解只在皮毛,着实惭愧不已. 假设A是一个类名,并且在程序中有定义. 则在c++语言中,“A a:”这一句代码会在方法栈中产生一个对象,并会为它分配内存.而“A a=new A():”这一句代码产生的对象会在堆中,那么对象的物理存储在堆中和在栈中有什么区别呢? 栈对象的优势是在适当的时候自动生成,又在适当的时候自动销毁,不需要程序员…