redis源码分析

阅读全文

2017-年终总结

回家过年

2016年的除夕是 2017-1-27 号,我买到的票是 26 号晚上的一趟卧铺。Z179 北京到武威 2017-1-26 下午 15:15 分发车,到武威是 第二天 (17号) 13:12 , 总共 21 小时 57 分钟。

阅读全文

JVM-4.JamVM对象模型

对象的表示

对象大小的确定

ClassBlock 结构中有一个字段(object_size)存储着对象大小,所以对于每一个类其大小在类被加载的时候就已经确定了。

阅读全文

JavaEE-使用JavaEE开发Web项目

java web 发展

1999年,推出了 J2EE 1.2 版本,到 2005 年名称变为 Java EE 5,Java EE is currently maintained by Oracle under the Java Community Process。到 2017-9-12 Oracle 宣布将 JavaEE 提交给 Eclipse Foundation。Eclipse 将 Java EE 改名为 EE4J(Eclipse Enterprise for Java),并成为其一个顶级项目。

阅读全文

git-搭建git Server

安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum install git
cd /usr/local/src
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
yum install python-setuptools
python setup.py install

useradd \
-r \
-s /bin/sh \
-c 'git version control' \
-d /home/git \
git
mkdir -p /home/git
chown git:git /home/git

阅读全文

bochs-编译安装

编译可以使用 gdb 进行调试的 bochs

编译环境 win7 + cygwin-2.8.2(x86, 32位)

阅读全文

JVM-windows平台上编译openjdk

编译环境: win7 + cygwin

参考 openjdk/README-builds.html

准备编译环境

    阅读全文

    JVM-类型系统的实现

    hotspot 的历史

    Smalltalk

    Smalltalk is an object-oriented, dynamically typed, reflective programming language.

    阅读全文

    JVM-hotspotVM的初始化

    使用 java.exe 启动一个程序的时候会加载 jvm.dll , 调用其 JNI 接口。

    1
    2
    3
    4
    5
    6
    7
    // JavaVM 和 JNIEnv
    // 都是一个包含 JNI 接口的对象。这两个参数都是最终被
    // JVM 初始化成功之后,需要初始化的参数。

    InitializeJVM(JavaVM **pvm, JNIEnv **penv, InvocationFunctions *ifn){
    r = ifn->CreateJavaVM(pvm, (void **)penv, &args);
    }

    阅读全文

    ClassLoader

    java 程序的启动

    1
    2
    3
    ## 调试模式启动 JAVA
    ## 将输出一系列调试系统
    set _JAVA_LAUNCHER_DEBUG=1

    阅读全文