构造块 block
block 块 { }
{ } 定义在方法中 ----> 局部代码块 | 普通代码块 执行时机: 方法调用时
局部代码块
{
int a = 10;
System.out.println(a);
}
{ ] 定义在类中方法外 —> 构造块 执行时机: 创建对象的时候
public class block{
static int a = 5;
int b = 3;
//类中方法外 创建对象时使用
{
System.out.println("构造块");
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
}
}
Sstatic {} 定义在类中方法外 — > 静态块 执行时机:类第一次加载时
public class block{
static int a = 5;
int b = 3;
//静态块
static{
System.out.println("静态块");
System.out.println(a);
block b = new block(); //需创建对象才能调用成员变量
System.out.println(b.b);
}
public static void main(String[] args) {
}
}
执行顺序
静态块 ----- > main -----> 构造块 ------> 构造器
{ } 就是一个作用域
构造块中的代码先与构造器代码执行, 因为编译时编译器会自动把构造块中的代码编译到构造构造器代码之前
如果有多个构造块,则会从上到下依次执行
构造块中代码先与构造器代码执行, 如果有多个构造块,从上到下依次执行
static只执行一次,在类的第一次加载后执行,如果存在多个静态块,从上到下依次执行
gc 垃圾回收机制
可回收的对象垃圾:
1.匿名对象
new Deom01();
2.对象无引用状态
Demo d = new Demo01();
d=null;
包 package:
注意: 不要定义与jdk 相同的包,否则引起很多问题
不需要导包的情况:
1.java.lang包下的内容
2.同包下的内容
如果使用非当前包下的内容
1.使用的包写全名 包名+类名,只在当前位置有效
2.import导包
3.* 模糊匹配, 不影响运行效率,只影响编译效率
4.静态导入,只导入静态的内容 (属性|方法)
本文深入解析Java中的构造块(block)概念,包括局部代码块、构造块、静态块的定义、执行时机及顺序,并探讨了垃圾回收机制(GC)的工作原理,以及哪些对象可能成为垃圾回收的目标。

被折叠的 条评论
为什么被折叠?



