面试经常问到的问题
创建对象:1.在堆中分配内存,2.执行初始化。
执行构造器时候:已经分配了内存,并执行了初始化。
{ /// }这是动态代码块。
动态代码块先于无参构造器执行。
Object object = new Object(); object这里没有成员变量,null也占8个字节。
一个没有成员变量的对象在堆中占8个字节,有成员变量( private int a = 5)则占8+4=12个字节。
int 占4个字节。。
引用型变量占多少字节不确定。和你使用机器的位数有关系,一般为4个和8个
成员变量 在堆中存放
方法里面的局部变量在方法栈帧中放的。
静态变量在方法区域中放着的。
1.beanFactory 和applicationContext的区别:
创建的时机不同
1)applicationContext容器在进行初始化时候,会将其中的所有Bean(对象)进行创建。
优点:
缺点:占用系统资源(内存、cpu)等
优点:响应速度快
2)beanFactory容器中的对象,在容器初始化时候并不会被创建,而是在真正获取该对象时候才会被创建。
缺点:相对来说,响应速度慢
优点:不多占用系统资源