Java是编译型语言,我们编写的java文件需要编译成后class文件后才能够被JVM运行,学习ClassLoader之前我们先简单了解下Java类。
示例TestHelloWorld.java:
package com.anbai.sec.classloader;/*** Creator: yz* Date: 2019/12/17*/public class TestHelloWorld {public String hello() {return "Hello World~";}}
编译TestHelloWorld.java:javac TestHelloWorld.java
我们可以通过JDK自带的javap命令反汇编TestHelloWorld.class文件对应的com.anbai.sec.classloader.TestHelloWorld类,以及使用Linux自带的hexdump命令查看TestHelloWorld.class文件二进制内容:
JVM在执行TestHelloWorld之前会先解析class二进制内容,JVM执行的其实就是如上javap命令生成的字节码(ByteCode)。
