Uber Interview Question

Explain the Java Memory Model and how it relates to the volatile and synchronized keywords.