创建对象: new Xxx();
创建对象时的内存分配在堆上。
声明一个对象引用: Xxx xx;
此时内存分配在栈上
初始化对象引用:xx=new Xxx();
这两者之间就存在区别,堆在应用程序生命周期内一直存在,而栈在方法调用完毕后就释放。而方法执行时用到的局部变量和形式参数则存放到栈空间。
c++中与java中创建对象的区别
Xxx xx:
这句代码在java中产生一个Xxx的声明,此事并没有任何此类的对象产生,也没有为此类对象分配内存空间。而在c++中不同,在c++中已经产生了一个对象。
C++中用关键字new方式产生的对象在堆中,而用Xxx xx方式产生的对象在栈中。