静态代码块,构造代码块,局部代码块演示

简介:

public class Test{
    
   static int num;
   static int numObj;//记录有多少个对象产生!
   static{//静态代码块, 是用来给类进行初始化的!
       //num = 10;
       ++num;
       num *=12;//没有进入静态代码块之前,num的初始化值是0
       System.out.println(num);
       //main(null);//静态代码块中可以调用main, 想一想也是, 大家都是静态的嘛!
   }
 
   //先执行构造代码段, 然后指行构造函数
    
   {//这叫做构造代码段,可以给所有对象进行初始化!每一个对象产生时都会执行!
      ++numObj;
      System.out.println("构造代码段!");
   }
 
   public Test(){//在构造方法中进行对象实例的计数
       //++numObj;
      System.out.println("构造函数!");
   }
 
   public void finalize(){//当对象生命周期结束时调用
       System.out.println("对象释放!");
       --numObj;
   }
 
   public static void show(){
       System.out.println("创建的实例个数:" + numObj);
   }
  
   public static void main(String[] args){
        System.out.println("静态代码段是用来初始化类的!");
        Test t1 = new Test();
        t1.show();
         
        {//局部代码段
           new Test();
        }
        System.gc();//启动垃圾回收器!
    new Test();
        
        new Test();
         
    System.out.println(Test.numObj);
   }
}

目录
相关文章
|
7月前
|
Java
类成员(代码块)
类成员(代码块)
37 1
|
8月前
|
安全 搜索推荐 Java
6.1 使用局部内部类优化代码:局部内部类的定义与用法
6.1 使用局部内部类优化代码:局部内部类的定义与用法
64 0
|
10月前
|
Java
Java中类的初始化过程:(静态成员变量,静态代码块,普通成员变量,代码块初始化顺序)
Java中类的初始化过程:(静态成员变量,静态代码块,普通成员变量,代码块初始化顺序)
104 0
|
Java 编译器
复习篇【类的构造方法与代码块的执行】
复习篇【类的构造方法与代码块的执行】
复习篇【类的构造方法与代码块的执行】
|
存储
循环内不要不断创建对象引用
循环内不要不断创建对象引用
158 0
|
Java 编译器 Spring
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(上)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(上)
|
架构师 Java Spring
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
静态代码块、静态变量,构造代码块、实例变量的执行顺序和继承逻辑(下)
|
Java
Java代码块(静态和非静态)在子父类中的执行顺序
Java代码块(静态和非静态)在子父类中的执行顺序
115 0
|
Java 编译器
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)
哈喽,大家好,我是指北君。 在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)