2008-08-14

关于Java的static

  如果是刚从C/C++中转到Java的用户多半都会对static有相当的误解。实际上两个语言中对static的定义完全不同。
  在java中,我们还是应该把它当作是和“只有一个”或“只用一次”相关的东西。
  java的static有四种形式:

  • 静态数据:变量是属于类的而不是单个对象的
    如果在一个类中存在一个静态类型的数据,那么这个类的所有实例都将共享一份相应的数据。任何对它的修改都会在所有地方反应出来。而且,静态变量的调用推荐使用"类名.静态变量名“
  • 静态方法:这个方法是属于类的
    基本上就是可以直接用类名来调用的类方法。比如Math.sin(0);
  • 静态代码块:只被执行一次的代码块
    用static {}声明在类中非方法语句的地方。在类第一次加载到JVM的时候运行一次,静态代码块之允许操作静态数据,此外一个类允许多个静态代码块。会依次执行。
  • 静态类:嵌套在另一个类中的类
    实际上,嵌套的静态类只是把一个完整的类声明为另一个类的静态成员,定义嵌套类纯粹只是为了方便使用。从包含类的外部同样可以独立的访问嵌套的静态类。

没有评论: