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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程有愿 中级黑马   /  2012-8-29 18:44  /  2775 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学了关键字后   我发现了几个功能差不多的关键字,finall ,fiallly,break,return,这个几个关键字的优先执行顺序又是怎么样的呢?

6 个回复

倒序浏览
这有什么优先执行顺序呢,这些都是个级别的而已,谁放在前面就执行谁,不过有一点,那就是finally这个单词,他应该是异常里的吧。当你在处理异常的时候,例如:
  1. try
  2. {

  3. }
  4. catch
  5. {

  6. }
  7. finally
  8. {

  9. }
复制代码
执行完try与catch的时候,finally是必须执行的,就算不执行try catch的话,那么finally里面的语句是必须执行的
回复 使用道具 举报
谁在前面就执行谁,这几个关键字不会同时出现
回复 使用道具 举报
这四个没有什么优先顺序这一说
首先楼主要知道 break和return的区别用举例子你最容易明白了。如java中你写了一个方法Test
int Test()
{
   for(int i=0;i<10;i++)
  {
   if(i == 5)
   {
    break;
   }
  }
return 123;
}
这个方法中返回的需要是个int型的,所以这里返回123.
在for循环中使用了break;跳出循环。
总的来说,return是表示一个方法结束以后返回了一些什么数据给调用它的方法。一个方法执行到return以后就跳转回原来调用这个方法的位置了。比如b方法调用了这个test方法。其中有一句比如是:int avc = a.test();这句就把test方法返回的123传给了调用它的avc并赋值了。
break是表示循环的跳出或者终止某个switch项。在循环中你如果想立即跳出循环,只需要写break就可以了。然后程序就跳出break所在的循环,然后继续往下进行了。
回复 使用道具 举报
然后再了解 final和finally的区别 就会豁然开朗了final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
  finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
回复 使用道具 举报
finall ,fiallly,break,return
final是一个修饰符
1.可以修饰类、变量和函数
2.被final修饰的类不可以被继承,某些类为了避免被继承可以加final修饰
3.被final修饰的方法不可以被复写
4.被final修饰的变量是一个常量,只赋值一次,既可以修饰成员变量也可以修饰局部变量

finally是try{} catch{} finally{} 中一定能执行到的部分

return用来返回方法的结果,返回值类型和方法定义一致

break一般用在循环中,用来停止循环的运行。跳出本次循环

由于fianl是修饰符,所以我认为这个是最先执行的,只要类加载就能执行

class  Demo
{
        final void show1()
        {}
        void show2()
        {}
}
class  SubDemo extends Demo
{
        void show2(){}
}
class  FinalDemo
{
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}

finally一般都会执行到,但顺序不一定

而break和return如果都在一个循环中使用的话,一般
先执行break,再执行return
因为先要停止循环然后再返回数据。
回复 使用道具 举报
try
{
    return;      //即时try中有return,也会在return之前先执行finally中的代码。但若是在这里换成system.exit(0),就会直接跳出,不再执行finally中的代码。
}
finally
{
一定会执行的代码;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马