java static关键字
来源:互联网 发布:mac 终端退出 bash 编辑:程序博客网 时间:2024/06/05 15:33
通常,我们创建类时会指出那个类的对象的外观与行为。除非用new 创建那个类的一个对象,否则实际上并
未得到任何东西。只有执行了new 后,才会正式生成数据存储空间,并可使用相应的方法。
但是有两种特殊的情形,上面的方法并不管用:
1. 只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。
2. 我们需要一个特殊的方法,它没有与这个类的任何对象关联(也就是说没有new一个对象)。即使没有创建对象,也需要一个能调用的方法。
像上面的两种情况,用static可以很好的解决这些问题。
static方法的调用有两种方式,一种是通过对象调用,另一种是方法名调用。通常使用第二种。
对学过Java的人来说,对static的使用肯定不陌生,可能有人会说这有什么好说的呢?不就是方法前
加个static关键字,然后调用的时候直接用类名点方法名不就可以了吗。
使用的方法确实没错,这里要说的是static的一点特殊的解析:
如下:
成员前没加static:
public class StaticClass {
int i = 3;
}
public static void main(String[] args) {
StaticClass c1 = new StaticClass();
StaticClass c2 = new StaticClass();
c1.i++;
System.out.println(c2.i);
}
执行结果: 3
成员前加了static:
public class StaticClass {
static int i = 3;
}
执行类:
public static void main(String[] args) {
StaticClass c1 = new StaticClass();
StaticClass c2 = new StaticClass();
c1.i++;
System.out.println(c2.i);
}
或者:
public static void main(String[] args) {
StaticClass.i++;
System.out.println(StaticClass.i);
}
执行结果:4
总结:加了static的成员,无论new了多少个对象,该成员都只占用一个存储空间。
拓展:
关于类中的静态static模块:
public class StaticClass {static { //逻辑代码....类加载的时候执行,并且只执行一次。 System.out.println("类加载的时候执行,并且只执行一次。"); }}
1. 当给StaticClass new 一个对象的时候,执行上述代码中的static块....,不管生成多少个对象,该static块只加载执行一次。
2. 当采取【Class.forName("类的全路径");】语句进行类加载时,执行static块。
正因为static块在类加载的时候就执行了,所以当在static方法中调用非static方法时,会报编译错误!!!!
- Java this关键字,static关键字
- Java static关键字,final关键字
- JAVA STATIC 关键字
- Java中的static关键字
- JAVA中的static关键字
- Java 中 static 关键字
- java static关键字
- java static关键字
- Java关键字final、static
- java中static关键字
- Java中static关键字
- java中static关键字
- java中关键字:static
- JAVA中的static关键字
- java中的static关键字
- java关键字 static
- java中的static关键字
- java关键字static
- poj1006 生理周期(中国剩余定理)
- 各种命令一日游
- Struts 2 Hello World Annotation Example
- javaweb学习总结(三十九)——数据库连接池
- .NET基础--if与else的匹配问题
- java static关键字
- LoadRunner如何实现动态链接库(C++)的调用
- IT人学习方法论(一):学习方向
- VS2010下安装boost库
- android数据存储之SQLite篇
- 设计模式之原型模式
- Summary Ranges -- leetcode
- java 用反射简单应用,将Object简单转换成map
- android事件传递机制的详细了解