学习笔记--Java中static关键字

Java中static关键字

static基础用法

  • 什么时候成员变量声明为实例变量

    • 所有对象的这个属性随对象而变化
  • 什么时候成员变量声明为静态变量

    • 所有对象都是这个属性

静态变量在类加载的时候初始化,内存在方法区中开辟。访问时不需要对象,可以直接使用 类.静态属性

关于Java中的static关键字:

  1. static翻译为:静态的
  2. static修饰的所有元素都是类级别的特征,与具体对象无关
  3. static修饰的方法是静态方法
  4. static修饰的变量是静态变量
  5. 所有static修饰的1元素都称为静态的,都可以使用 类.元素
  6. 也可以使用 引用.元素,但不建议

静态方法中无法直接访问实例变量和实例方法

静态代码块

可以使用static关键字定义区块【静态代码块】:

  • 语法

      static{
          Java语句;
      }
    
  • 静态代码块在类加载时执行,并且只会执行一次

  • 静态代码块在一个类中可以编写多个,且遵守自上而下的顺序执行

  • 静态代码块的作用【当然和具体需求有关】

    • 要求在类加载的时刻/时机执行代码完成日志的记录

    • 静态代码块是Java为程序员准备一个特殊的时刻,被称为【类加载时刻】

      若希望在此时刻执行一段特殊的程序,那么此段程序可以放入静态代码块

  • 通常在静态代码块当中完成预备工作,先完成数据准备工具,例如:初始化连接池,解析XMI配置文件......

补充:实例代码块【了解即可】

  • 语法:

      {
          Java语句
      }
    
  • 执行时刻:在构造方法执行之前执行,随后执行构造方法

  • 实例代码块对应构造方法,只会执行一次

  • 实例代码在一个类中可以编写多个,且遵守自上而下的顺序执行

对于两种语块的逻辑顺序

class Chunk {

	// 静态代码块
    static{
        System.out.println("静态语块");
    }

	// 实例代码块
    {
        System.out.println("实例语块");
    }

	// 构造方法
    public Chunk(){
        System.out.println("构造器工作");
    }
}
public class Test {

    public static void main(String[] args) {

        Chunk test1 = new Chunk();
        Chunk test2 = new Chunk();
    }
}

执行结果:

静态语块
实例语块
构造器工作
实例语块
构造器工作

从结果中分析

  • 静态代码块在类加载时执行,并且只会执行一次,最先执行
  • 实例代码块对应实例中,只会执行一次,在实例创建之初
  • 实例代码块在构造器之前执行,随后执行构造方法【构造器】

Java面向对象



posted @ 2022-02-04 19:03  sha0dow  阅读(38)  评论(0编辑  收藏  举报