JVM 内存模型优点
1. 内置基于内存的并发模型: 多线程机制
2. 同步锁 Synchronization
3. 大量线程安全型库包支持
4. 基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁。
5. 多核并行计算模型
6. 基于线程的异步模型。
JVM 性能的人为问题
1. 关键原因是:没有正确处理好对象的生命周期。
2. 需要从需求中找出存在自然边界的业务对象,将其对应落实到内存中,成为内存模
型 In-memory Domain Model。
3. 有大小边界限制的内存是缓存,没有永远使用不完的内存,缓存=“有边界的”内存。
4. 缓存是 Domain Model 对象缓存,不同于传统意义上数据库缓存的定义。
5. 分布式缓存可以提高巨量数据处理计算能力。
Java 内存种类
1. Stack 栈内存
存取速度快,数据可多线程间共享。
存在栈中的数据大小与生存期必须确定
2. Heap 堆内存
大小动态变化,对象的生命周期不必事先告诉编译器 JVM。
两种内存使用
1. Stack 栈内存
基本数据类型,Java 指令代码,常量
对象实例的引用 对象的方法代码
2. Heap 堆内存
对象实例的属性数据和数组。堆内存由 Java 虚拟机的自动垃圾回收器来管理。
对象如何保存在内存中?
1. 对象的属性 Attribute Property