草庐IT

final_msg

全部标签

java - finally 里面可以用 try catch 吗?

我正在使用缓冲写入器,我的代码在finallyblock中关闭写入器。我的代码是这样的。...........BufferedWritertheBufferedWriter=null;try{theBufferedWriter=....................}catch(IOExceptionanException){....}finally{try{theBufferedWriter.close();}catch(IOExceptionanException){anException.printStackTrace();}}我必须在finally的清理代码中使用trycat

java - finally 里面可以用 try catch 吗?

我正在使用缓冲写入器,我的代码在finallyblock中关闭写入器。我的代码是这样的。...........BufferedWritertheBufferedWriter=null;try{theBufferedWriter=....................}catch(IOExceptionanException){....}finally{try{theBufferedWriter.close();}catch(IOExceptionanException){anException.printStackTrace();}}我必须在finally的清理代码中使用trycat

java - 最佳实践 : Java static non final variables

在Java中,什么时候应该使用静态非final变量?例如privatestaticintMY_VAR=0;显然我们在这里不是在谈论常量。publicstaticfinalintMY_CONSTANT=1;根据我的经验,我经常在使用单例时证明它们是合理的,但最终我需要拥有多个实例,这给自己带来了极大的头痛和重构。在实践中似乎很少使用它们。你怎么看? 最佳答案 统计收集可能使用非最终变量,例如计算创建的实例数。另一方面,对于那种情况,您可能无论如何都想使用AtomicLong等,此时它可能是最终的。或者,如果您要收集多个统计信息,您最终

java - 最佳实践 : Java static non final variables

在Java中,什么时候应该使用静态非final变量?例如privatestaticintMY_VAR=0;显然我们在这里不是在谈论常量。publicstaticfinalintMY_CONSTANT=1;根据我的经验,我经常在使用单例时证明它们是合理的,但最终我需要拥有多个实例,这给自己带来了极大的头痛和重构。在实践中似乎很少使用它们。你怎么看? 最佳答案 统计收集可能使用非最终变量,例如计算创建的实例数。另一方面,对于那种情况,您可能无论如何都想使用AtomicLong等,此时它可能是最终的。或者,如果您要收集多个统计信息,您最终

java - 将 try catch finally block 放入另一个 finally block 中

try{}catch(){}finally{try{}catch(){}finally{}}上面的代码好不好? 最佳答案 是的,你可以这样做。实际上,在处理要正确关闭的流时,您甚至需要这样做:InputStreamin=/*...*/;try{}catch(...){}finally{try{in.close();}catch(...){}finally{}}我不认为这是一种不好的做法 关于java-将trycatchfinallyblock放入另一个finallyblock中,我们在S

java - 将 try catch finally block 放入另一个 finally block 中

try{}catch(){}finally{try{}catch(){}finally{}}上面的代码好不好? 最佳答案 是的,你可以这样做。实际上,在处理要正确关闭的流时,您甚至需要这样做:InputStreamin=/*...*/;try{}catch(...){}finally{try{in.close();}catch(...){}finally{}}我不认为这是一种不好的做法 关于java-将trycatchfinallyblock放入另一个finallyblock中,我们在S

java - 开闭原理及Java "final"修饰符

开闭原则指出“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。然而,JoshuaBloch在他的名著《EffectiveJava》中给出了以下建议:“设计和记录继承,否则禁止它”,并鼓励程序员使用“final”修饰符来禁止子类化。我认为这两个原则显然相互矛盾(我错了吗?)。您在编写代码时遵循哪个原则,为什么?你是让你的类保持打开状态,不允许继承其中一些(哪些?),还是尽可能使用final修饰符? 最佳答案 坦率地说,我认为开放/封闭原则与其说是不合时宜的,不如说是不合时宜的。这似乎是从80年代和90年代开始的,当时OO框架

java - 开闭原理及Java "final"修饰符

开闭原则指出“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。然而,JoshuaBloch在他的名著《EffectiveJava》中给出了以下建议:“设计和记录继承,否则禁止它”,并鼓励程序员使用“final”修饰符来禁止子类化。我认为这两个原则显然相互矛盾(我错了吗?)。您在编写代码时遵循哪个原则,为什么?你是让你的类保持打开状态,不允许继承其中一些(哪些?),还是尽可能使用final修饰符? 最佳答案 坦率地说,我认为开放/封闭原则与其说是不合时宜的,不如说是不合时宜的。这似乎是从80年代和90年代开始的,当时OO框架

java - 为什么我们在匿名内部类中使用 final 关键字?

我目前正在准备S(O)CJP,以及Sierra和Bates书。关于内部类(方法本地或匿名),他们说我们无法访问局部变量,因为它们存在于堆栈上,而类存在于堆上并且可以由方法返回然后尝试访问到堆栈上的这些变量,但由于方法结束后不再存在......众所周知,我们可以通过使用final关键字绕过这一点。这是他们在书中所说的,但他们并没有真正解释final关键字的作用是什么......据我所知,在方法局部变量上使用final关键字并不能让它存在于堆中......那么该类如何能够访问仍然存在于堆栈中的final变量,而可能没有更多的堆栈???我想内部类中应该有这个最终局部变量的某种“副本”。既然值

java - 为什么我们在匿名内部类中使用 final 关键字?

我目前正在准备S(O)CJP,以及Sierra和Bates书。关于内部类(方法本地或匿名),他们说我们无法访问局部变量,因为它们存在于堆栈上,而类存在于堆上并且可以由方法返回然后尝试访问到堆栈上的这些变量,但由于方法结束后不再存在......众所周知,我们可以通过使用final关键字绕过这一点。这是他们在书中所说的,但他们并没有真正解释final关键字的作用是什么......据我所知,在方法局部变量上使用final关键字并不能让它存在于堆中......那么该类如何能够访问仍然存在于堆栈中的final变量,而可能没有更多的堆栈???我想内部类中应该有这个最终局部变量的某种“副本”。既然值