The Java programming language provides safety and security guarantees such as type safety and
its security architecture. They distinguish it from other mainstream programming languages like
C and C++. In this work we develop a machine-checked model of concurrent Java and the Java
memory model and investigate the impact of concurrency on these guarantees. From the formal
model we automatically obtain an executable verified compiler to bytecode and a validated
virtual machine.