`
eric_weitm
  • 浏览: 235973 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDK7 源代码笔记 一

阅读更多
原来写了很多日志,但是都是在人人网,今天准备把这些都搬到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 jdk 7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,...

    Java+JDK+7学习笔记_林信良编著.pdf

    必要时从java se api的源代码分析,了解各种语法在java se api中如何应用。对于建议练习的范例提供lab文档,以突出练习重点。此外,书中还将ide操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频让读者...

    Java JDK7学习笔记-光盘

    必要时从java se api的源代码分析,了解各种语法在java se api中如何应用。对于建议练习的范例提供lab文档,以突出练习重点。此外,书中还将ide操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频让读者...

    Java JDK 7学习笔记

    Java JDK 7学习笔记,附源代码,视频。 ※※ 目录内容及使用方法 ※※ labs 文件夹:提供各章节练习使用的NetBeans项目。 samples文件夹:提供各章节相关的NetBeans范例项目。 tools文件夹:提供本书用到的相关软件...

    java学习笔记JDK6.0课件和代码

    最新的Java JDK6.0课件及源代码,初学Java的朋友不要错过

    jdk 源代码的Math包 学习笔记

    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;

    《JavaJDK7学习笔记》PDF

    资源名称:《Java JDK 7学习笔记》PDF内容简介:本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习Java时遇到的概念、操作、应用或认证考试等问题及解决方案。本书针对Java SE 7新功能全面改版,无论...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    林信良的jdk6学习笔记源代码

    林信良的<jdk6学习笔记>这本书里用到的所有源码。rar格式

    java jdk8 学习笔记

    Java编译语言将Java代码编译成.class文件(只有一种形式),而C/C++语言将代码编译成01码,不同的操作系统的01码指令不同,这造成了不能跨平台,而Java将这个任务交给JVM,不同操作系统上的JVM将.class文件编译成不同...

    java学习笔记JDK6课件和课本代码

    java学习笔记JDK6课件和课本代码 java,jdk,java源代码,学习课件,学习代码

    Javajdk5学习笔记

    包含源代码和完整的例子,是初学者学习JAVA不错的选择。

    jdk学习笔记

    林信良的jdk学习笔记,1.6版的源代码

    javajdk源码学习-java-source-code:JavaJDK源代码学习笔记

    java jdk源码学习Java源代码 Java JDK源代码学习笔记

    javajdk源码-java-jdk-source-code:java-jdk-源代码

    java jdk源码java-jdk-源代码

    java学习笔记源代码

    清华《java学习笔记 》jdk1.5 配套光盘源代码

    郝斌 Java SE源代码及课件笔记.rar

    郝斌 Java SE源代码及课件笔记

    LearningJDK:JDK源码阅读笔记

    阅读Fucking源代码---- 面前,了无秘密---- 项目介绍 本项目主要整理/记录阅读JDK原始时的理解与体会,替代参考。 项目中包含多个分支,主分区命名为master ,测试分区命名为test ,子系统/笔记分区以JDK-X ( X是...

    javajdk1.8源码-Java-source-reading:jdk1.8源代码分析

    缓慢更新一些个人学习java相关源码过程中的笔记,在这里你将不可避免地看到以下情况: 个别不懂/没想好的地方留空待补全 限于个人水平出现的解读错误 编辑错误 排版不统一 如发现有错,欢迎指正! 如果对你有用,...

Global site tag (gtag.js) - Google Analytics