草庐IT

finalizer

全部标签

java:如何声明一个在 try - catch block 中初始化的变量的 final?

我有一个变量在初始化后不应更改其值,因此我想将其定义为最终变量。问题是变量必须在tryblock中初始化,所以我遇到了以下麻烦:我有以下代码:Connectionconn=null;try{conn=getConn(prefix);[...dosomestuffwithconn...]}catch(Exceptione){thrownewDbHelperException("erroropeningconnection",e);}finally{closeConnection(conn);}如果我将variabale声明为final,但没有将其初始化为null,我会在finallybl

java - 为什么在自动装箱期间发生 final long 到 Byte 的编译错误,但 final int 到 Byte 是可以的?

将int和short类型的常量自动装箱到Byte时没有错误,但long类型do有错误。为什么?finalinti=3;Byteb=i;//noerrorfinalshorts=3;Byteb=s;//noerrorfinallongl=3;Byteb=l;//error 最佳答案 来自JLSSec5.2,"Assignmentcontexts"(强调我的):Inaddition,iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orint:Anarro

java - finalize() 方法的良好用途

这个问题在这里已经有了答案:Whywouldyoueverimplementfinalize()?(21个答案)关闭5年前。这主要是出于好奇。我在想是否有人遇到过Object.finalize()除了调试/日志记录/分析目的之外的任何好的用法?如果您还没有遇到过,您认为好的用法是什么?

java - 使用 final 方法初始化实例变量

来自SundocsNormally,youwouldputcodetoinitializeaninstancevariableinaconstructor.Therearetwoalternativestousingaconstructortoinitializeinstancevariables:initializeblocksandfinalmethods.我能理解初始化block的用法。谁能解释一下final方法的用法,例如var初始化?非最终公共(public)setter可以完成这项工作。为什么不直接使用它们? 最佳答案

java - 如何从 try、catch 和 finally 中返回一个值?

所以当我在try{}中执行代码块,并尝试返回一个值时,它告诉我noreturnvaluesimportorg.w3c.dom.ranges.RangeException;publicclassPg257E5{publicstaticvoidmain(String[]args){try{System.out.println(add(args));}catch(RangeExceptione){e.printStackTrace();}finally{System.out.println("Thanksforusingtheprogramkiddo!");}}publicstaticdou

java - 这个包含 close() 调用的 finally 子句的原因是什么

我正在学习在线java类(class),IntroductiontoprogrammingUsingJava.在关于I/O的章节中,下面的代码使用以下语句进行介绍:Bytheway,attheendofthisprogram,you'llfindourfirstusefulexampleofafinallyclauseinatrystatement.Whenthecomputerexecutesatrystatement,thecommandsinitsfinallyclauseareguaranteedtobeexecuted,nomatterwhat.程序在11.2.1节末尾并且是

java - 在java中将对象声明为final

谁能阐明下面代码的意义。classA{inti=10;publicvoidsetI(intb){i=b;}publicintgetI(){returni;}}classTest{publicstaticvoidmain(Stringargs[])throwsThrowable{finalAob=newA();ob.setI(10);System.out.println(ob.getI());}}对象A被声明为final,但我可以更改此对象实例变量的值并检索更新后的值。那么将一个对象声明为final有什么意义呢。我知道将原始数据类型声明为final,这会使该变量保持不变。

java - 将类设置为 final 和将类构造函数设置为私有(private)有什么区别

final类和将类构造函数设置为私有(private)的到底有什么区别。我知道两者都不能被子类化(如果我错了请纠正我)。它们有什么区别吗? 最佳答案 无法扩展最终类。它可以防止这种情况finalclassFinalClass{}//andlaterclassExtendedClassextendsFinalClass{//ERROR}这对像String这样的东西很有用-你不希望有人能够覆盖String的逻辑,最常用的对象之一,并且能够,哦,我不知道,添加网络和将您使用的所有字符串发回。如果可以扩展String就可以做到。不能在类外调

java - 变量 "effectively final"是什么意思?

这个问题在这里已经有了答案:Differencebetweenfinalandeffectivelyfinal(14个答案)关闭8年前。documentation关于匿名类状态Ananonymousclasscannotaccesslocalvariablesinitsenclosingscopethatarenotdeclaredasfinaloreffectivelyfinal.我不明白“有效最终”变量是什么意思。谁能提供一个例子来帮助我理解这意味着什么?

java - 最终字符串类与非最终字符串类的 final方法

我知道java.lang.String类被声明为final是出于安全和性能相关的原因。我不明白的是,是否可以使用所有最终变量和final方法而不是声明最终类来实现相同的目的?简而言之,下面两个代码片段有什么区别..例如publicclassfinalString{..}速度/速度//nonfinalclasspublicclassString{//allfinalvariablesprivatefinalchar[]value;//allfinalmethodspublicfinalStringsubString(){..}publicfinalintlength(){returnva