try catch finally的执行顺序即结果
2017-11-19 20:53
351 查看
在java中数据的传递分为两种,一种是 值传递、另外一种是应用传递。值传递主要针对8中基本类型以及String类型。而应用传递则针对对象(包括8中基本类型的封装对象)。
下面对于这两种数据的传递分别用程序来测试下;
下面对于这两种数据的传递分别用程序来测试下;
public class Test { public static void main(String[] aStrings){ int x = 3; String string ="zsq"; User user = new User(); user.setName("zsq"); change(x,string,user); System.out.println("x="+x+",string="+string+",userName="+user.getName()); //输出结果为:x=3,string=zsq,userName=zhaosq //结果说明基本类型和string作为参数传递时只是传递的具体的值,而对象传递时传递的是引用。 } static void change(int x,String s,User user){ x++; s = "zhaosq"; user.setName("zhaosq"); } static class User{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }上面讲的是作为参数传递那么作为返回值时,基本类型和对象也是一样的。下面集合try catch finally具体讨论下
public class Test { public static void main(String[] aStrings){ System.out.println(change());//输出结果: 1 } static int change(){ int x ; try{ x = 1; return x;//如果不发生异常将返回 1 注意不是返回3 即使finally语句块中改变了x的值,但是在执行finally语句块之前,程序已经将x的值(此时值为1)标记为了返回值。当然如果在finally语句块中写了另外的return 语句结果就不一样了。 }catch(Exception e){ x = 2;//如果发生了异常,并且异常为捕获的异常及其子类的话将会返回 2 return x; }finally { x = 3; } } }
public class Test { public static void main(String[] aStrings){ System.out.println(change().getName()); //输出结果: zsq } static User change(){ User user = new User(); try{ user.setName("zsq"); return user;//如果不发生异常将返回 "zhaosq" 注意不是返回"zsq" 因为在finally语句块中改变了 user对象的name属性 }catch(Exception e){ user.setName("zsq2");//如果发生了异常,并且异常为捕获的异常及其子类的话将会返回 “zsq2” return user; }finally { user.setName("zhaosq"); } } static class User{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }
相关文章推荐
- try catch finally的执行顺序即结果
- try catch finally的执行顺序即结果
- try catch finally的执行顺序即结果
- try-catch-finally的执行顺序,catch中有return呢?
- Java中finally语句块的深度解析(try catch finally的执行顺序)
- try catch finally的执行顺序
- 从函数调用栈的角度看try catch finally有返回值时的执行顺序
- try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序(最有说服力的总结) 后面的神评论
- try catch finally 有return的执行顺序
- 关于try catch finally遇上return以后的执行顺序解析
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- try catch finally return 执行顺序
- try/catch、finally语句的执行顺序测试
- try-catch-finally执行顺序
- 有return的情况下try catch finally的执行顺序
- 关于Java中try catch finally throw return的执行顺序问题
- 有return的情况下try catch finally的执行顺序总结
- 【Java疑难杂症】有return的情况下try catch finally的执行顺序