01 JVM
java语言跨平台
c语言
c语言针对不同的操作系统要将头文件编译成不同的机器码。
java
java先将文件编译成class文件,然后交给jvm解释为机器码,jvm屏蔽了操作系统的差异性。
类加载过程
类加载机制:双亲委派机制
写一个自定义类加载器
public class SelfClassLoader extends ClassLoader { private String path; private String classLoaderName; public SelfClassLoader(String path, String classLoaderName) { this.path = path; this.classLoaderName = classLoaderName; } public SelfClassLoader() { } @Override public Class findClass(String name) { byte[] b = loadClassData(name); return defineClass(name, b, 0, b.length); } private byte[] loadClassData(String name) { name = path+name.replace(".","\\")+".class"; InputStream in = null; ByteArrayOutputStream out = null; try { in = new FileInputStream(new File(name)) ; out = new ByteArrayOutputStream(); int i=0; while ((i=in.read())!=-1){ out.write(i); } }catch (Exception e){ e.printStackTrace(); }finally { //TODO } return out.toByteArray(); } }