static关键字
【摘要】 static的特点:static翻译为静态的所有static关键字修饰的都是类相关的,类级别的。所有static修饰的,都是采用类名.的方式访问。static修饰的变量:静态变量static修饰的方法:静态方法 静态都是类相关的,访问时采用类名.的方式访问,不需要new对象不需要对象的参与即可访问,没有空指针异常的发生。静态变量在类加载器时初始化,不需要new对象,静态变量的空间就开出来了。...
- static的特点:
- static翻译为静态的
- 所有static关键字修饰的都是类相关的,类级别的。
- 所有static修饰的,都是采用类名.的方式访问。
- static修饰的变量:静态变量
- static修饰的方法:静态方法
- 静态都是类相关的,访问时采用类名.的方式访问,不需要new对象
- 不需要对象的参与即可访问,没有空指针异常的发生。
- 静态变量在类加载器时初始化,不需要new对象,静态变量的空间就开出来了。
- java中有三个变量,必须掌握:
- 静态变量存储在方法区。
- 实例变量存储在堆。
- 局部变量存储在栈stack。
- 什么时候使用实例变量,什么时候使用静态变量?
- 如果这个类型的所有对象的某个属性值都是一样的。不建议定义为实例变量,浪费内存空间,建议定义为类级别特征,定义为静态变量,在方法区中中保留一份,节省内存开销。
- 一个对象一份的是实例变量。
- 所有对象一份的是静态变量。
实例的:一定要使用引用.来访问
静态的:建议使用类名.来访问,但使用引用.也行(不建议使用引用.)
静态的如果使用引用.来访问会让程序员产生疑惑:程序员以为是实例的呢。
空指针异常只有在什么情况下才会发生呢?
只有在空引用访问实例相关的,都会出现空指针异常。
- 关于方法来说,什么时候定义为实例方法?什么时候定义为静态方法?
- 此方法一般都是描述一个行为,如果说该行为必须由对象去触发。那么该方法定义为实例方法。
- 参考标准:
- 当这个方法体当中,直接访问了实例变量,这个方法一定是实例方法。
- 我们以后开发中,大部分情况下,如果是工具类的话,工具类当中的方法一般都是静态的。(静态方法有一个优点,是不需要new对象,直接采用类名调用,及其方便。工具类就是为了方便,所以工具类中的方法一般都是static的)
使用static关键字可以定义:静态代码块
语法:
static{
java语句;
}
类加载时执行,并且只执行一次。
注意:静态代码块在类加载时执行,并且在main方法执行之前执行。
静态代码块不是那么常用。(不是每一个类当中都要写的东西)。
静态代码块这中语法机制实际上是SUN公司给我们java程序员的一个特殊的时机。
这个时机叫做:类加载时机
使用静态代码块的具体业务:
项目经理说了:大家注意了,所有我们编写的程序中,只要是类加载了,请记录一下类加载的日志信息(在哪年哪月那日几时几分几秒,那个类加载到JVM当中了)。
除了静态代码块之外,还有一种语句叫做:实例语句块
实例语句在类加载时并没有执行。
语法:
{
java语句;
}
实例语句块在什么是执行?
只要是构造方法执行,必然在构造方法执行之前,自动执行实例语句块中的代码,
实际上这也是SUN公司为JAVA程序员准备一个特殊的时机,叫做对象构建的时机。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)