原来写了很多日志,但是都是在人人网,今天准备把这些都搬到iteye来,算是重新整理一下思路吧。
现在JIT很火,据说有的LUA jit的速度与C编译出的程序的速度是相当的,毕竟这方面做的比较早的比较有成果的还是jvm,网上搜了一下,系统分析JVM代码的资料是少的可怜,干脆,我就花点功夫去做个开拓者吧。以下所有分析基于最新jvm 的实现 jdk7的源代码,下载地址如下 http://download.java.net/openjdk/jdk7/ 我所使用的源代码的版本是 openjdk-7 build143 。
一、hotspot 入口 openjdk-7-ea-src-b142-12_may_2011\openjdk\hotspot\src\share\tools\launcher\java.c
1、SelectVersion:选择版本,主要依据是宏定义,命令行输入和manifest文件
2、CreateExecutionEnvironment (java_md.c中)
2.1 GetJREPath 可以参考windows里面的获取绝对路径的api GetModuleFileName和访问注册表的api RegQueryValueEx等
2.2 EnsureJreInstallation 验证硬件平台、ms 的crt、加载crt和jkernal.dll,调用jkernal.dll中的preJVMStart()
2.3 ReadKnownVMs
3、LoadJavaVM
4、SetClassPath
5、ParseArguments
6、SetJavaCommandLineProp
7、setXXX
8、ContinueInNewThread ---------线程内的函数是 JavaMain
8.1 _beginthreadex
8.2 AWTPreload(D3D_PRELOAD_FUNC)
8.3 WaitForSingleObject(thread_handle, INFINITE);
GetExitCodeThread(thread_handle, &rslt);
CloseHandle(thread_handle);
splash screen: 闪屏,程序初始化时为了提供好的界面所提前显示的界面
二、主要入口函数 JavaMain()
1、InitializeJVM
2、LoadMainClass
3、CallStaticVoidMethod
java.dll 对应 E:\jdk7\openjdk-7-ea-src-b142-12_may_2011\openjdk\jdk\src中的代码
注:本文写于 2011年5月份
分享到:
相关推荐
《java jdk 7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,...
必要时从java se api的源代码分析,了解各种语法在java se api中如何应用。对于建议练习的范例提供lab文档,以突出练习重点。此外,书中还将ide操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频让读者...
必要时从java se api的源代码分析,了解各种语法在java se api中如何应用。对于建议练习的范例提供lab文档,以突出练习重点。此外,书中还将ide操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频让读者...
Java JDK 7学习笔记,附源代码,视频。 ※※ 目录内容及使用方法 ※※ labs 文件夹:提供各章节练习使用的NetBeans项目。 samples文件夹:提供各章节相关的NetBeans范例项目。 tools文件夹:提供本书用到的相关软件...
最新的Java JDK6.0课件及源代码,初学Java的朋友不要错过
This is summary I made out of Java class, where shows you some jdk codes of Math package in Java....It's my out-of-class study notes I summed up;
资源名称:《Java JDK 7学习笔记》PDF内容简介:本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习Java时遇到的概念、操作、应用或认证考试等问题及解决方案。本书针对Java SE 7新功能全面改版,无论...
《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍 《java jdk 7学习笔记》是作者多年来教学实践经验的总结...
林信良的<jdk6学习笔记>这本书里用到的所有源码。rar格式
Java编译语言将Java代码编译成.class文件(只有一种形式),而C/C++语言将代码编译成01码,不同的操作系统的01码指令不同,这造成了不能跨平台,而Java将这个任务交给JVM,不同操作系统上的JVM将.class文件编译成不同...
java学习笔记JDK6课件和课本代码 java,jdk,java源代码,学习课件,学习代码
包含源代码和完整的例子,是初学者学习JAVA不错的选择。
林信良的jdk学习笔记,1.6版的源代码
java jdk源码学习Java源代码 Java JDK源代码学习笔记
java jdk源码java-jdk-源代码
清华《java学习笔记 》jdk1.5 配套光盘源代码
郝斌 Java SE源代码及课件笔记
阅读Fucking源代码---- 面前,了无秘密---- 项目介绍 本项目主要整理/记录阅读JDK原始时的理解与体会,替代参考。 项目中包含多个分支,主分区命名为master ,测试分区命名为test ,子系统/笔记分区以JDK-X ( X是...
缓慢更新一些个人学习java相关源码过程中的笔记,在这里你将不可避免地看到以下情况: 个别不懂/没想好的地方留空待补全 限于个人水平出现的解读错误 编辑错误 排版不统一 如发现有错,欢迎指正! 如果对你有用,...