构建笔记:为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代码进行分析了。
相关文档:
创建一个JFrame
下面用简单的实例演示了Java Swing创建一个能输入内容的窗口
public class frameTest(){
public static void Main(String args[]){
//创建JFrame对象,JFrame用来在屏幕上显示一个Windows窗口。
JFrame frame = new JFrame("第一个JFrame"); &nbs ......
对于JAVA编程和很多类似C、C++语言有一个巨大区别就是内存不需要自己去free或者delete,而是由JVM垃圾回收机制去完成的。对于这个过程很多人一直比较茫然或者觉得很智能,使得在写程序的过程不太考虑它的感受,其实知道一些内在的原理,帮助我们编写更加优秀的代码是非常有必要的。
本文从以下几个方面进行阐述:
......
List,Queue,Set继承于Colletion,而Colletion继承于Iterable
List:以特定顺序保存一组元素,实现List接口有:
ArrayList:长于随机访问元素,但是在List中插入和移除元素比较慢
LinkedList:在List中插入和移除元素比较快,提供了优化的顺序访问,不长于随机访问元素。
Queue: 先进先出,多用于并发编程。 ......
网上搜索了一大堆去掉/*和*/之间注释的代码,就像<The C Programming Language>练习1-23里有人说的一样
大部分都会被以下的程序broken,这个功能看起来简单,实际上很有难度.网上实现的代码,除了我找到的一个用文件指针实现的没有问题外,其余的都存在各种bug,不信的话就用以下的程序测试一下:-),当然这个程序也不够完善 ......
1.下载2005数据库驱动(sqljdbc.jar)
2.这时要用Eclipse等集成开发环境,在build path里面把2000数据库驱动包删除了,然后导进2005数据包。
3.把代码中注册数据库驱动的代码换成2005的代码。
如:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 version
Class.forName("com.microsoft.jdb ......