JVM内存模型与Java线程内存模型的区别
JVM内存模型描述的是Java虚拟机在执行Java程序时如何管理和使用内存,主体围绕:方法区(Method Area)、堆(Heap)、程序计数器(Program Counter Register)、虚拟机栈(Java Virtual Machine Stacks)、本地方法栈(Native Method Stacks)进行活动。
Java线程内存模型(JMM,Java Memory Model),主体就是线程的内存管理,线程间共享变量的访问规则,以及在这些规则下如何保证内存的可见性、原子性和有序性。缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。
JVM内存管理在虚拟机的使用,java线程内存在线程间资源合理利用。
如果某个表有近千万数据,CRUD比较慢,如何优化
1、表结构优化,字段数量的限制,及字段长度定义尽量小而满足需要。
2、建立索引、合理利用索引。
3、采用缓存,尽量减少访问数据库。
4、主从模式,写入主表,读取从表。
JVM的GC执行时机
GC 是垃圾回收器的简称,全称是Garbage Collection。
只有新的对象或者基本类型的数据,内存空间不足时,会触发GC的执行。其他情况都会根据程序计数器或者超生命周期才会触发GC的执行。
分代回收机制:新生代、老年代。新生代,绝大多数对象都是朝生夕死的,每次触发GC,这个区域里大部分对象都会被回收。对于熬过很多次依然存活的对象,这种对