如果你是 Java 爱好者,希望学习 Java 更为底层的知识,那么今天为推荐的这本《深入 Java 虚拟机》您一定要下。本书先是详细介绍了 Java 虚拟机的体系结构,包括 Java 栈、堆、方法区、执行引擎等。接着深入Java技术的内部细节,包括垃圾收集、Java安全模型、Java的连接模型和动态扩展机制、class文件、运算及流程控制等。
本书的作者 Bill Venners 有14年编写软件专著的经验。他在硅谷的 Artima 软件公司提供软件咨询和培训服务。自1996年以来,他已经编写了40多篇有关 Java技术的文章。在《Java World杂志》辟有热闹专栏,介绍 Java 内部细节、面向对象设计技术和 Jini 技术。他还是 artima.com 的作者和网站管理员、这是 Java 和 Jini 开发者的一个在线资源站点。他在全世界范围举办内部培训和公开的研究报告,有时也在软件会议上进行 Java 技术讲演。
Continue Reading »
如果你已经看过《Groovy In Action》一书,那么我想下面这本书对您来说只是起个加深印象的作用。该书以对比的形式,让您快速了解Groovy的语法知识,是本入门的经典好书。
Groovy经典入门
我想对于Java爱好者来说,Groovy应该不是陌生的言语了吧,即使你没有利用它进行开发,也必定对其大名是如雷贯耳了吧。没错Groovy就是一种基于JVM的敏捷开发语言,其语法类似于Java,但比Java更简单,是类似于脚本之类的动态语言。它结合了Python、Ruby和Smalltalk的许多强大的特性。
很多爱好者们开始转投Groovy的怀抱,就连WebWork2中也可以使用Groovy。它可以被编译为标准的Java Bytecode,而对于Java平台来说,字节码是从Java代码还是Groovy代码生成的是没有任何区别的。
如果你也准备学习Groovy,也许这本书会对有所帮助。
Continue Reading »
之前我们学习了利用 Java 的反射机制,在运行期间生成对象和运行方法。相比较而言,今天的内容要简单很多--运行期间运态为 Field 赋值。
Continue Reading »
“使用面向对象的编程语言(例如java)进行程序开发,就是以面向对象的思想进行编程”。这是我听到的最傻的话。
Java 是面向对象的语言,但它写出的程序并非都是面向对象的。我就见过将业务实现细节一股脑地扔到Swing的Component中的程序。也见过为了所谓的“ 代码复用”,提出了几个不伦不类的共通class的项目。更有甚者,数据库操作的代码随处可见。这样的程序,只怕就连面向过程的编程语言也不会暴露的如此坦白吧。
Continue Reading »
很多开源框架中都实现了拦截器功能,比如Spring、WebWork、Struts2等。例用拦截器,可以在对类方法进行调用的前后加入共通的操作,比如在调用方法的前后打印log等,使业务代码更加单纯。
拦截器是利用java的动态代理技术来实现的。接下来我们就看一个例子,这个例子利用java动态代理,对所有insert、update、delete为前缀的方法进行事务处理。
Continue Reading »
之前一直在用RSSLib4J解析rss,不过RSSLib4J似乎不能解析rss v0.92,在初期化时就会报错。这可不是什么好消息,因为WordPress的rss就是v0.92的。
rome是为RSS聚合而开发的开源包,它可以支持0.91、0.92、0.93、0.94、1.0、2.0,可以说rss的版本基本上都支持了。它的使用也非常简单,看下面的例子:
Continue Reading »
java中的String是个特殊的类型,它即不是基本类型,也不是真正意义上的变量,而是个固定类型,即final型。所以在写SQL语句或繁琐的字符串表达式的时候,为了提高效率,我们一般使用StringBuffer来代替String。原因是字符串A和字符串B运算后,会生成新的对象C。如下:
- String a = "mx";
- String b = "java";
- String c = a + b;
- System.out.println(c);
Continue Reading »
昨天我推荐大家使用Velocity作为表示层来开发WEB应用。很多写习惯了jsp的朋友也许一时很难适应,不要紧,今天我为大家介绍一下,在jsp文件中如果加入Velocity扩展,让jsp和Velocity共存。
jsp + Velocity似乎并不是个好点子,在实际应用开发中也比较少用。不过,我们也可以了解了解这项技术,更进一步学习Velocity。首先我们先来看看,Velocity默认解析的文件为*.vm。在Web.xml中配置Velocity的Servlet,就可以解析执行该类型的文件了。在vm文件中是不可以出现jsp语句的。因为Velocity引擎并不认识jsp代码,只会把它们当作普通的字符串显示在页面上。而jsp页面中加入Velocity 语句也是如此。那么如何才能使jsp和Velocity共存呢?其实操作很简单,我们只需要两样东西来帮忙–即veltag.tld和veltag- 0.01-dev.jar。可以到apache上下载。
Continue Reading »
Velocity是我开发必选工具之一。自从三年前第一次用它架构了WEB应用后,就再没有写过jsp了。它吸引我的,不仅仅是强大的模板引擎和对各框架的无缝结合、更重要的是将代码简化到最少的程度。在写页面时,几乎不需要写多余的技术和业务代码。过去几行,甚至几十行jsp语句,利用Velocity,只需要写几句,甚至一句就可以完成。非常方便,快捷。使显示层与业务层几乎完全分离。
Continue Reading »