File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 40
40
- 对象头(Header)* todo:添加图示*
41
41
- 对象自身的运行时数据,HashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等, Mark Word
42
42
- 类型指针,即类元数据指针。** 注意:** 并不是所有虚拟机实现都必须在对象数据上保留类型指针
43
- - 如果对象是一个Java数组,那在对象投中还必须有一块用于记录数组长度的数据
43
+ - 如果对象是一个Java数组,那在对象头中还必须有一块用于记录数组长度的数据
44
44
- 实例数据(Instance Data)
45
45
- 字段内容,无论是父类继承还是子类中定义,都需要记录下来
46
46
顺序受虚机分配策略参数(FieldsAllocationStyle)和字段在Java远吗中定义顺序的影响
55
55
- 优势是速度快,节省了一次指针定位的时间开销,HotSpot采用此种方式
56
56
5 . 实战:OutOfMemoryError
57
57
- Java堆溢出
58
+ - 不断创建对象,并添加到列表中
59
+ - 虚拟机栈和本地方法栈移出
60
+ - HotSpot不区分虚拟机栈和本地方法栈
61
+ - 调小栈空间,递归
62
+ - 不断创建线程(64位系统下很难)
63
+ - 方法区和运行时常量池溢出
64
+ - JDK 1.6可以设置-XX: PermSize 和-XX: MaxPermSize ,不断创建字符串并intern(),并添加到列表中
65
+ - JDK 1.7可以利用字节码技术不断创建增强类
66
+ - 本机直接内存溢出
67
+ - NIO使存储在Java堆中的DirectByteBuffer对象可以直接操作堆外内存
68
+ - 通过Unsafe类不断分配堆外内存
69
+ - DirectMemory导致的内存溢出,一个明显特征是在Heap Dump文件中不会看见明显的异常,如果OOM后Dump文件很小,且程序中直接或间接使用了NIO,则可能为此原因
Original file line number Diff line number Diff line change 3
3
1 . uuid是否有重复?
4
4
- 自动id生成策略
5
5
- 分布式id生成原理
6
+ 2 . 线程池
7
+ 3 . 前10个ip,内存不足
You can’t perform that action at this time.
0 commit comments