1·jvm所在的位置在哪里
jvm是装在操作系统上的一个运行JAVA的环境,相当于一个软件。操作系统下面是硬件系统。
小知识:字节码文件就是.class文件(进过javac编译过后但未解释为机器码的那一个时刻)。得益于字节码文件的存在,只需要将其他语言转换为相应的字节码文件,就可以在虚拟机上面跑起来。
2·类加载器以及双亲委派机制
2·1
类加载器分为四类:用户自定义的类加载器(user classloader),扩展类加载器(extention classloader),应用程序类加载器(application classloader),根加载器(bootstrap classloader)。
双亲委派机制的定义:当一个类收到请求的时候他不会去加载这个类,而是委托给他的父类加载器去加载,只有父加载器无法加载时才会让当前类去加载。当进行用户自定义的类加载的时候不会有bootstrap加载但是还是会委托到bootstrap,当他也无法加载的时候才会有下一级类加载器进行加载,如果都不能加载就会报classnotfound错误
2·2
双亲委派机制的意义
1·避免重复加载,当一个类在父类加载过后,就不会在子类加载器里面进行加载
2·安全,因为所有加载都会委托到根加载器,
3·源码流程:
1·先判断类是否被加载