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();
 }
}

相关文章推荐

开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下:上面说的爬虫,基本可以分3类

1.分布式爬虫:Nutch 2.JAVA单机爬虫:Crawler4j、WebMagic、WebCollector 3. 非JAVA单机爬虫:scrapy 第一...
  • D_J_W
  • D_J_W
  • 2016年05月31日 09:50
  • 4370

Java中级开发工程师知识点归纳

1.接口和抽象类的区别 ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成员变量,而接口中不能有普通成员变量。 ③抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象...

static 在java中的作用

  • 2011年10月08日 20:57
  • 6KB
  • 下载

java中static作用详解

  • 2013年05月08日 23:04
  • 17KB
  • 下载

《Java程序员面试笔试宝典》之Static关键字有哪些作用

static关键字主要有两种作用:第一,只想为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的情况下就可以通过...
  • xdhehao
  • xdhehao
  • 2014年04月22日 22:31
  • 1777

static在Java语言中的作用

  • 2012年03月03日 00:44
  • 30KB
  • 下载

java中static作用

  • 2012年07月03日 23:39
  • 31KB
  • 下载

Android Java中的static与final关键字的作用

static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量...

java中static的作用

  • 2013年03月19日 10:23
  • 6KB
  • 下载

java技术:java中static作用详解

  • 2013年11月25日 14:24
  • 39KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中static的作用
举报原因:
原因补充:

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