Java技术面试题精选:阿里、华为、腾讯经典面试题

2 下载量 119 浏览量 更新于2024-09-01 收藏 190KB PDF 举报
"阿里、华为、腾讯Java技术面试题精选" 以下是根据给定的文件信息生成的相关知识点: **类加载机制** 类加载机制是指将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载有三种方式: 1. 命令行启动应用时候由JVM初始化加载 2. 通过Class.forName()方法动态加载 3. 通过ClassLoader.loadClass()方法动态加载 **JVM的垃圾回收算法** JVM的垃圾回收算法有四种: 1. 标记-清楚算法:前后线标记处所有需要回收的对象,在标记完成后统一回收有被标记的对象。 2. 复制算法:将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当一块内存用完了,将其存在另外一块上面,然后再把已使用过的内存空间一次清理掉。 3. 标记-整理算法:标记过程与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所一端移动,然后直接清理掉端边界以外的内存。 4. 分代收集算法:一般是把Java堆分为新生代和老年代,根据各个年代的特点采用最适当的收集算法。新生代都发现有大批对象死去,选用复制算法。老年代中因为对象存活率高,必须使用“标记-清理”或“标记-整理”算法来进行回收。 **JVM调优** JVM调优的常见命令行工具包括: 1. jps命令用于查询正在运行的JVM进程 2. jstat可以实时显示本地或远程JVM进程中类装载、内存、垃圾收集、JIT编译等数据 3. jinfo用于查询当前运行的JVM属性和参数的值 4. jmap用于显示当前Java堆和永久代的详细信息 5. jhat用于分析使用jmap生成的dump文件,是JDK自带的工具 6. jstack用于生成当前JVM的所有线程快照,线程快照是虚拟机每一条线程正在执行的方法,目的是定位线程出现长时间停顿的原因。 JVM常见的调优参数包括: (待续)