
jvm
MINKI_W
莽呀
展开
-
深入理解Java的反射机制
说反射之前大家先理解一下Java的JVM吧 什么是JVM,Java的虚拟机,Java之所以能跨平台就是因为这个东西,你可以理解成一个进程,程序,只不过他的作用是用来跑你的代码的。Java的内存模型,我们关注的点,一个方法区,一个栈,一个堆。 假如你写了一段代码:Object o=new Object(); 运行了起来! 首先JVM会启动,你的代码会编译成一个.class文件,然后被类加载器加载进J...原创 2019-08-03 00:22:23 · 190 阅读 · 0 评论 -
JVM杂谈
JVM运行时的内存划分 jvm运行时分为线程私有区和线程共享区两个部分: 线程私有 程序计数器: 记录当前线程跑到哪一行代码了 虚拟机栈: 描述java方法的内存模型 本机方法栈: native方法内存模型 HotspotJVM中本地方法栈与虚拟机栈合二为一 线程共享 堆: 所有对象实例以及数组对象 方法区: 已加载的类信息,一个类的类型,有什么属性,方法,都在方法区记录 运行时常量池: 方法去的...原创 2019-08-05 00:23:41 · 378 阅读 · 0 评论 -
程序计数器(摘自深入理解JVM)
程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程锁执行的字节码的行号指示器。在虚拟机的概念模型里(仅仅是概念,各种虚拟机可能会用其他更加高效的方法去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要以来这个计数器来完成。 因为JVM的多线程是通过线程轮流切换...原创 2019-08-05 23:56:19 · 318 阅读 · 0 评论 -
你知道什么是Happens-Before规则吗 ?
happens-before规则 我们编写的程序都要经过优化后(编译器和处理器会对我们的程序进行优化以提高运行效率)才会被运行,优化分为很多种,其中有一种优化叫做重排序,重排序需要遵守happens-before规则。 happens-before部分规则如下: 1、程序顺序规则:一个线程中的每个操作happens-before于该线程中的任意后续操作 2、监视器锁(同步)规则:对于一个监视器的解...原创 2019-08-02 00:12:44 · 197 阅读 · 0 评论