写JAVA虚拟机需要了解底层么?

比如 了解CPU指令 汇编 地址 寻址 栈 多线程啥的????

需要,但这里的底层,并不是真实机器的底层,而是Java虚拟机的底层。
比如字节码、JVM指令集、运行时数据区(包括堆、栈)等等。