用xmind画的jvm脑图
我在想能不能更好的更容易的理解jvm。
假如说:我在一间大房子里面,我需要去看电视,我所做的一个流程就是,找到电视遥控器,打开电视,坐沙发上看电视。
这里面,我把房子比作JVM,我比作线程,看电视比作这个线程要做的事。
我只去想房间里面只有我,我要去看电视,首先房子里需要能容得下我,然后我身上的东西还是我自己的,别人不能占有我的东西,我要能自己去看电视在这个房间里面。这个一个符合逻辑的需求。
所以JVM中的栈可以用这个来比喻,JVM中有自己的虚拟机栈,虚拟机栈是线程创建时分配的,每个线程有自己独立的栈,在一个线程需要做一个操作的时候需要一系列的动作才能完成这个操作。你正在做的就是当前任务,正在执行的变量就是当前变量。
下面我画了一幅图,但是有些思考的部分,我在想现实世界当中,看电视是连续的动作,而jvm中线程栈是先进后出的动作。这个是有区别的,但是整个来说完成这一系列动作才能完成看电视这个操作
网上找了一下栈结构,参考图片