搜索
写经验 领红包

java fial面试题(java中fial和fially的区别)

「java面试」问了一百遍还是会问的final、finally区别

这两者本来没有啥联系,全是因为长得像。

java final面试题(java中final和finally的区别)

那么如果面试官非要问,我们怎么回答呢?

java final面试题(java中final和finally的区别)

在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。当用final修饰类的时候,表明该类不能被其他类所继承。当用final修饰方法时,方法不能被重写。当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。在日常开发中,我们最常用final来修饰静态常量,保证大家在开发中不会误改。

finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,可以放在finally块中。

比如你在程序中开了一个流,而还没等你关这个流程序异常了,那么这个流可能自始至终都占用你的内存空间一直不会释放,最终导致有大量资源被长时间无效占用,极端情况下可能导致后续程序资源不足而失败。而这个流在开着的时候如果被try着,那么就算出现了异常,最后也一定会走finally(除非你在try中手动调用关闭虚拟机的方法,我劝大家善良),在finally中关闭流可以说稳得一批。

这就是二者的区别,看到这儿的小伙伴比几分钟前更强大了呢!所以.....

java final面试题(java中final和finally的区别)

温馨提示:通过以上关于「java面试」问了一百遍还是会问的final、finally区别内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。