Java中new出来的对象都存在堆内存中,指向对象的变量存在于栈中,而new对象的常量在方法区。如以下例子:
Integer inte = new Integer(10);
我们首先要知道:关于无参构造中的作用:
1、无参构造方法一般是用来初始化变量或者对象的等;
2、Java会自动给每个类添加一个默认的无参构造方法,但在自己有写有参构造的情况下,最好再添加一个无参构造方法,否则程序报错。
那么我们在写代码的过程中,会有两种方式去创建对象,其中第一种就是:先声明实例变量,然后在无参构造中创建对象;第二种是:直接new对象。我们要知道这两者的区别是,如以下例子:
1、前者(被注释的内容)是先在栈空间中申请了变量的存储空间,只有当调用无参构造的时候,才会将无参构造的对象在堆内存中申请存储空间;
2、而后者则是同时在栈与堆中申请了内存空间。
虽说两者所占内存空间是相同的,但是在以后的开发中代码越写越多的情况下,如若每次都直接初始化对象,后面发现有的方法不需要使用了,这样就会导致内存溢出。所以一般都是先声明变量,告诉自己已经有这个对象了,先不需要实例化这个对象。