it面试题
Tips:编程是工科,多动手、付出必有回报。
博文目录
-
【顶】好评文章推荐
-
JVM中的方法区和堆的区别是什么
1、用途差异: 方法区用于存储类信息、常量、静态变量等,而堆用于存储实例对象和数组。 2、内存回收: 在堆中,内存的分配和回收频繁发生,而方法区的内存回收相对较少。 3、线...
阅读更多
指数:21123-12-27 -
JVM标记清除算法与标记整理算法有什么区别
1、标记过程: 两者在标记阶段相同,都是标记出所有可达的对象。 2、处理死亡对象的方式: 标记-清除算法是清除标记为死亡的对象,而标记-整理算法则是将所有存活的对象移动到内...
阅读更多
指数:44223-12-27 -
JVM中的类文件结构包含哪些主要部分
1、魔数和版本信息: 类文件以魔数开头,用于识别文件格式,紧随其后的是版本信息,指明类文件的版本。 2、常量池: 存储各种字面量和符号引用,是类文件中重要的资源池。 3、访...
阅读更多
指数:19923-12-27 -
JVM的编译优化过程是什么
1、前端编译: Java源代码首先被javac编译器编译成字节码,这一阶段主要进行语法分析和代码生成。 2、即时编译(JIT): 在程序运行时,JIT编译器将热点代码(频繁执行的代码)编译...
阅读更多
指数:11223-12-27 -
JVM中的线程栈和堆的关系与区别是什么
1、内存分配区域: 线程栈用于存储线程执行方法的局部变量、方法调用和返回值,堆用于存储Java应用创建的对象实例和数组。 2、线程隔离性: 每个线程都有自己的线程栈,而堆是所...
阅读更多
指数:24123-12-27 -
JVM中的锁优化策略有哪些
1、锁粗化: JVM会将多次连续的锁请求合并为一次,减少锁请求的次数。 2、轻量级锁: 当锁是无竞争的,JVM会使用轻量级锁,减少线程同步的开销。 3、偏向锁: 在无竞争情况下,偏...
阅读更多
指数:14223-12-27 -
JVM中的逃逸分析有何作用
1、内存分配优化: 通过逃逸分析,JVM可以确定对象的作用范围,若对象不逃逸到方法外,则可能在栈上分配内存,减少堆分配压力。 2、同步消除: 如果对象创建后,只在当前线程中...
阅读更多
指数:37423-12-27 -
JVM中的本地方法接口(JNI)的特点是什么
1、定义与目的: JNI是Java Native Interface的缩写,允许Java代码调用本地方法,即用C或C++等其他语言实现的方法。 2、使用场景: 当Java的标准类库不能满足需求时,通过JNI调用本地库(如...
阅读更多
指数:47623-12-27 -
JVM中的栈帧结构包含哪些
1、局部变量表: 存储方法的参数和局部变量。 2、操作数栈: 作为方法执行过程中的工作区,存放操作指令及其操作数。 3、动态链接: 每个栈帧中都包含一个指向运行时常量池中该...
阅读更多
指数:36723-12-27 -
JVM内存泄露的常见原因有哪些
1、长生命周期对象持有短生命周期对象的引用: 导致短生命周期对象无法被及时回收。 2、集合对象未及时清理: 集合中的对象使用完后,没有从集合中移除,导致内存泄露。 3、监听...
阅读更多
指数:26223-12-27 -
JVM中如何判断一个对象是否存活?
1、引用计数法: 每个对象有一个引用计数器,计数为0表示对象不再被使用,但由于无法解决循环引用的问题,这种方法在主流JVM中并不采用。 2、可达性分析算法: 从一系列的根对象...
阅读更多
指数:19323-12-27


