虾屮蛋

导航

 

2013年4月21日

摘要: java中搭建webservice服务可用好几个框架,如axis1,axis2,xfire,cxf,jax-ws...,利用ide都能较容易的实现。一、JAX-WS方式 Java6中自带的JAX-WS2.0能很方便的生产webservice服务端及客户端代码,普通类加上注解,然后写个main方法便可发布,有时候挺方便的。下面代码便可发布一个简单的webservice服务:@WebService@SOAPBinding(style = SOAPBinding.Style.RPC)public class TestService { public static void main(String . 阅读全文
posted @ 2013-04-21 11:14 虾屮蛋 阅读(423) 评论(0) 推荐(0)
 

2013年4月13日

摘要: 用自定义类加载器加载类,每次用一个classloader实例来加载,每次加载的class都是最新的,可以实现类的热加载,但类的静态变量也每次都是初始值,如下例子:// 自定义classloader, 来自《深入理解java虚拟机》一书class MyClassLoader extends ClassLoader { @Override public Class<?> loadClass(String name) throws ClassNotFoundException { try { String fileName = name.substring(name.lastIndexO 阅读全文
posted @ 2013-04-13 08:48 虾屮蛋 阅读(167) 评论(0) 推荐(0)
 

2013年4月8日

摘要: 最近看《深入理解JAVA虚拟机》一书,关于类加载,做下记录。 java类型的加载和链接过程都是在运行过程中完成的,类的生命周期包括 加载到虚拟机中,然后经过验证,准备,解析,初始化,使用,最后卸载。 虚拟机规范中严格规定了有且只有四种情况必须立即进行初始化(前面过程要先进行),包括遇到new, 获取/修改非final static变量或调用静态方法; 使用java.lang.reflect进行反射调用; 初始化类时如果父类没初始化则先初始化父类; main方法所在主类。 加载主要是获取类的二进制字节流,并将字节流代表的静态存储结构转化为方法区的运行时数据结构,然后再java堆中生成一个代表该. 阅读全文
posted @ 2013-04-08 07:52 虾屮蛋 阅读(219) 评论(0) 推荐(0)
 

2013年4月6日

摘要: 代码中写规范的注释是有必要的,eclipse中可设置code templates中的comments, 定义好注释的模板,方法或类上敲 /** + 回车,能方便的生成自定义的javadoc注释块,减少一些重复的工作。 comments中定义了9种类型的注释,平时也很少注意规范的注释,以后注意,慢慢完善,这里先大概记录一下: 1、Files 文件头标记,可定义修改历史、版权信息等/** *@(#) ${file_name} * Modify Information: * Author Date Description * --------- ---------- ... 阅读全文
posted @ 2013-04-06 11:37 虾屮蛋 阅读(926) 评论(0) 推荐(0)
 

2013年4月5日

摘要: JAVA中内置了很多不同种类的Exception类,但如果我们要在自己的代码中插入throw语句,且是与业务逻辑相关的异常,最好定义自己的异常类,以便于catch块中区分自定义异常,必要时在catch块中根据业务规则进行相应的处理。 自定义异常类除特殊情况外,使用Exception作为基类,而且最好至少定义两个构造器,一个带参数,一个不带参数,也可以合法的定义其它方法,基本的自定义异常结构如下:public class MyException extends Exception { public MyException() { super("my exception default 阅读全文
posted @ 2013-04-05 11:09 虾屮蛋 阅读(132) 评论(0) 推荐(0)
 

2013年4月3日

摘要: 1、先调用父类静态块,再调用子类的静态块,然后父类的构造函数,再子类的构造函数2、调用的为实际运行类的方法, 方法有重载则调用重载的方法,否则调用父类的。3、如果调用的父类方法中有调用其它方法,且这个其它方法在实际运行的子类中有重写,则依然调用子类的。 阅读全文
posted @ 2013-04-03 14:15 虾屮蛋 阅读(217) 评论(0) 推荐(0)
 

2013年4月1日

摘要: java1.5中开始引入泛型,平时用的也挺多,下面例子大概总结下基本用法:/** * 泛型测试类 */public class GenericDemo<T, E, H extends Collection> { private T obj1; private E obj2; public GenericDemo () { } /** * List参数必须继承String类,否则编译报错 */ public void method1(List<? extends String> list) { ... 阅读全文
posted @ 2013-04-01 11:01 虾屮蛋 阅读(115) 评论(0) 推荐(0)
 

2013年3月30日

摘要: java5中开始,对方法中同类型的参数,但个数不确定的,可以用可变参数来代替之前的数组实现,实现一模一样,只是代码看起来简洁一些,如下: public void testArg(String arg1, String...args) { System.out.println("arg1:" + arg1); System.out.println("args:"); for(String arg : args) { System.out.println(arg); } } 该方法同public void testArg(String arg1, Strin 阅读全文
posted @ 2013-03-30 13:42 虾屮蛋 阅读(129) 评论(0) 推荐(0)
 

2013年3月19日

摘要: eclipse中建立的dynamic web project发布到tomcat,必须eclipse先建立一个tomcat的runtime server,然后new 一个server,并将项目add进去,publish后,发现tomcat的webapp目录并没有相应的项目,启动server后,直接localhost:8080也会报404,很奇怪的现象。偶尔的一次启动控制台报错,发现项目被发布到了$workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps下,访问的path在server的server.xml中定 阅读全文
posted @ 2013-03-19 09:51 虾屮蛋 阅读(189) 评论(0) 推荐(0)
 

2013年3月11日

摘要: java中RuntimeException不需要被捕获,集成字Exception,如果未被显示捕获,产生RuntimeException时线程会退出,在需要一直不停运行的线程中,需要注意显示捕获的捕获RuntimeException,不然多线程中某线程退出未发觉,可能产生意想不到的结果。 阅读全文
posted @ 2013-03-11 13:04 虾屮蛋 阅读(231) 评论(0) 推荐(0)