和openjdk在一起的第一天-第一次接触有些生疏,就先熟悉一下吧
暂时搞到了openjdk7,就将就着看吧,(为什么csdn全部都是收费啊,llllj),但是还是决定先读这个openjdk7
还有,不知道怎么的就想试试markdown,也不知道好用不
hello world
挺有意思啊,哈哈哈哈
分割线
这是一个作为新手指引的博客,就决定是它了
openjdk下一级目录有| corba | hotspot | jaxp | jaxws | jdk | langtools | make
- jdk
首先肯定是jdk目录,这里是类库存放的地方,大部分都是java实现,有少部分是c/c++,深入学习openjdk就从这里开始,类的目录:jdk/src/share/classes
- hotspot
HotSpot虚拟机——这里面是C/C++和汇编代码(还有一些基于Java的虚拟机开发工具)。这些内容非常高级,如果你并不是一个专业的C/C++开发人员那么这些内容会让人有一点难以入手。稍后我们会更加详细地讨论一些入门的好方法。
- langtools
对于那些对编译器和工具开发感兴趣的人而言,可以从这里找到语言和平台工具。大部分是Java和C代码——学习这些内容比学习JDK代码要难,但是对于大多数开发者而言还是可以接受的。
- 还有一些其他的仓库,但是它们可能没有那么重要或者对大多数开发者而言没什么吸引力,这些仓库包括corba、jaxp和jaxws等内容。
Object类的本地源码包含在jdk/src/share/native/java/lang/Object.c文件中,它有六个方法。
Java本地接口(JNI)通常会要求本地方法的C实现按照一种非常特别的方式命名
堆中的任何Java对象都是由一个普通的对象指针(OOP)表示的,HotSpot源中相关的OOP类型层次非常复杂。这些类型被保存在hotspot/src/share/vm/oops中
Klass字是OOP头中最重要的部分之一。它是指向这个类元数据的指针(它由一个称为KlassOOP的C++类型表示)。在这些元数据当中最重要的是这个类的方法,它们被表示为一个C++虚拟方法表(一个“vtable”)。
对于新手开发者而言,对OpenJDK所提供的运行时环境有一个基础的理解是非常必要的:
- 环境中的大部分都是使用Java编写的
- 通过本地方法实现操作系统的可移植性
- 堆中的Java对象由OOP表示
- JVM中的类元数据用KlassOOP表示
- 有一个先进的高性能模板解释器,哪怕是解释执行模式下的性能