很多热衷于源码的人一直关心Java源码问题, 一般不提倡在缺乏任何文档和熟悉源码架构人的指导下研究源码。对于学习java技术来说,笔者认为首先应该熟悉的是标准java类库的使用,然后可以逐步了解部分有用的核心类的源码实现,如java.util包中的类的实现,这对学习数据结构大有帮助,这部分类库相当于C++中的STL。还有一些类库的源码也是值得学习的,如ClassLoader的实现。
Java是开放式的标准,但并非是Open Source。所以提到Java源码,必须分清究竟是指Java技术的哪一部分。下面列举了一些跟Java相关的源码问题:
1.Java类库的源码,由java写就,安装完JDK后解开src.jar就是
2.JDK工具的源码,也是由java写的,如javac编译器,jar等工具,包含在rt.jar,tools.jar中,源码不公开,但可以反编译得到。
3.Java 虚拟机的源码,由C写就,对应的实体为jvm.dll(Windows下)以及jre/bin下的一些原生(windows下为一些dll文件),源代码需要许可证。
另外还有一个问题,何为纯Java(pure java)?
凡是由标准Java类库实现的Java代码称为pure java,即不包含任何本地代码,即你的Java代码中不包含native方法。