Java堆内存分配

ava堆内存:概述、堆的结构、对象的内存布局

Java堆内存的概述:

Java堆用来存放应用系统创建的对象和数组,所有线程共享Java堆

阅读全文 »

Java线程安全的处理方法

不可变是线程安全的

互斥同步(阻塞同步):synchronized、java.util.concurrent.ReentrantLock.

目前这两个方法的性能已经差不多了,建议优先选用synchronized。

阅读全文 »

JVM类加载机制

Class类文件的结构

任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(类和接口也可以用反射的方式通过类加载器直接生成)

阅读全文 »

从三种认知角度重识JVM

认识JVM:是什么、有什么、能干什么

Java实现平台无关

阅读全文 »

内存间的交互操作的规则

不允许read和load、store和write操作之一单独出现,以上两个操作必须按顺序执行,但不保证连续执行,也就是说,read与load之间、store和write之间是可插入其他指令的。

阅读全文 »

分派

分派:又分为静态分派和动态分派

  1. 静态分派:所有依赖静态类型来定位方法执行版本的分派方式,比如:重载方法
  2. 动态分派(后期分派):根据运行期的实际类型来定位方法执行版本的分派方式,比如:覆盖方法
阅读全文 »

双亲委派模型

JVM中的ClassLoader通常采用双亲委派模型,要求除了启动类加载器外,其余的类加载器都应该有自己的父级加载器。这里的父子关系是组合而不是继承,工作过程如下:

阅读全文 »

垃圾回收基础

  1. 垃圾回收基础:什么是垃圾、如何判定是垃圾、如何回收
  2. 根搜索算法、应用分类、GC类型、垃圾收集类型
阅读全文 »

垃圾收集算法

标记清除法

复制算法

标记整理法

阅读全文 »