设为首页 加入收藏

TOP

Java的Static使用介绍
2014-11-24 08:32:20 来源: 作者: 【 】 浏览:0
Tags:Java Static 使用 介绍

一、开篇


首先用一个例子开始我们今天的介绍。


定义一个TestStaticClass类如下:


public class TestStaticClass {


private static int a;
private int b = 0;

public TestStaticClass() {
a++;
b++;
}

public static void testRun() {
System.out.println("run TestStaticClass.testRun");
}

public String toString() {
return "a = " + a + ", b = " + b;
}
}


定义MainClass类如下:


public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new TestStaticClass());
System.out.println(new TestStaticClass());
}
}


运行的结果如下:


a = 1, b = 1


a = 2, b = 1


为什么会这样呢?这就是Static的作用之一,如果使用static来修饰一个变量,那么该变量就属于该类所有,而不再属于该类的某一实例,被类的所有实例共享。因为Java在加载该类的时候为static变量在内存中分配了一个固定的内存空间来存储,只要TestStaticClass类存在,那么该变量a所代表的地址空间就不会消失。


在上面的实例中,每一次新建一个TestStaticClass类,都会修改a所在的地址空间的内容,所以就会导致了a和b的值不一致的情况。


除了在实例中用Static来修饰变量外,还可以用来修饰修饰函数和代码块。这些在本文中都会详细的介绍,但是在这之前,必须记得Static的特性:固定。这个不仅仅指固定的地址,还包括固定的大小。使用static修饰的变量等,在编译时就为这些变量分配了空间。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android开发:Camera初探——控制.. 下一篇Android亮屏、熄屏控制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)