今日写的小例子.

今天写的小例子.
public class Test {
	public static void main(String args[])
	{
		int a = show();
		
		System.out.println("xxx:"+a);
		
		int y=1;
		set(y);
		System.out.println("y:"+y); //没改变,还是1.
		
		Yan yanob = new Yan();
		yanob.setX(1);
		yanob.setY(10);
		
		setObject(yanob);
		System.out.println("x"+yanob.getX()+"y"+yanob.getY()); //yanob属性改变了.
		
	}
	/***
	 * 10的生存周期只在finally那段栈帧上
	 * 当finally体执行完之后,a=10的栈帧被弹出,于是a的值重新为a=1 
	 * @return
	 */
	public static int show(){
		int a ;
		try{
			a = 1;
			return a;
		}finally{
			a = 10;
		}
	}

	/**
	 * 传入一个基本数据类型.函数内改变其值.
	 * @param k
	 */
	private static void set(int k)
	{
		k=2;
	    System.out.println("set k"+k);
	}
	
	/**
	 * 传入一个引用类型,其属性发生了改变.
	 * @param ob
	 */
	private static void setObject(Yan ob)
	{
		ob.setX(7);
		ob.setY(8);
	}

}