摘要:
一:技术背景 垃圾回收(GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,早在1960年Lisp这门语言中就使用了内存动态分配和垃圾回收技术。 二:内存回收区域 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟 阅读全文
摘要:
JVM内存分配策略 一:对象内存分配两种方法 为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。 指针碰撞(Serial、ParNew等带Compact过程的收集器) 假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指 阅读全文
摘要:
多线程中 synchronized 一直是元老级角色,很多人都会称呼它为重量级锁。但是随着 Java SE 1.6 对synchronized 进行了各种优化之后,有些情况下它就并不那么重,Java SE 1.6 中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁。 Mark word 阅读全文