详解Java中staitc关键字

详解Java中staitc关键字

 一、static定义
  static是静态修饰符意思,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢?
  在Java程序里面,万物皆对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的。
  static声明的静态变量可以直接通过类名调用!
1 class Demo{
2     public static void main(String[] args)
3     {
4         Person p = new Person();
5         System.out.println(p.country);        //1、新建对象调用
6         System.out.println(Person.country); //2、通过类名直接调用
7     }
8 }
9 class Person{
10     static String country = "china";
11 }
   二、static特点
  由此我们得出static的特点。
  a、static是一个修饰符,用于修饰成员。
  b、static修饰的成员被所有的对象共享。
  c、static优先于对象存在,static成员随着类的加载就已经存在。
  d、static修饰成员多一种调用方式--通过类名调用。
   三、成员变量和静态变量区别?
  1.两个变量的生命周期同
  成员变量随对象创建存在,随对象回收而释放。
  静态变量随类的加载而存在,同样也随着类而消失。
  2、调用方式
  成员变量只能被对象调用。
  静态变量能被对象调用,还可以被类名调用。
  3、内存中存储位置不同。
  成员变量存储在堆内存中。
  静态变量存储在方法区(共享数据区)的静态区。
  四、静态使用注意事项
  1、静态方法只能访问静态成员。
  2、静态方法中不可以用this或super关键字。
  3、主函数都是静态的。
class Demo{
public static void main(String[] args)
{
Person.show();
}
}
class Person{
static String country = "china";
String name = "jinfulin";
public static void show()
{
System.out.print(country);    //正确
//System.out.print(name);    //错误
}
}
English »
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBengaliBelarusianBulgarianCatalanChinese (Simp)Chinese (Trad)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKannadaKoreanLaoLatinLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishTamilTeluguThaiTurkishUkrainianUrduVietnameseWelshYiddish  
Options :  History :  Help :  Feedback
Text-to-speech function is limited to 100 characters

你可能感兴趣的:(详解Java中staitc关键字)