喜欢研究学习技术,喜欢和志同道合的人交流。
从事测试6年,专职性能3年经验,擅长性能测试,测试框架开发。
励志格言:只要想学习,永远都不会太晚;只要想进步,永远都会有空间。
Java之static关键字详解
上一篇 /
下一篇 2014-07-02 08:41:52 / 天气: 晴朗
/ 心情: 高兴
/ 精华(1)
/ 置顶(1)
/ 个人分类:java开发技术
1、Static关键字使用注意点:
1、
可修饰变量,方法,初始代码块,成为类变量,静态方法,静态初始化代码块。
2、
类变量,静态方法,静态初始化代码块与具体的某个对象无关,只与类相关,是全类公有的,类变量和静态方法可以在没有对象的情况下使用:类名.方法名(或者变量名)来访问。
3、
在静态方法里不能访问非静态的变量或者方法,也不能出现this关键字。
4、
静态出初始代码块只在类加载的时候运行一次,以后也不执行了。所以静态代码块一般被用来初始局部变量。
5、
Static不能修饰局部变量。
6、
创建一个对象的时候,先初始静态变量,执行静态代码块,再初始化属性,最后执行构造方法。
7、
带继承关系创建对象的过程。
7.1、将整个继承层次所有的静态的变量或者静态的代码块执行,从父类到子类顺序来执行。
7.2、创建父类对象,创建子类对象。
8、在非静态代码块中,可以声明非静态的变量,相当于局部变量。
9、在静态的代码块中,可以声明非静态的变量,相当于局部变量。
2、Static关键字可以用在什么地方?
1、声明变量时。
当声明变量时使用static:此变量又被称之为类级别变量。
和非静态变量的区别:
1、
内存中存放的位置不同:非静态变量(对象级别变量),保存在堆内存对象获取的空间内,而静态变量(类级别变量)存放在静态区,即一个类的所有对象共享静态变量。
2、
在调用时不同,静态变量直接通过类名调用:因为静态变量在加载时加载到内存中,即:静态变量在内存中是,对象还未产生,所以静态变量在调用时,不需要通过对象调用。
3、
优先级高于非静态变量。
2、 声明方法时。
当声明方法时使用static:
和非静态方法的区别:
1、
优先级不同:往内存中加载时,优先于非静态方法加载。
2、
调用不同,直接通过类名调用:原因和静态变量相同。
3、Static修饰变量和方法与非static修饰的变量和方法的加载顺序:
1、被static修饰的成员的优先级>没有被static的优先级。
2、优先级顺序:静态变量>静态方法>静态代码块>非静态变量>非静态的方法>非静态的代码块
收藏
举报
TAG: