在Java中,关于Static关键字的案例分析
2017-10-13 10:46
411 查看
新建一个Value类
再建一个Count类
public class Value { static int c = 0; //无参构造方法 Value() { c = 15; } //有参构造方法 Value(int i) { c = i; } //静态方法 static void inc() { c++; } }
再建一个Count类
public class Count { static Value v1, v2;//静态变量 static {//此即为static块 prt("v1.c=" + v1.c + " v2.c=" + v2.c); v1 = new Value(27);//New了一个Value3的实例 prt("v1.c=" + v1.c + " v2.c=" + v2.c); v2 = new Value(15);////再New了一个Value3的实例 prt("v1.c=" + v1.c + " v2.c=" + v2.c); } Value v = new Value(10);////New了一个Value3的实例 public static void prt(String s) {//定义了一个静态方法 System.out.println(s); } public static void main(String[] args) {//主方法 Count ct = new Count(); prt("ct.c=" + ct.v.c); prt("v1.c=" + v1.c + " v2.c=" + v2.c); v1.inc(); prt("v1.c=" + v1.c + " v2.c=" + v2.c); prt("ct.c=" + ct.v.c); } /* v1.c=0 v2.c=0 在new出类实例的时候,会先加载static静态代码块。 v1.c=27 v2.c=27 v1.c=15 v2.c=15 ct.c=10 执行完静态代码块后,才会执行调用的静态方法,所以ct.c=10,由于c为Value3的静态变量属性,类加载的时候 也一起加载完毕,所有实例共享一个静态变量,不会再建新的静态变量。 v1.c=10 v2.c=10 再次调用prt方法,v1.c和v2.c里的c已经不再是27,15,而是10, v1.c=11 v2.c=11 执行完v1.inc方法后,静态变量值增加,不再新建,所以在10的基础上新增1 ct.c=11*/ // 同理, 实例变量与静态变量不同点在于,一个是类的全局属性,所有的类实例共享一个静态变量, // 不会随着实例的增加而增加,实例变量是属于实例的属性,每new一个实例就会增加一个相应的实例变量。 }
相关文章推荐
- 关于java中static关键字的读书笔记
- 从内存分配角度分析c和java里的static 关键字.
- 关于Java中的static关键字
- 2016-08-19-java-关于线程的死锁的案例分析:生产者消费者问题
- java--整理下关于static关键字的知识
- 在Java中,关于static关键字
- java基础之short案例分析以及final关键字
- Java基础(二)-static关键字分析
- 关于Java中的static关键字
- java基础知识要点总结之几个重要关键字(关于static、this、final、)
- 关于java中static关键字在单态设计模式的应用学习和总结
- 关于java的static和final关键字的直白、简单解释
- 深入分析Java中static关键字
- 关于Java中static和final关键字的用法总结
- 关于java中static关键字的简单总结
- 关于java中static一个有意思的小案例
- 关于Java的static关键字
- 关于java static 关键字
- 关于Java的点点滴滴(1)——Static关键字
- java中的static关键字分析