构建笔记:为java hotspot vm创建vc++工程
首先下载openjdk代码包,http://download.java.net/openjdk/jdk7/,这里下载的是当前的最新版本b94,openjdk-7-ea-src-b94-20_may_2010.zip。 解压缩openjdk-7-ea-src-b94-20_may_2010.zip到D:\JVM。在D:\JVM\openjdk下打开README-builds.html文件。按照该文件说明配置cygwin。除了默认选择之外,还需要安装以下工具: 将C:/cygwin/bin加入到path环境变量下。同时配置好Java开发相关的环境变量(Path和ClassPath)。 增加环境变量HotSpotMksHome,内容为C:/cygwin/bin。 安装vs2008。打开Visual Studio 2008 Command Prompt,进入D:\JVM\openjdk\hotspot\make\windows目录,执行下面命令: create D:\JVM\openjdk\hotspot\ D:\JVM\hotspot D:\JVM\hotspot\Dist 报错,找不到ptrQueue.inline.hpp文件,这是因为在前面的版本中该文件已经被删除,但是相应的用来描述文件依赖关系的includeDB文件没有做好同步。有两种修改方法,一种是删除描述对该文件存在依赖关系的行;另一种是在openjdk\hotspot\src\share\vm\gc_implementation\g1下创建一个空文件ptrQueue.inline.hpp。然后重新调用上面的create命令,成功生成vm.vcproj文件。 打开vm.vcproj,工程结构如下图所示: 下面就可以在该环境下对jvm代码进行分析了。
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。
C++能被操作系统(Window,Linux)直接运行,而Java不行,需要有个JVM。
java语言给开发人员提供了更为简洁的语法;取消了指针带来更高的代码质量;完全面向对象,独特的运行机制是其具有天然的可移植性。
1.指针
JAVA ......
List,Queue,Set继承于Colletion,而Colletion继承于Iterable
List:以特定顺序保存一组元素,实现List接口有:
ArrayList:长于随机访问元素,但是在List中插入和移除元素比较慢
LinkedList:在List中插入和移除元素比较快,提供了优化的顺序访问,不长于随机访问元素。
Queue: 先进先出,多用于并发编程。 ......