yihau

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

03 2018 档案

摘要:说到实现线程安全第一个想到的就应该是锁,同步,synchronized这样的字眼。但是synchronized是怎么实现同步呢,在JVM编译的时候会在synchronized块的前后分别添加一条指令,monitorenter/monitorexit,会在字节码的异常路径上也添加monitorexit 阅读全文
posted @ 2018-03-10 21:35 yihau 阅读(168) 评论(0) 推荐(0)

摘要:虚拟机把类从Class文件(可能是网络上的二进制流)加载到内存中,并对数据进行校验,解析初始化,然后形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 1、类的生命周期 2、什么情况下开始类的加载? 虚拟机没有规定类加载的时机,但是规定了类初始化的时机,而在类初始化之前,必须要完成之 阅读全文
posted @ 2018-03-10 12:17 yihau 阅读(152) 评论(0) 推荐(0)

摘要:1、哪些对象需要回收 在进行垃圾回收的时候需要确定哪些对象活着,哪些对象死去(没有引用指向的对象)。先来看判断对象是否存活的方法。 1.1引用计数法 给对象添加引用计数器,每当有引用到此对象,计数器+1,引用失效的时候计数器-1;但是,主流的JVM都没有用这种方法,这种方法的缺点是无法解决对象之间的 阅读全文
posted @ 2018-03-09 22:27 yihau 阅读(123) 评论(0) 推荐(0)

摘要:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。其中有些区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。下图左边是所有线程共享区域,右边是线程私有区域。 1、程序计数器 程序计数器内存空间较小,主要记录下一条需要执行的字节码的位置 阅读全文
posted @ 2018-03-09 20:44 yihau 阅读(179) 评论(0) 推荐(0)