Tag: 最后

在Java中,关键字`final`,`finally`和`finalize`的目的是什么?

在Java中,关键字的final目的是什么, finally并finalize落实?

奇怪的Java行为与静态和最终限定符

在我们的团队中,我们发现了一些奇怪的行为,我们使用了static和final限定符。 这是我们的testing课: public class Test { public static final Test me = new Test(); public static final Integer I = 4; public static final String S = "abc"; public Test() { System.out.println(I); System.out.println(S); } public static Test getInstance() { return me; } public static void main(String[] args) { Test.getInstance(); } } 当我们运行main方法时,我们得到的结果是: null abc 我会明白,如果它两次写null值,因为静态类成员的代码是从上到下执行。 […]

在Java中使用finalvariables可以改善垃圾回收吗?

今天,我和我的同事讨论了Java中final关键字的用法,以改善垃圾收集。 例如,如果您编写如下的方法: public Double doCalc(final Double value) { final Double maxWeight = 1000.0; final Double totalWeight = maxWeight * value; return totalWeight; } 在方法final声明variables将有助于垃圾收集在方法退出后从方法中未使用的variables中清除内存。 这是真的?

抛出exception终于块

有没有一个优雅的方式来处理finally拦截的exception? 例如: try { // Use the resource. } catch( Exception ex ) { // Problem with the resource. } finally { try{ resource.close(); } catch( Exception ex ) { // Could not close the resource? } } 你如何避免finally块中的try / catch ?

C ++ 11中的“final”关键字用于函数的目的是什么?

C ++ 11中final关键字的作用是什么? 我知道它可以防止派生类重写函数,但如果是这样的话,那么声明为非虚拟的final函数还不够吗? 还有什么我在这里失踪?

尝试赶上最后回报的澄清

通过阅读本论坛中已经提出的与上述主题相关的所有问题(见标题),我彻底明白finally总是被称为。 (从System.exit和无限循环除外)。 不过,我想知道是否在catch块中调用return ,然后从finally块中调用另一个return 。 例如: public static void main(String[]args) { int a = new TestClass().absorbeTheValue(); } int absorbeTheValue() { try { int a = 10/0; if (a > 0) return 4; } catch(Exception e) { return 45; } finally { return 34; } } 所以在这里输出(当调用方法的时候)在任何情况下都是34。 这意味着最后总能得到运行。 我认为其他的“回报”根本没有运行。 在许多文章中,我发现最终将内容写入已经由catch子句返回的内容。 我的理解是,只要catch语句中的返回值即将被评估,控制stream就会传递给finally语句,而finally语句又会有另一个返回语句,这次返回值将被评估,而不会将控制权交还给catch语句。 这样,在运行时调用的唯一return将是最终的返回。 你同意吗? finally的return不会将控制权交给程序,而是返回值并终止方法。 我们可以这样说吗?

Java最后的方法:它承诺什么?

在一个Java类中,一个方法可以被定义为final ,以标记这个方法可能不被覆盖: public class Thingy { public Thingy() { … } public int operationA() {…} /** this method does @return That and is final. */ public final int getThat() { …} } 这很清楚,可能有一些用途来防止意外的压倒性的,或者可能的performance – 但那不是我的问题。 我的问题是:从面向对象的angular度来看,我明白,通过定义一个方法final的类devise器承诺这种方法将始终如所述,或暗示的工作。 但是,如果这个方法正在做的更复杂,那么只是提供一个属性 ,这往往可能超出了类作者的影响。 句法约束对我来说很清楚,但是OOP意义上的含义是什么? 大多数课堂作者在这个意义上final被正确地使用了吗? 什么样的“契约” final方法承诺?