《隔离十四天》系列 -第三天 -理解JVM以及JVM的内存结构

前言

隔离第三天开始变得烦躁,明白了狗子的那颗想要出去撒欢的心。
在这里插入图片描述
虽然想出去,但是那颗爱学习的心不能断,所以还是要继续写我都博客。

我想对社区阿姨说,我体温一直36度,真的没病,让我出去看看这个世界吧!!!

好了,言归正传。

昨天说到了线程的问题,线程中的synchronized关键字是基于JVM层面实现的,所以今天就来说说JVM,

JVM是干嘛的呢,请看下图,
在这里插入图片描述
图片来自百度百科。(没什么事情是百度解决不了的,如果有那就google)!

我最烦恼的就是理解这些概念,所以说下我的理解。

我所理解的JVM,一句话概括就是:将我们所写的代码解析成机器可以识别的语言

如果没有JVM,那我们想要执行一段java代码,我们交给机器执行,

我:hey,man,给我输出一段Hello world

机器:一脸懵逼,what are you talking about?

你看你说的机器听不懂,机器说的你也看不懂,这就尴尬了!

再举个例子来说,比如我们跟老外聊天(不懂中文的老外哈)

我说:嘿!你是煞笔!

老外说:Oh,Young man,you are my brother!

你看我们说的他根本不懂,他还以为我说的是好话呢,但是呢,此时如果有一款翻译软件呢,比如谷歌翻译,于是对话就变成了:

我:hey,you are foolish.
老外:Don't talk to me like that!然后一个沙包大的拳头招呼过来!

你看有了谷歌翻译我们说的话老外就全部能听懂了,最后还给了我们一个拳头的回应。所以呢JVM就扮演着谷歌翻译的角色,帮我们翻译我们的代码给机器。

有了JVM我们执行一段hello world,JVM给我们翻译好交给机器,机器收到了,给我们输出hello world,你看这不就完美了。

在这里插入图片描述

但是问题又来了,我们都在用JVM,然后呢我想输出hello world,你想输出hello china,结果呢却给我输出hello china,这不就扯犊子了,跟我们想要的结果不一样啊,
所以呢JVM对于数据的存储要是有一定的规则的,比如我们输出hello world交给jvm,然后呢jvm给我们一个密码,说这是到时候取数据的,然后我们取数据的时候输入这个密码,好了我们想要的hello world就出来了,数据也不会错了!所以这就要说到JVM的内存模型。

在这里插入图片描述

那JVM的内存模型怎么解释呢,这个我很来劲,其实吧,我理解的JVM模型其实就是我们住的两室一厅一厨一卫的房子,不信看我怎么给你解释。

  • 先说咱们的客厅,客厅是进来房子人人都能进的对吧,然后还是一片空间共享的区域,进来的人跟房子主人聊完天交流完信息,然后就被房子主人赶出去了,所以这是不是就是jvm中的堆。一样的线程共享,一样的进来和出去。
  • 再说我们的卫生间,卫生间需要人人都能进的对吧,不然人家想上厕所你不让人家上,那人家不打人啊。所以这个卫生间是不是可以比喻成JVM中的方法区,也是一样的线程共享。
  • 再来说厨房,厨房是人家房子的主人管的,人家想让谁进就让谁进,人家房子的主人说了算,再说了厨房就那么大点地方,人人都往里挤还不爆了啊,所以这个厨房是不是就是JVM中的虚拟机栈。
  • 再来说主卧,这主卧是人家房子的主人的,一个外人不能随便进去住吧,不然房子的主人不直接轰走你啊,所以主卧是不是就是本地方法栈呢。
  • 最后说次卧,次卧更简单了,房子的主人想让谁进去住就进去住,人家说的算,你硬闯人家直接让你滚呢。所以这是不是就是JVM的程序计数器呢。

最后谁是房子的主人呢,当然是JVM本身了。

所以我严重怀疑jvm的作者是不是当初就住在一个两室一厅一厨一卫的房子里开发的JVM,想到了这个模型(哈哈哈哈哈,此处纯属YY)

更好玩的来了!

在这里插入图片描述
那就是JVM中的GC,你看哈,如果一群人进入房子,然后在客厅了聊天、打牌、吃饭…,
然后房子的主人说好了好了,你们的消息我都知道了,赶紧滚赶紧滚,然后一群人就被请出去了,
然后又进来一群人…以此往复是不是就是GC的过程.

创建对象和清理对象是不是就是进入房子和出去房子的人的过程。而GC就是清理的在这个房子的客厅里没有消息价值的人

但是你又跟我抬杠了

 说方法的执行怎么解释?

这个更简单啊,你看JVM中的方法的执行实在虚拟机栈中,而虚拟机栈对应的厨房,那方法的执行不就是在厨房做饭的过程
,方法中的变量以及各种信息不就是做的菜吗,吃完了不就没有了吗。

在这里插入图片描述
所以啊,面试的时候遇到面试官让你回答JVM的内存模型就想想自己的房子,就知道各个区域存放什么了。

以上就是自己对JVM的理解,也不说恰不恰当了,自己能通过这个记住就算一种方式了,各位也就看看喜欢的关注不喜欢的就当看个笑话!!

To be or not to be,this is a question!

发布了59 篇原创文章 · 获赞 6 · 访问量 4540

猜你喜欢

转载自blog.csdn.net/qq_40126996/article/details/104304678