This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BugCheckCode | Count | Reference | |
---|---|---|---|
KERNEL_DATA_INPAGE_ERROR | 4 | https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0x7a--kernel-data-inpage-error | |
INTERNAL_POWER_ERROR | 1 | https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0xa0--internal-power-error | |
SYSTEM_SERVICE_EXCEPTION | 2 | https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0x3b--system-service-exception | |
CRITICAL_PROCESS_DIED | 2 | https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0xef--critical-process-died | |
DRIVER_VERIFIER_DETECTED_VIOLATION | 1 | https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-0xc4--driver-verifier-detected-violation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package cn.fantasticmao.demo.java.lang.concurrent.simulation; | |
import java.util.concurrent.atomic.AtomicInteger; | |
public class TurnPrint { | |
private static class Task implements Runnable { | |
private final char c; | |
private final int remainder; | |
private final AtomicInteger count; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package cn.fantasticmao.jni; | |
public class SumNative { | |
static { | |
System.loadLibrary("sum"); | |
} | |
public native int sum(int a, int b); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|----------------------------------------------------------------------------------------|--------------------| | |
| Object Header (64 bits) | State | | |
|-------------------------------------------------------|--------------------------------|--------------------| | |
| Mark Word (32 bits) | Klass Word (32 bits) | | | |
|-------------------------------------------------------|--------------------------------|--------------------| | |
| identity_hashcode:25 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Normal | | |
|-------------------------------------------------------|--------------------------------|--------------------| | |
| thread:23 | epoch:2 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Biased | | |
|-------------------------------------------------------|--------------------------------|--------------------| | |
| |
https://docs.oracle.com/javase/10/gctuning/factors-affecting-garbage-collection-performance.htm
- -Xms<minimum>: min heap size
- -Xmx<max>: max heap size
- -XX:MinHeapFreeRatio=<min>: min (free space)/(live objects)
- -XX:MaxHeapFreeRatio=<max>: max (free space)/(live objects)
- -XX:NewRatio=<number>: (young generation)/(old generation)
- -XX:NewSize=<min>: min young generation size
- -XX:MaxNewSize=<max>: max young generation size
- -XX:SurvivorRatio=: (eden space)/(survivor space)
- Object Header 由几部分组成,其中有一个叫 Mark Word 的重要部分,是实现偏向锁、轻量级锁、重量级锁的关键;
- Mark Word 在 32 位、64 位的不同 CPU 架构下、是否开启 Compressed OOP 的功能、不同状态的对象,有不同的数据结构;
- 对象处于普通状态时,Mark Word 主要保存 hashcode 和锁标识状态;
- 对象处于偏向锁状态时,Mark Word 主要保存 Biased Thread 指针和锁标志状态;
- 对象处于重量级锁状态时,MarkWord 主要保存 Lock Record 指针和锁标志状态;
- Java Object Header: https://gist.github.com/arturmkrtchyan/43d6135e8a15798cc46c
- jol-samples:
- thin lock: http://hg.openjdk.java.net/code-tools/jol/file/03064c057dc9/jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_12_ThinLocking.java
- biased lock: http://hg.openjdk.java.net/code-tools/jol/file/03064c057dc9/jol-samples/src/main/java/org/openjdk/jol/samples/JOLSample_13_BiasedLocking.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package java.util; | |
...... | |
public class LinkedList<E> | |
extends AbstractSequentialList<E> | |
implements List<E>, Deque<E>, Cloneable, java.io.Serializable | |
{ | |
// 链表中的节点个数 | |
transient int size = 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package java.util; | |
...... | |
public class ArrayList<E> extends AbstractList<E> | |
implements List<E>, RandomAccess, Cloneable, java.io.Serializable | |
{ | |
// 内部数组的默认容量 | |
private static final int DEFAULT_CAPACITY = 10; |
NewerOlder