java2

a
java静态导入:
import static java.lang.Math.max;


public class javatest{
    public static void main(String[] args) {
    	int a = max(1, 3);
    	System.out.println(a);
    }
}


可变参数和增强型for循环:




public class javatest{
    public static void main(String[] args) {
    	int a = sum(1,2,3,4,5);
    	System.out.println(a);
    }
    public static int sum(int ... args)
    {
    	int ret = 0;
    	for(int i = 0; i < args.length; i++)
    	{
    		ret += args[i];
    	}
    	return ret;
    }
    public static int sum2(int ... args)
    {
    	int ret = 0;
    	for(int x : args)
    	{
    		ret += x;
    	}
    	return ret;
    }
}




自动装箱拆箱 享元模式


枚举:
public class javatest{
    public static void main(String[] args) {
    	WeekDay a = WeekDay.Sunday;
    	a.toString();
    	a.name();
    	a.ordinal();
    	a.valueOf("Sunday");
    	a.values();
    }
    enum WeekDay
    {
    	Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday;
    }
}


public enum TrafficLamp
{
	RED(30){
		public TrafficLamp nextLamp(){
			return GREEN;
		}
	},
	GREEN(35){
		public TrafficLamp nextLamp(){
			return YELLOW;
		}
	},
	YELLOW(5){
		public TrafficLamp nextLamp(){
			return RED;
		}
	};
	private int time;
	public abstract TrafficLamp nextLamp();
	private TrafficLamp(int time)
	{
		this.time = time;
	}
}
枚举只有一个成员时,就可以作为一种单例的实现方式。




Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class.


得到各个字节码对应的实例对象:
Class cls1 = Date.class;
Class cls2 = new Date().getClass();
Class cls3 = Class.forName("java.util.Date");


Constructor类代表某个类中的一个构造方法
Constructor constructors[] = Class.forName("java.lang.String").getConstructors();
Constructor constructor = Class.forName("java.lang.String").getConstructor(StringBuffer.class);


构建实例对象:
String str = new String(new StringBuffer("abc"));
String str = (String)constructor.newInstance(new StringBuffer("abc"));




成员变量的反射:
import java.lang.reflect.Field;
public class javatest {
	public static void main(String[] args) throws Exception {
		ReflectPointer rp = new ReflectPointer(3, 5);
		Field fieldX = rp.getClass().getField("x");
		System.out.println(fieldX.get(rp));


		Field fieldY = rp.getClass().getDeclaredField("y");
		fieldY.setAccessible(true);
		System.out.println(fieldY.get(rp));
	}
}
class ReflectPointer {
	public int x;
	private int y;


	public ReflectPointer(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
}


将任意一个对象中的所有String类型的成员变量所对应的字符串内容中的"b"改成"a".
public static void fn(Object obj) throws Exception
{
	Field[] fields =  obj.getClass().getFields();
	for(Field f : fields)
	{
		if(f.getType() == String.class)
		{
			String tmp = ((String)f.get(obj)).replace('b', 'a');
			f.set(obj, tmp);
		}
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值