坪山网站建设资讯,如何做网站搬家,wordpress文章分类统计,网易官网入口final表示不可变的#xff0c;它可以用来修饰类#xff0c;方法和变量。当它修饰类的时候表示该类是不能被继承的#xff0c;因为抽象类就是用来被继承的#xff0c;所以abstract关键字和final关键字不能共存。当它修饰方法的时候表示该方法是不能被重写的。当它修饰变量的…final表示不可变的它可以用来修饰类方法和变量。当它修饰类的时候表示该类是不能被继承的因为抽象类就是用来被继承的所以abstract关键字和final关键字不能共存。当它修饰方法的时候表示该方法是不能被重写的。当它修饰变量的时候表示该变量的值不能发生变化也就是该变量为一个常量。对于用final修饰的变量我们必须在申明它的时候赋值或者是在构造函数中给它赋值。finally是异常处理中的一个关键字通常的结构是这样的try{ } catch(){ } finally{ }, 它一般用于资源释放比如我们可以在finally块中关闭数据库连接在这个结构中不管异常有没有发生finally中的代码都会执行。但是finally中的代码不是一定会被执行。在以下情况下不会执行finally中的代码1. 在进入try块之前程序发生异常。2. 在try块中调用了System.exit(0)终止了虚拟机的运行。3. 在try块或catch块中程序被中断比如说死机。我们再来看下面这个例子public class Demo02 {public static void main(String[] args) { System.out.println(methd()); }public static int methd(){int num 1;try{return num; }catch (Exception ex){return 0; }finally { num; } }}程序运行的结果为1这个例子中finally中的代码究竟是在return前还是return后执行的呢你可能认为是在return 前执行的我们来看一下程序执行的过程执行到try块中的return num的时候num的值1会被作为返回值存放到栈中但是这时程序并不会返回而是去执行num,num的值变为2然后程序返回结束此时返回的还是栈中的num值1。我们再来看另一个例子public classDemo02 { public static voidmain(String[] args) { System.out.println(methd()); } public static intmethd(){ intnum 1; try{ returnnum; }catch(Exception ex){ return0; }finally{ return2; } }}这段程序的运行结果为2在程序执行到try块中的return num时将num中的值1作为返回值保存在栈中然后执行finally块中的代码return 2,此时栈中的返回值变为了2所以最后的结果为2.总结一下:1. finally在try块和catch块return执行后返回前执行。2. 如果finally中没有return,则其执行结果不影响try和catch中已确定的返回值。3. 如果finally中有return,则其执行结果会直接返回。finalize: 是Object类的一个方法因为所有的类都继承自Object类所以所有的类都有finalize方法。 在垃圾收集器将该对象清除出内存之前会先调用它的finalize方法做一些内存清理工作通常这部分内存是非java内存如socketfinalize只会被调用一次。如果该文章对你有帮助别忘了 点赞收藏加关注你的支持就是我持续更新的动力