try catch finally的执行顺序即结果
2017-11-19 20:53
267 查看
在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的执行顺序
- Java中try-catch-finally-return的执行顺序
- try catch finally的执行顺序到底是怎样的?
- try catch finally 与return的执行顺序
- Java学习笔记__异常机制_try_catch_finally_return执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- try...catch...finally中的return执行顺序
- Java try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 【转】java try、catch、finally及finally执行顺序详解
- 关于Java中try-catch-finally-return的执行顺序
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- java中try、catch、finally返回语句执行顺序
- try catch finally执行顺序
- try catch finally的执行顺序(最有说服力的总结,你被坑了吗)
- 含有return 的try catch finally的执行顺序