 <p>JVM actively uses OS signals (or exceptions in Windows terminology) for its own purposes:</p> <ul> <li>for implicit null pointer checks and stack overflow checks;</li> <li>for safepoint polling;</li> <li>for remote memory barriers;</li> <li>etc.</li> </ul> <p>SEGV (or exception 0xC0000005) is also generated intentionally on JVM startup to verify certain CPU/OS features. Some OSes or hypervisors had a bug that AVX registers are not restored after signal processing. Therefore, JVM needs to check whether this is the case <a href="http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/516a64e6d7c2/src/cpu/x86/vm/vm_version_x86.cpp#l259" rel="nofollow">(the source)</a>. So it generates an exception by writing to zero address and then handles it.</p> <p>This is what happens in your case. And yes, it is normal.</p>