前言
很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。
下述是我收录整理的Android面试题汇总,由于篇幅原因,在这只把Java类加载部分的题目列举出来,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我更新的知识点,同时这份面试集锦的整理也花费了我很多时间,有需要的朋友可以帮忙转发分享下,点个赞~
1、Java的类加载过程
jvm将.class类文件信息加载到内存并解析成对应的class对象的过程,注意:jvm并不是一开始就把所有的类加载进内存中,只是在第一次遇到某个需要运行的类才会加载,并且只加载一次
主要分为三部分:1、加载,2、链接(1.验证,2.准备,3.解析),3、初始化
1:加载
类加载器包括 BootClassLoader、ExtClassLoader、APPClassLoader
2:链接
验证:(验证class文件的字节流是否符合jvm规范)
准备:为类变量分配内存,并且进行赋初值
解析:将常量池里面的符号引用(变量名)替换成直接引用(内存地址)过程,在解析阶段,jvm会把所有的类名、方法名、字段名、这些符号引用替换成具体的内存地址或者偏移量。
3:初始化
主要对类变量进行初始化,执行类构造器的过程,换句话说,只对static修试的变量或者语句进行初始化。
范例:Person person = new Person();为例进行说明。
Java编程思想中的类的初始化过程主要有以下几点:
- 找到class文件,将它加载到内存
- 在堆内存中分配内存地址
- 初始化
- 将堆内存地址指给栈内存中的p变量
以上就是Android Java类加载过程的面试题目,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我更新的知识点,同时这份面试集锦的整理也花费了我很多时间,有需要的朋友可以帮忙转发分享下,点个赞~
Android架构师之路很漫长,一起共勉吧!
——————分割线——————
简书点赞可以有好几种赞,长按点赞按钮就会有选项,大家点赞的时候,麻烦点个超赞~在这里先谢谢您的支持啦!
网友评论