static静态关键字的解析_第1页
static静态关键字的解析_第2页
static静态关键字的解析_第3页
static静态关键字的解析_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

tatic是Java中的一个关键字,我们不能声明普通外层类或者包为静态的。static用于下面四种情况。静态变量:我们可以将类级别的变量声明为static。静态变量是属于类的,而不是属于类创建的对象或实例。因为静态变量被类的所有实例共用,所以 非线程安全的。通常静态变量还和关键字final一起用,作为所有对象共用的资源或常量。如果静态变量不是私有的,那么可以通过 ClassName.variableName来访问它。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。/静态变量的例子private static int count;public static String str;public static final String DB_USER = myuser静态方法:类似于静态变量,静态方法也属于类,不属于实例的。静态类只能访问类的静态变量,或调用类的静态方法。通常静态方法作为工具方法,被其它 类使用,而不需要创建类的实例。譬如集合类、Wrapper类(String, Integer等)和工具类(java.util中的类)都有很多静态方法。通常java程序的开始就是一个main()方法,它就是个静态方法。/静态方法的例子public static void setCount(int count) if(count 0)StaticExample.count = count;/静态工具方法public static int addInts(int i, int.js)int sum=i;for(int x : js) sum+=x;return sum;静态块:静态块就是类加载器加载对象时,要执行的一组语句。它用于初始化静态变量。通常用于类加载的时候创建静态资源。我们在静态块中不能访问非静态变量。我们可以在一个类中有多个静态块,尽管这么做没什么意义。静态块只会在类加载到内存中的时候执行一次。static/在类被加载的时候用于初始化资源System.out.println(StaticExample static block);/仅能访问静态变量和静态方法str=Test;setCount(2);静态类:我们对嵌套类使用static关键字。static不能用于最外层的类。静态的嵌套类和其它外层的类别无二致,嵌套只是为了方便打包。 延伸阅读:嵌套类让我们来看一个使用static关键字的例子:StaticExample.javapackage com.journaldev.misc;public class StaticExample /静态块static/在类被加载的时候用于初始化某些资源System.out.println(StaticExample static block);/仅能访问静态变量和静态方法str=Test;setCount(2);/可以在一个类中有多个静态块staticSystem.out.println(StaticExample static block2);/静态变量private static int count; /保持私有,仅能靠setter方法访问public static String str;public int getCount() return count;/静态方法public static void setCount(int count) if(count 0)StaticExample.count = count;/静态工具方法public static int addInts(int i, int.js)int sum=i;for(int x : js) sum+=x;return sum;/静态类的例子,方便打包之用public static class MyStaticClasspublic int count;让我们用一个测试程序来看看如何使用静态变量,静态方法以及静态类。TestStatic.javapackage com.journaldev.misc;public class TestStatic public static void main(String args) StaticExample.setCount(5);/非私有的静态变量可以通过类名来访问StaticExample.str = abc;StaticExample se = new StaticExample();System.out.println(se.getCount();/类的静态变量和实例的静态变量是一样的System.out.println(StaticExample.str + is same as +se.str);System.out.println(StaticExample.str = se.str);/静态嵌套类和其他外层类一样StaticExample.MyStaticClass myStaticClass = new StaticExample.MyStaticClass();myStaticClass.count=10;StaticExample.MyStaticClass myStaticClass1 = new StaticExample.MyStaticClass();myStaticClass1.count=20;System.out.println(myStaticClass.count);Syste

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论