java中static讲解
一.static
1.static翻译为“静态”
2.所有的static关系子修饰都是类相关的,类级别的。
3.所有的static修饰的,都是采用“类名.”的方式访问。
4.static修饰的变量:静态变量
5.static修饰的方法:静态方法
6.没有static修饰的方法都要先new对象,然后通过“引用.”访问
static修饰的方法只能被另一个也是static修饰的方法调用
二.变量的分类:
1.变量根据声明的位置进行划分:
在方法体当中声明的变量叫做:局部变量 。
在方法体外声明的变量叫做:成员变量(全局变量)
注意:
(1).main 函数内的变量不是全局变量,而是局部变量,只不过它的生命周期和全局变量一样长而已。
(2).全局变量一定是定义在函数外部的。
2.成员变量又分为:实例变量 静态变量
静态变量都用类名访问。
实例变量的都要先new对象,然后引用访问。要不可能会出现空指针异常。
重点记住:
加static的变量叫做静态变量
静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了
静态变量储存在方法区。
三.java中三个变量分别储存在那块内存上?
jvm一共有三块内存
栈内存中存放局部变量
堆内存中存放实例变量(对象级别,没有static的)
方法区中放静态变量(类级别)
1.什么时候变量声明为实例的,什么时候声明为静态的?
如歌这个类中的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间,建议定义为类级别特征,定义为静态变量,在方法去中值保留一份,节省内存开销。
每个对象都不一样的变量的是实例变量,
所有对象都有一个一样的变量叫静态变量。
四.static变量例子:
结论:
实例的:一定需要使用“引用.”来访问
静态的:建议使用“类名.”来访问,但使用“引用.”也行(不建议使用“引用.”)静态的如歌使用“引用.”来访问会让程序员产生困惑:以为是实例的
例子:
五.空指针异常
1.空引用调用实例方法会出现什么问题?
空指针异常。
2.空指针异常只有在什么情况下才会发生的呢?
只有在“空引用”访问“实例”相关的,都会出现空指针异常。
空引用例子:
- 点赞
- 收藏
- 关注作者
评论(0)