考点介绍:
JVM虚拟机相关内容是校招的高频考点之一,Java虚拟机,准确来说是lava二进制字节码的运行环境。jvm是一套规范,用来执行class文件,保证Java语言跨平台。
答案详情解析和文章内容可扫下方海报二维码或点击链接即可查看!
一、考点试题
1、描述一下JVM加载class文件的原理机制?
解答:JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的类......
2、说一下JVM运行时数据区[携程]
解答:程序计数器
作用:记录当前线程所执行到的字节码的行号。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
意义:VM的多线程是通过线程轮流切换并分配处理器来实现的,对于我们来说的并行事实上一个处理器也只会执行一条线程中的指令......
3、如果任务很多,线程池的阻塞队列会撑爆内存(JVM)的哪个区域()
A. 寄存器
B.栈内存
C.堆内存
D.常量池
解答:正确答案是 C
这道题需要知道线程池是用阻塞队列BlockingQueue来保存等待线程的,而容器对象数据是存放在堆里的......
4、关于JVM的内存结构描述不正确的是?
A.JAVA的栈内存不是线程共享的
B.堆内存是用于存储JAVA对象的区域
C.PC寄存器也存在内存溢出风险
D.本地方法栈也存在内存溢出风险
解答:正确答案是 C
C由于程序计数器(PC寄存器)中存储的数据所占空间不会随着程序执行而发生改变。因此,程序计数器(PC寄存器)是不会发生内存溢出现象......
二、考点文章
1、JVM内存结构和Java内存模型别再傻傻分不清了
JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的......
2、Java8的JVM内存结构
Java虚拟机在执行的时候会把管理的内存分配成不同的区域,这些区域被称为虚拟机内存,同时,对于虚拟机没有直接管理的物理内存,也有一定的利用,这些被利用却不在虚拟机内存数据区的内存,我们称它为本地内存,这两种内存有一定的区别......
3、JVM内存结构
程序计数器
作用:记住下一条要执行的二进制字节码指令地址(经过解释器翻译成机器码交由CPU运行)
特点:线程私有的;不会存在内存溢出。
......
三、考点课程
多线程中sleep()和wait()方法的区别
1 所属类不同
sleep是线程类Thread的静态方法,wait是object类的普通方法
2 线程持有锁
sleep线程暂停执行指定时间,把执行机会给其他线程,但是监控依然在,不释放线程锁。wait导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出的notify方法
......
帖子还没人回复快来抢沙发