摘要:
一、事务的并发问题有哪几种? 丢失更新:一个事务的更新覆盖了另一个事务的更新;脏读: 一个事务读取了其他一个事务未提交的数据;不可重复读: 不可重复读的重点是修改,同样条件下两次读取结果不同,也就是说,被读取的数据可以被其它事务修改;幻读:幻读的重点在于新增或者删除,同样条件下两次读出来的记录数不一 阅读全文
摘要:
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0 阅读全文
摘要:
Jvm垃圾回收目前就准备了这三篇博文进行整理,在写博文的过程中我也是边看边记载的,我觉得这种学习方式更容易让人记住,不会轻易忘记。以前的学习模式都是看PDF文档、看书等,但是有个缺点就是当时记住了过段时间就会忘记,因此想把学习过程中重要的部分做个笔记总结,以便于后期复习回顾(学习技巧仅个人观点)同时 阅读全文
摘要:
在《【JVM系列】4、Jvm垃圾回收器(基础篇)》中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法、可达性分析算法。以及Java引用的4种分类:强引用、软引用、弱引用、虚引用。和方法区的回收介绍。 那么接下来我们重点研究下虚拟机的几种常见的垃圾回收算法:标记-清除算法、复 阅读全文
摘要:
一:概述 在这篇文章中《【JVM系列】1、运行时数据区》介绍了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈,3个区域随着线程的生存而生存的。内存分配和回收都是确定的。随着线程的结束内存自然就被回收了,因此不需要考虑垃圾回收的问题。而Java堆和方法区则不一样,各线程共享,内 阅读全文
摘要:
1.Java内存模型概述 Java内存模型是一种抽象概念,不是真实存在的。主要定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量这样的底层细节。注意:这里的变量仅包括实例字段、静态字段、构成数组对象的元素,但不包括局部变量与方法参数。因为后者是线程私有的,不会被共享,自然就 阅读全文
摘要:
1.概述 虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制。 2.类的加载时机 类从被虚拟机加载到内存开始,直到卸载出内存为止,整个生命周期包括:加载——验证——准备——解析——初始化——使用— 阅读全文
摘要:
一:运行时数据区 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运 阅读全文