美文网首页
Java -- Static关键字理解

Java -- Static关键字理解

作者: 徘徊0_ | 来源:发表于2017-10-11 13:33 被阅读0次

1,Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~
注:

  • 静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!
  • 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员(可以通过对象来实现在静态方法中调用非静态变量)
//普通方法
public void normalMedthod(){
    System.out.println("普通方法!");
}
//静态方法
public static void  staticMedthod(){
    System.out.println("静态方法!");
}

public static void main(String[] args){
    //普通方法,必须创建对象调用
    Person person=new Person();
    person.normalMedthod();

    //可以直接调用静态方法
    staticMedthod();
}
  • 静态初始化块:只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

2,内部类

  • 静态内部类(不持有外部类引用)

    1. 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问

    2. 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

    3. 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();

  • 普通内部类(隐式持有外部类对象,有时候会造成内存泄漏)

    1. 普通内部类,可以直接访问外部类中的数据,不受访问控制符影响。
    2. 定义了普通内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );

3,static 初始化相关

  • 当要实例化一个类时,JVM会首先加载该类,并且在加载过程中检查这个类是否有静态属性以及静态代码块,如果有,就按顺序分配内存并初始化他们,并且只在类加载的过程中初始化一次
    对于构造代码块,以及普通属性,是在类实例化时进行的,并且每次实例化都会调用,并且构造代码块先于构造方法执行。

相关文章

  • Java基础系列-static关键字

    原创文章,转载请标注出处:《Java基础系列-static关键字》 一、概述 static关键字是Java诸多关键...

  • Java -- Static关键字理解

    1,Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所...

  • java static关键字理解

    文章大纲:1.为什么static会有这样的效果?2.static的使用3.static误区4.static面试题 ...

  • Java synchronized

    Java关键字,可以理解为线程锁。实际上,synchronized(this)以及非static的synchron...

  • Static关键字

    C语言中的static关键字和Java的static关键字意义不一样。 1 用static修饰函数 static用...

  • Java 面向对象2

    Java 面向对象 1. static 和 final static关键字---修饰成员变量 用static修饰的...

  • 1.3 static 关键字

    static 关键字 《Java编程思想》 中:static方法就是没有this的方法 static 修饰的方法或...

  • Java static关键字

    声明static属性 static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可...

  • 代码查错

    Something1.java 5。 static关键字 static修饰成员变量 用static修饰的成员变量不...

  • JAVA Static关键字的理解

    static在日常开发过程中不可避免的一个关键字,也是面试中经常被提及的一个基础知识。对static的认识印象中只...

网友评论

      本文标题:Java -- Static关键字理解

      本文链接:https://www.haomeiwen.com/subject/jqaiyxtx.html