ANT入门

一、准备工作

  1.安装ant,将其解压在某个分区中,如c:\ant

  2.在环境变量PATH中添加c:\ant\bin目录

  3.在cmd中测试ant,看提示是否出现,如图:

cmd

二、简单测试

  1.新建一个测试目录,如d:\hello,在其下建立子目录src,以便放源文件

  2.新建一个测试源文件HelloWorld.java,放在src目录下

package cn.hrmzone;
public class HelloWorld{
	public static void main(String[] args) {
		System.out.println("HelloWorld");
	}
}

Read more…

Java高级特性–反射

 Class 表示类的类,描述一类事物,规定类应该有什么属性,不应该有什么属性。但是不要求有什么属性。
 2.Class表示字节码的抽象,不知直接去构造(new Class())
 3.Person p1=new Person(),虚拟机编译时,首先需要加载Person.class文件到内存中
 4.Class c=Person.class,表示内存中实实在在的一堆字节码,p1代表那一堆字节码生成的对象。Class就表示字节码的抽象,c如上所述,表示的是字节码的引用
 5.Field:代表类的成员变量
 6.Constructor:代表类的构造方法
 7.Method:代表类的方法

package reflectclass;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class StudentTest {
	/**
	 * @param args
	 * @throws Exception 
	 * @throws InstantiationException 
	 */
 
	public Object create(Object obj) throws Exception {
		Class< ?> classType=obj.getClass();
		System.out.println("the class type:"+classType.getName());
		Object student=classType.newInstance();
		student=classType.getConstructor(null).newInstance(null);
//		student=classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
		Field fields[]=classType.getDeclaredFields();
		for(Field f:fields) {
			Field field=f;
			String fieldName=field.getName();
			String firstName=fieldName.substring(0,1).toUpperCase();
			String getMethodName="get"+firstName+fieldName.substring(1);
			String setMethodName="set"+firstName+fieldName.substring(1);
			Method getMethod=classType.getMethod(getMethodName, new Class[]{});
			Method setMethod=classType.getMethod(setMethodName, new Class[]{field.getType()});
			Object value=getMethod.invoke(obj, new Object[]{});
			System.out.println("value:"+value);
			setMethod.invoke(student, new Object[]{value});
 
		}
 
		return student;
	}
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Student s=new Student("student",23);
		s.setId(1);
		StudentTest st=new StudentTest();
		st.create(s);
	}
 
}

Read more…

Java高级特性–枚举(Enum)

枚举就是预先定义一组常量,并作为一个新的类型,就是类似一个常量类。从定义上来看,枚举很想特殊的class,实际上枚举的声明定义就是一个类。先看看枚举类与常量类的区别。
枚举类:

package enumdemo;
public enum Week {
	monday,
	tuesday,
	wedensday,
	thursday,
	friday,
	saturday,
	sunday
}

常量类:

package enumdemo;
 
public class StaticClass {
	public static final int monday=1;
	public static final int tuesday=2;
	public static final int wedensday=3;
	public static final int thursday=4;
	public static final int friday=5;
	public static final int saturday=6;
	public static final int sunday=7;
}

Read more…

Java高级特性–泛型

泛型是java5新增的特性之一,在某种程度上能增加代码的灵活性。它的作用在于对类型进行抽象,废话少说,先看个例子。 在没有泛型之前,如果我们要写一段代码,针对不同的基本数据类型(String,IntegerDouble,Float等),如:

public class StringObject {
		private String str;
		public void setString(String str) {
			this.str=str;
		}
		public String getString() {
			return str;
		}
	}

如果还有其他的基本数字类型,需要些写同样的类。当然,还有一种方法,就是将所有的基本类型抽象成Object,如下:

package generics;
	public class ObjectTest {
		private Object x;
		public void setX(Object x) {
			this.x=x;
		}
		public Object getX() {
			return x;
		}
	}
package generics;
	public class ObjectTestDemo {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ObjectTest strFoo=new ObjectTest();
		strFoo.setX("strFoo");
 
		ObjectTest intFoo=new ObjectTest();
		intFoo.setX(new Integer(11));
 
		ObjectTest douFoo=new ObjectTest();
		douFoo.setX(new Double(1.33));
 
		String str=(String)strFoo.getX();
		System.out.println(str);
		Integer in = (Integer)intFoo.getX();
		System.out.println(in);
		Double dou = (Double)douFoo.getX();
		System.out.println(dou);
		}
 
	}

Read more…

Java高级特性

最近看了张孝祥老师的《java高级特性》,这些特性大多是从java5开始添加的内容,在应用中,有很大的用处。既然看过了,就总结下。
1.静态导入:在使用类的静态方法时,不写一大串的包名、类名,而直接使用方法名调用方法:

1
2
3
4
5
6
7
8
import static java.lang.Math.max;
import static java.lang.Math.abs;
public class StaticImport {
	public static void main(String[] args) {
		System.out.println(max(3, 7));
		System.out.println(abs(3 - 6));
	}
}

在导入类的时候添加关键字static,静态导入max、abs方法,使用的时候,不用再写方法的类名。
Read more…

Go back to top