一、说明

static属于一种修饰符,可以用于修饰 属性、方法、初始化块、内部类
用static修饰的成员,称为静态成员
不用static修饰的成员,称为普通成员

二、静态属性的特点

1、生命周期

静态属性随着类的加载而加载,随着类的消亡而消亡。生命周期较长
普通属性随着对象的创建而加载,随着对象的消亡而消亡。生命周期较短

2、加载次数

静态属性只加载一次!在内存中只有一份!
普通属性可以加载多次!在内存中可以有多份!

3、存储位置

静态属性存储在方法区
普通属性存储在

4、【应用】

静态属性被所有对象共享的,其中一个对象对其更改,影响另一个对象。
普通属性被对象所独享的,其中一个对象对其更改,不影响另一个对象。

5、调用

静态属性和对象无关,所以又称为类属性,可以通过类名直接调用的
普通属性和对象有关,所以又称为实例属性,只能通过对象调用

6、什么时候将属性设计成静态属性?

所有对象共享该属性,则可以将属性设计成静态的
比如:圆周率、利率

三、静态方法的特点

1、静态方法和普通方法一样都是当类加载时,将方法信息加载到方法区

静态方法中没有this参数
普通方法中需要有this参数

2、谁能调用?

静态方法可以直接通过类名调用
普通方法必须通过对象调用,因为需要隐式的将对象传递给this

3、方法内可以调用谁?

静态方法中只能直接调用静态成员不能直接调用普通成员
普通方法中可以直接调用静态成员和普通成员

4、静态方法中不能使用this和super

5、静态方法没有写之说

四、总结

1、静态成员都是随着类的加载而加载,而且只加载一次
2、静态成员在内存中只有一份
3、静态成员都和对象无关,可以直接通过类名调用
4、静态成员中只能直接访问静态成员,不能直接访问普通成员!(静态属性除外)
5、调用静态成员时,会触发类的加载

【补充】类的加载时机:

1、创建对象
2、调用静态成员
3、加载子类时
4、反射

 

posted on 2018-08-23 13:45  明德博学勤奋求实  阅读(170)  评论(0编辑  收藏  举报