02 2012 档案
摘要:有感于马上要做个比较大的业务系统,想到那无止境的增删改查、粘贴复制,顿时脑后升起一阵凉风。于是想到个找或者写一个Java代码的生成器,这样在正常开发进度下,也能余下更多的时间去做些别的事情。 闲话少说,首先总结下需求: 我需要的这个工具能够读取数据库表结构,通过对字段类型、名称等分析得到需要的各种变量,根据模板生成相应的pojo类、hibernate的xml配置文件、dao和service的接口和类。 需求看起来很简单,但是一是没搞过这样的小工具,二是技术不过关,所以还是想到了找找有没有开源的代码拿过来根据自己的需求改。 于是找到了rapid-generator这个开源工具,同学们...
阅读全文
摘要:每一个Class都对应着唯一的一个类或借口的定义信息。这里,我们称为"Class文件格式"只是通俗的将任意一个符合有效的类或借口的格式这么称呼,但是它并不一定是以磁盘文件的形式存在。 每个Class文件都是由8字节为单位的字节流组成,所有的16位、32位和64位长度的数据将被构造成 2个、4个和8个8字节单位来表示。ClassFile结构 每一个Class文件对应于一个如下所示的ClassFile结构体。ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_c...
阅读全文
摘要:字符 Java用char类型来表示字母、数字、标点符号以及其他特殊字符。Java基于Unicode4.0来表示每一个字符,Unicode的设计目标是容纳世界上所有主要语言中的字符。 Java使用16位即2个字节来表示字符,这意味着Java可以表示216,即65536个字符,看起来很多,但是还不能支持整个Unicode标准中的所有字符。如果超过这个范围,Java允许使用int类型来表示字符,int类型字长4个字节32位,可以表示232位的字符。 Java中表示字符的最简单的方式如下,使用单引号嵌入字符:char capitalA = 'A'; 字符从本质上讲是数字。每一个字符映射
阅读全文
摘要:Java虚拟机通过系列类加载器加载Class文件,然后读取其中的字节码指令进行工作的。而Class文件则是通过Java编译器编译Java源代码得到的,如下图: 理解编译器是如何与Java虚拟机协同工作的,对编译器开发人员来说很有好处,同样也有助于理解Java虚拟机本身。 下面主要介绍的是Java虚拟机规定的编译规则:常量、局部变量的使用和控制结构 Java虚拟机是基于栈架构设计的,它的大多数操作是从当前栈帧的操作数栈取出1个或多个操作数,或将结果压入操作数栈中。每调用一个方法,都会创建一个新的栈帧,并创建对应方法所需的操作数栈和局部变量表 前面已经谈到栈和栈帧的概念,在栈...
阅读全文