如果你是 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 技术讲演。 阅读全文…
下载
JAVA, 电子书, 虚拟机
226 views
如果你已经看过《Groovy In Action》一书,那么我想下面这本书对您来说只是起个加深印象的作用。该书以对比的形式,让您快速了解Groovy的语法知识,是本入门的经典好书。
Groovy经典入门
下载
Groovy, JAVA
131 views
之前我们学习了利用 Java 的反射机制,在运行期间生成对象和运行方法。相比较而言,今天的内容要简单很多--运行期间运态为 Field 赋值。 阅读全文…
编程开发
JAVA, 反射
67 views
“使用面向对象的编程语言(例如java)进行程序开发,就是以面向对象的思想进行编程”。这是我听到的最傻的话。
Java 是面向对象的语言,但它写出的程序并非都是面向对象的。我就见过将业务实现细节一股脑地扔到Swing的Component中的程序。也见过为了所谓的“ 代码复用”,提出了几个不伦不类的共通class的项目。更有甚者,数据库操作的代码随处可见。这样的程序,只怕就连面向过程的编程语言也不会暴露的如此坦白吧。 阅读全文…
编程开发
JAVA, 程序设计
29 views
很多开源框架中都实现了拦截器功能,比如Spring、WebWork、Struts2等。例用拦截器,可以在对类方法进行调用的前后加入共通的操作,比如在调用方法的前后打印log等,使业务代码更加单纯。
拦截器是利用java的动态代理技术来实现的。接下来我们就看一个例子,这个例子利用java动态代理,对所有insert、update、delete为前缀的方法进行事务处理。 阅读全文…
编程开发
Interceptor, JAVA
44 views
之前一直在用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的版本基本上都支持了。它的使用也非常简单,看下面的例子: 阅读全文…
编程开发
JAVA, rome, rss
190 views
java中的String是个特殊的类型,它即不是基本类型,也不是真正意义上的变量,而是个固定类型,即final型。所以在写SQL语句或繁琐的字符串表达式的时候,为了提高效率,我们一般使用StringBuffer来代替String。原因是字符串A和字符串B运算后,会生成新的对象C。如下:
- String a = "mx";
- String b = "java";
- String c = a + b;
- System.out.println(c);
阅读全文…
编程开发
JAVA
824 views
昨天我推荐大家使用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上下载。
veltag.tld是标签库文件,在jsp页面中,利用该库中定义好的几个标签来告诉Velocity引擎处理哪些代码。将该文件拷贝至WEB-INF下,并在web.xml中加入如下代码:
veltag
/WEB-INF/veltag.tld
- <%@ taglib uri="/WEB-INF/veltag.tld" prefix="vel" %>
-
- #set($mybean = $scopetool.getPageScope("mybean"))
- #if(true)
- this is true!
- #end
-
- $mybean.string
-
- #foreach($item in $mybean.array)
- $item
- #end
veltag-0.0.1-dev.jar是用来解析标签的类库文件,同普通的jar一样,将其拷贝至WEB-INF\lib目录下。
运行一下看看,是不是很好玩呢?好玩归好玩,不过,要使用jsp + velocity来做为显示层可能并不合适。因为jsp首先要被编译的成servlet然后才能执行的。而此时的velocity语句被servlet当做字符串输出,然后由Velocity的Servlet接管并解析该文件。经过一次编译(当然只编译一次)和解析,在运行效率上似乎并不比单纯的编译或者解析要好。另外,将jsp和velocity两种语法放在一个文件中,一眼望去,不如一种代码看上去更整洁。不过,做为一项技术,我们可学习学习。
编程开发
JAVA, jsp, Velocity
1,553 views
Velocity是我开发必选工具之一。自从三年前第一次用它架构了WEB应用后,就再没有写过jsp了。它吸引我的,不仅仅是强大的模板引擎和对各框架的无缝结合、更重要的是将代码简化到最少的程度。在写页面时,几乎不需要写多余的技术和业务代码。过去几行,甚至几十行jsp语句,利用Velocity,只需要写几句,甚至一句就可以完成。非常方便,快捷。使显示层与业务层几乎完全分离。 阅读全文…
编程开发
JAVA, Velocity
886 views
随着Struts2与WebWork的联袂,Struts1已经不再是人们追捧的对象了。不过,若要快速开发一个小型的Web应用,我还是推荐各位使用Struts1。因为无论是在开发速度、运行速度、资料、成熟度等各个方面,目前来看Struts1还是有自身的优势的。另外一个优势在于,几乎所有的j2ee开发者,或多或少都有Struts1的开发经验,有了这样的经验,在实现小型Web应用时,会更敏捷(敏捷不光是一味地追求开发速度,还要能够快速地应对变化。这不光是程序设计方面的问题,若你对所使用的框架非常了解,无疑将会对整个项目起来很积极的作用)。
Tycho第一个版本的显示层就是使用的 Struts1 。虽然对 Struts 的学习和应用已经有些年头了,但在开发过程中,由于疏忽一个小细节操作不当出现许多问题。
我所说的小细节,主要是在配置 struts-config.xml 文件时,代码前后矛盾引起的死循环提交。首先我们先来回顾一下Struts应用的传统的编写方式。 阅读全文…
编程开发
JAVA, struts
802 views
Hot Articles