猿问

什么是类加载?为什么再一次创建类的对象时(最后一行代码)构造方法和普通初始化块会再执行一次?

package com.imooc;

public class HelloWorld {

    

  int num1;

  int num2;

  static int num3;

  public HelloWorld(){

 num1 =91;

 System.out.println("通过构造方法为变量num1赋值");

  }

  {

num2=74;

System.out.println("通过普通初始化块为变量num2赋值");

  }

  static {

 

num3=83;

System.out.println("通过静态初始化块为num3赋值");

  }

  public static void main(String[] args){

 HelloWorld hello = new HelloWorld();

 System.out.println("num1:"+hello.num1);

 System.out.println("num2:"+hello.num2);

 System.out.println("num3:"+num3);

 

 HelloWorld hello2=new HelloWorld();

  }

  }


HelloBot
浏览 1311回答 3
3回答

rookie2maven

类加载简单点说就是Java虚拟机在运行时加载编译后以.class结尾的文件。再次创建时需要构造器和初始化快提供生成.class 文件必要的信息,你可以看看Java虚拟机的工作原理。
随时随地看视频慕课网APP

相关分类

Java
我要回答