快速业务通道

Java编程那些事儿65——static修饰符 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Java编程那些事儿65——static修饰符

时间:2010-03-11 csdn 陈跃峰

修饰符的作用是让被修饰的内容具备特定的功能,在程序中合理使用修饰符可以在语法和功能上实现很多需要的效果。Java语言中的修饰符主要有5个:static、final、native、abstract和synchronized。这里首先讲解static、final和native的作用。 8.7.1 static修饰符

static关键字的中文意思是静态的,该修饰符可以修饰成员变量,成员常量和成员方法。使用该关键字修饰的内容,在面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修饰的成员变量一般称作类变量,而static修饰的方法一般称作类方法。另外,static还可以修饰代码块,下面进行详细的介绍。

8.7.1.1 静态变量

static修饰的变量称作静态变量。静态变量和一般的成员变量不同,一个类在加载到内存时,静态变量只初始化一次,也就是说所有对象的静态变量在内存中都只有一个存储位置,每个对象中的静态变量都指向内存中同一个地址,它是在所有的对象之间共享的数据。另外静态变量在引用时比较方便。所以一般在需要实现以下两个功能时使用静态变量:

l 在对象之间共享值时

l 方便访问变量时

下面首先说一下非静态变量(没有static修饰符修饰的成员变量)在内存中如何存储的。示例代码如下:

//文件名Box.java public class Box{  int length;  int width;  int height;  public Box(int l,int w,int h){   length = l;   width = w;   height = h;  } } //文件名TestBox.java public class TestBox{  public static void main(String[] args){   Box a = new Box(10,20,30);   Box b = new Box(40,20,10);  } }

则对象a和对象b在内存中的存储格式如下图所示:

对象a                 对象b

10
20
30
length
width
height
40
20
10
length
width
height
  

从上面的图可以看出,非静态变量的值在每个对象中都有独立的存储空间,不同对象间这些值之间没有管理,也就是说每个对象都为内部的每个非静态的变量分配独立的存储空间,所以每个对象中非静态变量是隶属于对象,也就是说在每个对象中可能是不同的。

Java编程那些事儿65——static修饰符(2)

时间:2010-03-11 csdn 陈跃峰

简单介绍了非静态变量在对象中的存储以后,下面再来看一下静态变量是如何进行存储的。示例代码如下:

//文件名StaticVar.java public class StaticDemo{  static int m;  int n;  char c; } //文件名TestStaticVar.java public class TestStaticVar{  public static void main(String[] args){   StaticVar sv1 = new StaticVar();   StaticVar sv2 = new StaticVar();  } }

则对象sv1和对象sv2在内存中存储的格式如下图所示:

对象sv1               对象sv2

0
m
0
n
0

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号