Java-Study

java中static用法:

static :静态的,用于修饰成员(成员变量,成员方法);

1. 被static所修饰的变量或者方法会储存在数据共享区;

2. 被static所修饰的成员变量只有一份;

3. 当成员被static修饰之后,可以被对象调用,还可以被类名调用(类名.静态成员)

static特点:

1. 随着类加载而被加载;

2. 优先于对象存在;

3. 被所有对象共享;

4. 被static修饰的变量成为静态变量(类变量)或者实例变量;

5. 生命周期:

(1)类变量周期生命最长,随着类的消失而消失;

(2)实例变量生命周期比类变量短,它是随着对象的消失而消失;

6. 方法注意事项:

静态的方法只能访问静态的成员;

非静态方法既能访问静态成员(成员变量,成员方法)又能访问非静态成员;

局部变量不能被static修饰;

静态方法中是不可以定义this、super关键字的,因为静态优先于对象存在,

 实例变量和成员变量区别:

例如:定义一个类:

class  Test{

    public static int num;

    public  int  temp;

  如果想访问temp属性,就必须先创建一个Test对象,才能访问: Test  a=new Test();

a.temp:实例成员变量。

如果想访问num的话,不用创建Test的实例就可以访问,Test.num 这就是类成员变量

主要区别:访问需不需要创建对象,对于类成员变量,所有对象是共享一个变量。

静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用"类名.静态成员名"访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员 函数不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员函数可以直接访问类中静态的成员.

非静态成员:所有没有加Static的成员都是非静态成员,当类被 实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内存中..

原文地址:https://www.cnblogs.com/yinfei/p/12260648.html