Java中的static
来源:互联网 发布:网络代购是怎么挣钱 编辑:程序博客网 时间:2024/06/05 06:40
1、
2、
3、
1、
package com.meritit.test;class Student {static int numberOfStudents = 0;Student() {numberOfStudents++;}}
每一次创建一个新的Student实例时,成员numberOfStudents都会不断的递增,并且所有的Student实例都访问同一个numberOfStudents变量,实际上int
多个实例共享一个变量似乎不足以让我们对static那么的热情,实际上java引入static却有另外的含义:
2、
3、
non-static
对于static的初始化问题,我们还是值得讨论的。现看下面的例子
package com.meritit.test;public class StaticInit{ static int i; int a; public StaticInit() { a=6; System.out.println("a 的初始化"+a); } public static void main(String[] args) { new StaticInit(); } static { i=5; System.out.println("i 的初始化"+i); }}
运行结果如下:
i
a
说起static的“局限“,总结起来就是:在static的方法中仅能够调用其他的static方法和static变量;在static方法中不能以任何方式引用this或super;static变量在定义时必须进行初始化,并且初始化的时间早于非静态。还有一个局限我需要具体的说明一下,static的变量的初始化仅能一次,如下例:
package com.meritit.test;public class Static {T1 t1 = new T1(2);T1 t2 = new T1(3);T1 t3 = new T1(4);public Static() {System.out.println("t1: " + t1.t);System.out.println("t2: " + t2.t);System.out.println("t3: " + t3.t);}public static void main(String args[]) {new Static();}}class T1 {static int t = 1;T1(int b) {t = b;}}
运行结果:
t1: 4
t2: 4
t3: 4
该static变量只是接受了最后一次的初始化.实际这还是我们先前提到的多个实例共享一个静态的变量的问题。
总之,static就是给我们一个这样的忠告:static的东西在编译时,就已向内存要到了存取空间了。
- Java中的静态static
- Java中的static关键字
- JAVA中的static关键字
- JAVA中的static用法
- Java中的static(1)
- 说说Java中的static
- 了解Java中的Static
- JAVA中的static
- java中的static
- java中的static
- Java中的static介绍
- java中的static
- java中的static详解
- Java中的static
- java中的static详解
- java中的static详解
- java中的static详解
- java中的Static
- div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法
- 关于set -e
- CenOS /linux下网络IP配置
- c++命名空间
- hdu 4487 概率dp Maximum Random Walk
- Java中的static
- Qt编译Oracle OCI驱动
- OpenCV中cvRNG基本随机数
- 设计模式之享元模式(FlyWeight)
- 详解YUV数据格式
- node.js发送邮件
- Toast的五种效果
- Linux cp命令
- Android读写文件