利用axis genCode 根据WSDL生成客户端代码

1 安装axis2 eclipse插件: 点这里下载 安装包
2 解压axis2-eclipse-codegen-wizard.zip后将其放在 eclipse的插件目录下.
3 重新启动 eclipse
4 点击 File->new->axis gen Code 即可.
相关教程参见: 教程

Posted in java学习 | Tags:

Java常见面试题(一)

1 实现一个 字符串的 reverse函数和 replace函数.
reverse:

public static void stringReverser() {
String strOld = “aaabbb”;
String strNew = new StringBuffer(a).reverse().toString();
System.out.println(strNew);
}

replace:

public static String replace(String text, String repl, String with) {
if ((text == null) || (repl == null) || (with == null)
|| (repl.length() == 0) || (max == 0)) {
return text;
}

StringBuffer buf = [...]

Posted in java学习 | Tags:

初识java泛型

泛型是JAVA SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
JAVA语言引入泛型要解决的问题是 实现参数的 任意化 , 好处是安全简单。
在JAVA SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型在使用中还有一些规则和限制:
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
3、泛型的类型参数可以有多个。
4、泛型的参数类型可以使用extends语句,例如。习惯上成为“有界类型”。
5、泛型的参数类型还可以是通配符类型。例如Class classType = Class.forName(java.lang.String);
例如,
  |  copy code |? 0102package generic;03 04public class Gen<T> {05 private T t; // 定义泛型成员变量06 07 public Gen(T t) {08 this.t = t;09 }10 11 public T getT() {12 return t;13 }14 15 public void setT(T t) {16 this.t = t;17 }18 19 public void showType() {20 System.out.println(" T的实际类型是= " + t.getClass().getName());21 }22}23
  |  copy code |? 0102package generic;03 04public class genTest {05 06 public static void main(String args[]) {07 Gen<Integer> intOb = new Gen<Integer>(88);08 intOb.showType();09 int [...]

Posted in java学习 | Tags:

关于设计模式

今天在看设计模式的时候,读到一句话.非常认同,特分享之。
设计模式是在大量的实践中总结和理论优化之后的代码结构,编程风格以及解决问题的思考方式.使用设计模式也许会制约你去创新,不过真正有意义的创新只出自少数的天才.即使你就是那个天才,虽也不必因循守旧,但也不能完全不了解和借鉴前人的成功经验。

Posted in java学习 | Tags:

java中内部类的使用

内部类的使用的优缺点:
优点:减少了在类文件编译后的产生的字节码文件的大小
缺点:使程序结构不清晰
使用内部类的注意事项:
内部类的使用一般都与所在的外部类有一定的关联,它是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义(匿名内部类)。
内部类有如下的特性:
.一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称,名字不能与包含它的数百名相同
. 可以使用包含它的类的表态和实例成员变量,也可以使用它所在方法的局部变量
.可以定义为abstract
.若被声明为static,就变成了顶层类,不能再使用局部变量
.若想在inner class 中声明任何static成员,则该inner class必须声明为static.
.匿名类是一种特殊的内部类,它是在一个表达式的内部包含一个完整的类的定义。匿名内部类不需要任何的修饰词。
.内部类可以使用任何听修饰符,但是如果声明为static类,则等同于一个标准类。
.如果非表态内部类,就拥有对外部类的所有成员的完全访问权限,包括实例字段和方法。为实现这一行为,非表态内部类存着对外部类的实例的一个隐匿的引用。
.所以对一个非表态内部类进行实例化需要采用不同语法的new 语句,这种开工的new 语句要求外部类的一个实例,使内部类能在那个实例的上下文中创建。
.非表态内部类具有一些限制。尤其是,它们不能声明表态初始化列表和表态成员,除非是在常量字段中。此外方法内部声明的内部类不能访问方法的局部变量和参数,除非它们被初始化成final.
.表态内部类当中可以有表态数据,表态方法或者是又一个表态内部类。而非表态内部类当中不能有静态数据。这是它们的区别。
.局部内部类:Java内部类也可以是局部的,它可以定义在一个方法甚至一个代码块之内。
有一点需要注意的是,匿名内部类由于没有名字,所以它没有构造函数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相应的内容)。如果你想要初始化它的成员变量,有下面几种方法:
  如果是在一个方法的匿名内部类,可以利用这个方法传进你想要的参数,不过记住,这些参数必须被声明为final。
  将匿名内部类改造成有名字的局部内部类,这样它就可以拥有构造函数了。
  在这个匿名内部类中使用初始化代码块。
  为什么需要内部类?
  java内部类有什么好处?为什么需要内部类?
  首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。
  不过你可能要质疑,更改一下方法的不就行了吗?
  的确,以此作为设计内部类的理由,实在没有说服力。
  真正的原因是这样的,java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题——没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果。
下面是使用内部类的几个小例子:
JAVA的内部类的构造方法是不会自动调用,必须在外部类当中的某个方法当中或构造函数当中显示调用才能够正确使用。

Class Outer{

public outer(){
System.out.println(”….”);
}

[...]

Posted in java学习 | Tags:

Get Adobe Flash playerPlugin by wpburn.com wordpress themes