喜欢研究学习技术,喜欢和志同道合的人交流。 从事测试6年,专职性能3年经验,擅长性能测试,测试框架开发。 励志格言:只要想学习,永远都不会太晚;只要想进步,永远都会有空间。

Java之static关键字详解

上一篇 / 下一篇  2014-07-02 08:41:52 / 天气: 晴朗 / 心情: 高兴 / 精华(1) / 置顶(1) / 个人分类:java开发技术

1Static关键字使用注意点:

1、  可修饰变量,方法,初始代码块,成为类变量,静态方法,静态初始化代码块。

2、  类变量,静态方法,静态初始化代码块与具体的某个对象无关,只与类相关,是全类公有的,类变量和静态方法可以在没有对象的情况下使用:类名.方法名(或者变量名)来访问。

3、  在静态方法里不能访问非静态的变量或者方法,也不能出现this关键字。

4、  静态出初始代码块只在类加载的时候运行一次,以后也不执行了。所以静态代码块一般被用来初始局部变量。

5、  Static不能修饰局部变量。

6、  创建一个对象的时候,先初始静态变量,执行静态代码块,再初始化属性,最后执行构造方法。

7、  带继承关系创建对象的过程。

71、将整个继承层次所有的静态的变量或者静态的代码块执行,从父类到子类顺序来执行。

7.2、创建父类对象,创建子类对象。

8、在非静态代码块中,可以声明非静态的变量,相当于局部变量。

9、在静态的代码块中,可以声明非静态的变量,相当于局部变量。

 

 

2Static关键字可以用在什么地方?

1、声明变量时。

当声明变量时使用static:此变量又被称之为类级别变量。

和非静态变量的区别:

1、  内存中存放的位置不同:非静态变量(对象级别变量),保存在堆内存对象获取的空间内,而静态变量(类级别变量)存放在静态区,即一个类的所有对象共享静态变量。

2、  在调用时不同,静态变量直接通过类名调用:因为静态变量在加载时加载到内存中,即:静态变量在内存中是,对象还未产生,所以静态变量在调用时,不需要通过对象调用。

3、  优先级高于非静态变量。

 

2、 声明方法时。

当声明方法时使用static

和非静态方法的区别:

1、  优先级不同:往内存中加载时,优先于非静态方法加载。

2、  调用不同,直接通过类名调用:原因和静态变量相同。

 

3Static修饰变量和方法与非static修饰的变量和方法的加载顺序

1、被static修饰的成员的优先级>没有被static的优先级。

2、优先级顺序:静态变量>静态方法>静态代码块>非静态变量>非静态的方法>非静态的代码块


TAG:

zxl105的个人空间 引用 删除 zxl105   /   2014-12-01 16:43:31
支持一个,不错文章
zxl105的个人空间 引用 删除 zxl105   /   2014-12-01 16:41:25
5
 

评分:0

我来说两句

Open Toolbar