Java内存模型(JMM)和happens-before原则是如何定义的?