Java
Oracle JDK有部分源码是闭源的,如果确实需要可以查看OpenJDK的源码,可以在该网站获取。
http://grepcode.com/snapshot/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/
http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/73d5bcd0585d/src 上面这个还可以查看native方法。
JDK&JRE&JVM
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具(编译、开发工具)和Java核心类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
![7b30e9a39ef888c61d628f05b6d8308f.png](https://i-blog.csdnimg.cn/blog_migrate/a72c1e601c4b0e2cf20e6ae394f3c684.jpeg)
JDK包含JRE和Java编译、开发工具;JRE包含JVM和Java核心类库;运行Java仅需要JRE;而开发Java需要JDK。
跨平台
字节码是在虚拟机上运行的,而不是编译器。换而言之,是因为JVM能跨平台安装,所以相应JAVA字节码便可以跟着在任何平台上运行。只要JVM自身的代码能在相应平台上运行,即JVM可行,则JAVA的程序员就可以不用考虑所写的程序要在哪里运行,反正都是在虚拟机上运行,然后变成相应平台的机器语言,而这个转变并不是程序员应该关心的。
最后
我是小瑶,一名在互联网一线公司苟且偷生的工具人,记录一下自己学Java的经历,如果文中有任何不对的地方,因为公众号开通的晚没有留言功能,所以欢迎加我微信进行交流呀~
![4b81b009c58329a16ac4de6bb0d45414.png](https://i-blog.csdnimg.cn/blog_migrate/c1840fe27b02be1191bc09820956293a.jpeg)
![52ae3646936659607e131e95a18e0207.png](https://i-blog.csdnimg.cn/blog_migrate/2492cf83a7a586a7031748b7f04a6d0f.jpeg)