A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztwztw 中级黑马   /  2013-11-26 10:49  /  1523 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师的10-06中,第20题,
finally
{
outoup+="3";
}
outoup+="4";
最后输出
system.out.println(outoup);最后输出的是4

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定.鼓励新同学!

查看全部评分

5 个回复

倒序浏览
final是定义常量的,finally是在try catch中无论如何也要执行的一块  楼楼不要弄混淆了哇~~
回复 使用道具 举报
麻烦搞清楚final和finally
回复 使用道具 举报
finally主要应用在异常上,他的意思是说不管前面是否正常,这里都要要被执行到得地方,但有一种情况是执行不到的,执行到System.exit(0);finally不会执行。
而你写的东西里outoup赋值成功与否都不重要了,因为你后面又在一次的赋值,它是字符串,第一次指向了字符池中的字符串3,后一次又指向了字符池中的4,你只是改变的outoup的指向而已。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 try
  6.                 {
  7.                         System.out.println("try 代码块");
  8.                 }
  9.                 catch (Exception e)
  10.                 {
  11.                         System.out.println("catch 代码块");
  12.                 }
  13.                 finally
  14.                 {
  15.                         System.out.println("finally 代码块");
  16.                 }
  17.                 System.out.println("是否最后执行");
  18.         }
  19. }
复制代码

你可以看到最,执行顺序是 try 代码块, finally代码块.最后才是是否最后执行 这三句话.
然而你的程序在try中并没有发生Exception 异常,所以不会执行catch 代码块这句话,
同时,最后赋值的值是4 也就是outoup+="4"; 这段语句..

不知道对不对,新手回答..大家一起探讨

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
finally后的{}里的语句代表的是一定执行的语句
final用于定义常量的
两者不能混为一谈。
仔细观看老师的视频,里面有详细的解释的。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马