前言
- 相信大家对今年IT的行情应该也有所了解了,从大厂到小厂,各种裁员消息。公司裁员我们无法决定,我们能做的就是不断提升自己,提前准备。
- 本系列文章主要分享了之前博主真实面试中遇到的一些问题,希望能够帮助准备就业或者跳槽的朋友。
起因
- 面试官: 嗯、谈谈你对JVM、JRE、JDK的认识吧。
- 我: (心里想)小样,就这问题,想难倒资深CURD工程师,还好我早有准备。回答道:JVM全称JAVA虚拟机,它可用于加载JAVA字节码文件,可以看做是JAVA的一个执行环境,JAVA跨平台特性也是因为有JVM。
- 面试官: 说完了吗、就这样?
- 我: 一听面试官这语气,心里直冒火,钱是小事,面子可不能丢,敢看不起一个多年经验的CURD工程师,这面试不给你找回来,刚要继续回答!
- 面试官: 摆了摆手,有气无力道,好吧,今天先这样,后面有消息的话人事会通知你的。
- 我: 一听面试官这语气,我更生气了,便说道,三十年河东、三十年河西、莫欺少年穷!说完就站了起来,准备走出面试室。
- 面试官: 脸一抽,嘲笑说道,你以为你是萧炎?我TM还是萧站呢!
- 我: 我一听他这回答、这语气!摆明了是占我便宜啊,体内的洪荒之力直接控制不住,抡起桌面的水瓶就往面试官脸上招呼过去!
- 我: 正在我打得正爽,正在面试官连连向我求饶的时候,脚一抽,我突然醒了,发现自己躺在床上,时间是凌晨2点。原来是做梦啊!早知道就打狠一点了,我心里暗暗说道!
- 我: 此刻的我一点睡意都没有了,回想起在梦中看到的面试官的嘴脸,我在心里暗暗发誓,我绝对不允许梦里的场景在现实重现,在面试官装B之前,我就要比他先装!
- 我: 从床上爬了起来,打开电脑,在界面输入: JVM、JRE、JDK有什么区别!
什么是JVM
(一): JVM
在认识JVM是什么之前,先回想一下平日里,如果我们想要在电脑上使用一个应用,应该具备什么条件?
首先,要有个环境(电脑就是),其次需要将这个应用安装到电脑上,然后,我们才能够使用应用来做我们想做的事情。
JVM也是类似,JVM全称Java Virtul Machine(JAVA虚拟机),它是一种计算设备的规范,可以理解成是一个虚构的计算机,它里面包含了和真实计算机相似的组件,用于模仿计算机的各种功能,然后运行在真实的计算机中
(二): JAVA为什么说是“平台无关的编程语言”
因为它包含了JAVA虚拟机(JVM),JVM知道底层硬件平台的指令长度和其他相关特性,它屏蔽了和具体平台的相关信息,使得JAVA语言开发的程序只需要一次编译生成JVM上能够运行的目标代码(字节码文件),从而可以在不同平台上运行时而不需要进行重新编译
(三): JVM内部结构
注:通常情况下我们使用的JDK是由Sun JDK和OpenJDK提供的,这个是应用最广泛的版本。而这个版本的虚拟机就是Hotspot(热点数据),所以通常情况下,我们讲的JAVA虚拟机默认就是指Hotspot。
JVM的内部可以具体区分为三大部分即: 类加载器、执行引擎、运行时数据区。