Java 运行参数调整

JVM 在线上运行的时候,可以调整一些运行参数,查看参数帮助如下:

运行 java -h 可以看到 Java 运行可调整的参数。 运行 java -X 可以查看 Java 支持的额外参数。 注意一些参数的默认开启在 JDK6 和 JDK7 之间会有差异,甚至在 JDK7 的不同 update 也会有差异,运行 java -XX:+PrintFlagsFinal 查看默认的参数配置。

参考: Java HotSpot VM Options The most complete list of -XX options for Java JVM Tuning JVM Garbage Collection for Production Deployments JVM -XX: 参数介绍

more ...

Maven 下 Jetty 启动

部门最近开发的产品使用的开发服务器是 Jetty(挂载在 GWT 中),启动方法是通过 Eclipse 的 External Tool 执行。我对此表示很好奇,特意在自己电脑下面组建了一个 Jetty 开发环境,发现 Maven 和 Jetty 合作起来非常愉快,现在小记之。

准备 Maven 配置文件

我使用 Maven 推荐的标准 webapp 结构,结构如下,官方文档可以参考 Maven - Introduction to the Standard Directory Layout

  • src/main/java
    • Application/Library sources
  • src/main/resources
    • Application/Library resources ...
more ...


最近在学的技术

根据这篇日志的题目,必然是一篇水文,我思量再三,还是把它放出来,这些技术的接触把我带入了另一个广阔的天堂。这是我学Java以来的第二个里程碑。

使用Java1年半,1年前开始JSP编程,一直是我和周围的朋友自己摸索,学校没有开Java课,也没有参加什么培训课程,面对庞大的Java开源分支,我一直摸索 ,不能登堂入室。

万分感谢倪经理这1个月来的教导,他给了我一个不一样的Java。

iBatis

如果说Hibernate是一款自动化的导弹,那么iBatis则是一款轻型的半自动步枪,简介、高效、方便配置。加上iBator这个神器,iBatis可以使开发 效率几倍提升。

年前开始学习iBatis,想借其思想自己完成一个简单的ORM系统,3月份时候,公司的一个新框架采用了iBatis,更是给我提供了一个绝佳的Playgroun d。Hibernate和iBatis有各自的适合使用的领域,不能单纯的说谁好谁不好,不过iBatis绝对值得尝试。

动软的.net生成器使用的DAL接入层也是使用的iBats.net做数据接入。

Jaas

我对权限控制的理解,从最早的单表用户字段管理,到贴吧的基于角色权限控制,直到后来公司使用的基于权限+菜单控制,最好到现在的Jaas提供的资源-角色-权限- 菜单 控制体系。细化到原子级的权限控制带来了莫大的好处,这个很大程度归功于Jaas。

Java Authentication ...

more ...

管理WebLogic服务

注册WebLogic成 windows服务

1、执行Domain目录下的 installService.cmd [USER_NAME] [PASSWORD]命令,就会在windows服务中生成一个beasvc domainname_adminservername的服务启动类型为"自动",手动将它设置为启动就可以每次开机自动启动了。

2、在创建新的域的时候有这个选项的,服务名字为beasvc domainname-servername。

删除WebLogic服务

1.执行Domain目录下的 stopWebLogic.cmd命令就可以删除服务

2.删除服务之后,可以直接删除Domain下的所有文件~

more ...

DWR2.0在JDK1.4下的配置

服务器的WebLogic版本是8.1,使用自带的JDK1.4

MyEclipse版本是6.6,项目文件的Compiler compliance level设置为1.4

MyEclipse自带Tomcat使用MyEclipse6.6自带的JDK5

开发时候系统运行无误。

部署到应用服务器之后,使用WebLogic自带的JDK1.4,登录之后的一些页面一旦访问,会导致服务器报错停止。我检查了一下错误信息。

"ListenThread.Default" listening on port 7001, ip address .>

  • DWR Version 2.0.5 starting.
    • Servlet Engine: WebLogic XMLX Module 8.1 SP1 Fri Jun 20 23:06:40 PDT ...
more ...

Java笔记 使用反射来改进BaseDao

关于反射

反射的定义(via Wiki):在计算机科学中,反射是指一种特定类型的计算机程序能够在运行时以一种依 赖于它的代码的抽象特性和它的运行时行为的方式被更改的特性。用比喻来说,那种程式能够"观察"并且修改自己的行为。

Java中的反射示例如下:

package dddspace.job.exercise1116;

public class Foo {

public void fun(String str) {

System.out.println(str);

}

}

package dddspace.job.exercise1116;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

public class ReflectionDemo {

public static void ...

more ...

Java入门好书《Java JDK6学习笔记》

Java JDK6学习笔记

《Java JDK6学习笔记》(via 豆瓣,via ChinaPub)是我最近在看的一本书。虽然名为Java学习笔记,其实 深入浅出的讲解了Java这门语言。书中的语言颇有白文风格,适合没有语言基础的同学学习,也适合对一些概念不清楚的开发人员。

我很快的翻阅了半本书,作者的范例代码简单精要("Java笔记split/不定长度参数/泛型类型通配符"中示例代码就是改编自本书)。我现在正在阅读线程、反射和Annotation这三块内容,看得我酣畅淋漓啊。

我算是概念模糊的开发者,现在准备笔试/面试所以恶补一下平时接触比较少的概念。我虽然也有《Think in Java ...

more ...

Java笔记 split/不定长度参数/泛型类型通配符

今天看了一下午《Java学习笔记》,作者林信良,花名良葛格。从书中所获颇 多,正所谓温故而知新,我就把今天的"新"总结一下,加深记忆。良葛格也提倡"在网上写文章是我记录所学的一种方式"。

split的正则式和其中的正则式

C语言其中有函数strtok,就是按某些char对字符串进行切割。下面给出一个C下面的范例

char str[] = "now # is the time for all # good men to come to the # aid of their country";
char delims[] = "#";
char *result = NULL;

result = strtok( str, delims );

while( result != NULL ) {

printf( "result is ...

more ...

DAO的设计-使用泛型来避免重复DAO

DAO的全称是Data Access Object数据访问接口。数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

我大二时候写的一个小型管理系统,那时候老师开始强调分层和MVC的思想,当时我将DAO层分了开来,把所有与数据库的交互操作封装成对应的DAO类,这样最大的好处 是实现了封装和隔离,方便系统的迁移和重构。

分层、封装、接口化是一种基本的解决思路,无论是TCP/IP协议族,还是软件工程,都是很值得使用的方案。

那么接下来的问题就是DAO类的设计,我当时遇到的问题就是DAO类之间存在大量的冗余代码,用敏捷的角度来思考,这绝对是不允许存在的。

讲相同的方法抽象出来,这也是最常见的解决方案,最简单的例子就是函数的产生,其实也是对程序的一种抽象和提炼,避免冗余,达到复用效果。

在Java1.5出来之前,用Object来操作对象,实现方法复用,就可以达到上面的目的,但是,存在类型安全的问题。Java1.5提出了泛型的概念,类似与C+ +中的Template,Java运行环境帮助会检查类型的安全。

这里有一篇IBM资料库的文章,详细阐述了泛型在DAO设计的使用「不要重复DAO」<猛击这里打开>,作者PerMellqvist (per@mellqvist ...

more ...