双亲委派模型的工作流程和作用?
我的答案 :
第一步:一个类加载器收到了类加载的请求;
第二步:它自己不会尝试去加载这个类,二是将这个请求委派给父类加载器去完成;
第三步:每一个层次的类加载器都是委派给父类加载器去完成,直到顶层的启动类加载器;
第四步:直到父类加载器反馈自己无法完成这个加载过程时(搜索范围没有找到要加载的类),子加载器才会尝试自己去加载。
作用
1.防止重复加载同一个class。通过委托确认是否加载,如已加载,无需重复加载,保证数据安全
2.防止核心class被修改,如String类,若我们自定义一个java.lang.String类,则不会去加载,会加载jdk自带的String类
什么是 Class 文件? Class 文件主要的信息结构有哪些?
我的答案 :
Class文件是一组以8个字节(64位)为基础单位的二进制流。
在class文件中,主要分为魔数、Class文件的版本号、常量池、访问标志、类索引(还包括父类索引和接口索引集合)、字段表集合、方法表集合、属性表集合。
Java 语言怎么实现跨平台的?
我的答案 :
首先是Java的代码由javac编译器被编译成为字节码文件(.class)文件,不同平台JVM中的Java解释器会将这个.class文件翻译成其所在平台上的机器码文件,再执行对应的机器码就可以了,从而实现了跨平台性。