Java中static的作用

原创 2012年03月25日 17:26:47

1、static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享(因此可以用來统计一个类有多少个实例化对象),所以有些属性希望被所有对象共享,则必须将其声明为static属性,被static声明的属性成为全局属性。

2、只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

3、类中定义的静态代码块会优先于构造块先执行,而且不管有多少个对象,静态代码块只执行一次

例1:

class PersonE{
 private String name;
 private int age;
 private static String country = "A城";
 public PersonE(String name,int age){
  this.name = name;
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public static String getCountry() {
  return country;
 }
 public static void setCountry(String country) {
  PersonE.country = country;
 }
 public void info(){
  System.out.println("姓名:"+this.getName()+","+"年龄:"+this.getAge()+","+"城市:"+country);
 }
}
public class StaticUse {
 public static void main(String[] args){
  PersonE per1 = new PersonE("张三",20);
  PersonE per2 = new PersonE("李四",22);
  System.out.println("---------修改之前--------");
  per1.info();
  per2.info();
  System.out.println("---------修改之後---------");
  PersonE.setCountry("B城");
  per1.info();
  per2.info();
 }
}

例2:

public class StaticUse{
 private static int s;
 public StaticUse(){
  System.out.println("Creat new Class");
 }
 static{
  System.out.println("static block initialized");
 }
 public static int getS() {
  return s;
 }
 public static void setS(int s) {
  StaticUse.s = s;
 }
 public static void main(String[] args){
  StaticUse classA = new StaticUse();
  StaticUse classB = new StaticUse();
  System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
  classA.setS(10);
  System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
  classB.setS(classB.getS()+10);
  System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
 }
}

例子3、

class PersonE{
 private static int count = 0;
 public PersonE(){
  count++;
  System.out.println("产生了"+count+"个对象");
 }
}
public class StaticUse{
 public static void main(String[] args){
  new PersonE();
  new PersonE();
 }
}

例子4:

class PersonE{
 {
  System.out.println("1、构造块。");
 }
 static{
  System.out.println("0,静态代码块。");
 }
 public PersonE(){
  System.out.println("2、构造方法。");
 }
}
public class StaticUse{
 static{
  System.out.println("在主方法所在的类中定义的代码块。");
 }
 public static void main(String[] args){
  new PersonE();
  new PersonE();
 }
}

Java中static关键字的作用

Java中static关键字的作用
  • jsqfengbao
  • jsqfengbao
  • 2015年03月29日 08:45
  • 17538

Java中static的作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。  被static修饰的成员变量和成员方法独立于该类的...
  • u010931123
  • u010931123
  • 2017年03月07日 17:49
  • 801

java 理解static代码块的作用

static代码块一般用于初始化类中的静态变量,该静态代码块在类加载过程中的初始化阶段执行,并且只执行一次。 使用static静态代码块进行初始化与直接在定义变量的时候初始化效果是一样的,但...
  • lxyzhu
  • lxyzhu
  • 2014年11月12日 12:05
  • 3131

JAVA中理解static修饰符的作用

是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只...
  • u013440660
  • u013440660
  • 2014年05月30日 21:02
  • 1867

Java中static作用及用法详解

static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年07月24日 13:13
  • 9919

Java - static和C++ static的区别

java的static和c++的static多数用法是相同,包括static method、static variable。其中static variable主要用于定义该类所有实例共用的一些数据(如...
  • Gykimo
  • Gykimo
  • 2014年04月02日 15:25
  • 2211

理解java static 的作用

在java如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因...
  • zhangsj2008
  • zhangsj2008
  • 2009年02月04日 15:12
  • 4606

java的类中,直接写 {}或者static{},什么意思

1static{} 2{} http://blog.csdn.net/chenmeng2192089/article/details/10160551
  • Ideality_hunter
  • Ideality_hunter
  • 2016年11月11日 11:41
  • 942

java中 static,final,transient,volatile关键字的作用

static 和final   static  静态修饰关键字,可以修饰 变量,程序块,类的方法;  当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这...
  • i0048egi
  • i0048egi
  • 2017年02月12日 21:27
  • 1335

Java中static成员的用法

(一)什么情况下我们要使用static呢? 1、只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。 2、我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说...
  • zhu_apollo
  • zhu_apollo
  • 2007年11月16日 12:26
  • 8500
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中static的作用
举报原因:
原因补充:

(最多只允许输入30个字)