编译器和虚拟机有什么联系和区别?
今天看Core Java,看到一句话,不太明白。。不知道编译器和虚拟机之间是怎么工作的。。
“内部类是一种编译器现象,与虚拟机无关。编译器将会把内部类翻译成用$分隔外部类名与内部类名的常规文件,而虚拟机则对此一无所知。”
求解。。谢谢
[解决办法]
编辑器将你的java源代码编译成为java bytecode(就是*.class文件中的代码),也即java虚拟机的机器语言;
而java虚拟机则是java bytecode的执行平台。
这句话的意思是,内部类Inner(假设其外部类名为Outter)会被编译器翻译成为一个普通的类,其类名是Outter$Inner.class,而虚拟机在执行期间对此一无所知。
你不明白就放过,时间长了自己就明白了。