Java编译运行过程

1 Java程序编译过程

在编译时,Java文件由Java编译器(它不与底层操作系统交互)将Java代码转换为字节码(.class)。

image.png

2 Java程序运行过程

在Java程序运行中,会执行以下步骤:

image.png

类加载器(Classloader):类加载器是JVM的子系统,用于加载类文件。

字节码验证程序(Bytecode Verified):检查代码片段中是否存在可能违反对对象访问权限的非法代码。
解释器(Interpreter):读取字节码流,然后执行指令。

3 两个常见的问题

3.1 Java源文件命名方式

问题:一个class的名称为Simple01,Java源文件名称可以不是Simple01.java么?

答案是可以的。

image.png

3.2 一个Java源文件写多个类

问题:一个Java源文件中可以写多个类么?

答案是可以的,但要注意每个类的修饰符,如果不是public的,只能内部使用。

比如以下:


package com.cxd.java.learning.simple01;
/**
 * 网址:https://www.jhelpe.net
 *
 * author : kame
 * date : 10/15/23 10:45 AM
 */
public class MultiClass {


    class ClassA{
        //成员变量
        private Integer id;
        /**
         * 带参数构造函数
         */
        public ClassA(Integer id){
            this.id = id;
        }

        public Integer getId(){
            return this.id;
        }
    }

    public class ClassB{
        //成员变量
        private String name;
        /**
         * 带参数构造函数
         */
        public ClassB(String name){
            this.name = name;
        }

        public String getName(){
            return this.name;
        }
    }

    public static void main(String[] args) {
        MultiClass multiClass = new MultiClass();
    }
}

看此类编译后的类文件如下:

image.png


在同一个java文件声明几个类时,编译后,会变成此类的内部类,在生成的字节文件上,会带上类文件的名字,然后加上$号,在加上内部类的名字。

腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/qo4JuvrOGvhDTJ3D (转载请保留)。
关注下面的标签,发现更多相似文章