学习笔记--Java中static关键字
Java中static关键字
static基础用法
-
什么时候成员变量声明为实例变量
- 所有对象的这个属性随对象而变化
-
什么时候成员变量声明为静态变量
- 所有对象都是这个属性
静态变量在类加载的时候初始化,内存在方法区中开辟。访问时不需要对象,可以直接使用 类.静态属性
关于Java中的static关键字:
- static翻译为:静态的
- static修饰的所有元素都是类级别的特征,与具体对象无关
- static修饰的方法是静态方法
- static修饰的变量是静态变量
- 所有static修饰的1元素都称为静态的,都可以使用
类.元素
- 也可以使用
引用.元素
,但不建议
静态方法中无法直接访问实例变量和实例方法
静态代码块
可以使用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面向对象
- 初识Java面向对象
- 区分Java中类与对象
- 面向对象的封装性
- Java构造方法
- Java中this关键字
- Java中static关键字
- Java面向对象的继承
- Java中final关键字
- package和import