Java之static关键字与代码块

317 阅读1分钟

1、static关键字的作用

1、使用staitc修饰一个属性

静态变量或方法不属于对象,依赖于类
静态变量是全局变量,生命周期从类被加载后到程序结束
静态变量只存一份,在静态方法区中存储
静态变量手撕本类所有对象共享一份
建议不要使用对象名去调用静态数据,建议直接使用类名调用

2、使用staitc修饰一个方法

static 修饰一个方法,那么方法属于类,不属于对象,直接用类名调用
静态方法不能访问非静态的属性和方法,只能访问静态的,自己方法内定义的局部变量除外

3、使用static修饰一个类(内部类)

4、class文件加载到内存的结构图

2、代码块

1、普通代码块
直接写在方法中的代码块就是普通代码块
2、构造块是在类中定义的代码块

//在创建对象时会被调用,优于构造方法执行 ,一般不怎么用
class Demo{
   {	// 构造块
	System.out.println("构造块") ;
   }
   public Demo(){
	System.out.println("构造方法。") ;
   }
}


3、在类中使用的使用staitc修饰的代码块 静态代码块

class Demo{
  {
	System.out.println("构造块") ;
  }
  //最先执行 在第一次创建对象的时候执行一次 ,只执行一次 一般在项目开发中通常会使用静态代码块 来初始化 只调用一次的数据 
  static{
	System.out.println("静态代码块") ;
  }
  public Demo(){
	System.out.println("构造方法。") ;
  }
}

4、同步代码块 在多线程的时候会使用到 (先不介绍)