java代码块

静态代码块:就是一个有静态关键字标示的一个代码块区域。定义在类中。
作用:可以完成类的初始化。静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函数执行。

静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块 -->构造代码块 --> 构造函数;

 

 

Person p = new Person();

 

创建一个对象都在内存中做了什么事情?

 

1先将硬盘上指定位置的Person.class文件加载进内存。

 

2执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。

 

3在堆内存中开辟一个实体空间,分配了一个内存首地址值。new

 

4在该实体空间中进行属性的空间分配,并进行了默认初始化。

 

5对空间中的属性进行显示初始化。

 

6进行实体的构造代码块初始化。

 

7调用该实体对应的构造函数,进行构造函数初始化。()

 

8将首地址赋值给p变量就引用了该实体。(指向了该对象)

 

this:代表对象。就是所在函数所属对象的引用。

this到底代表什么呢?哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用。

 

2,成员变量存在于堆内存中。

静态变量存在于方法区中。

3,成员变量随着对象创建而存在。随着对象被回收而消失。

静态变量随着类的加载而存在。随着类的消失而消失。

 

静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块 à 构造代码块 à 构造函数;

 

4.eclipse自动生成类的帮助文档

 

posted @ 2016-09-26 16:27  跨境电商杂货铺  阅读(217)  评论(0编辑  收藏  举报