草庐IT

Try-finally

全部标签

java - 将 ArrayList 对象声明为 final 以在常量文件中使用

我正在生成一个对象的ArrayList。以下是代码ArrayListsomeArrayList=newArrayList();PublicArrayListgetLotOfData(){ArrayListsomeData=newArrayList();returnsomeData;}someArrayList=eDAO.getLotOfData();一旦我有了这个ArrayList对象“someArrayList”,我想将它声明为public和final并将它存储在一个常量文件中,以便可以全局访问它。有没有办法我可以做到这一点?如果我将Arraylist对象声明为public和fina

java : in what order are static final fields initialized?

好的,假设我有一个看起来像这样的类(class):publicclassSignupServletextendsHttpServlet{privatestaticfinalLoggerSERVLET_LOGGER=COMPANYLog.open(SignupServlet.class);privatestaticfinalExceptionMessageHandlerhandler=newExceptionMessageHandler();privatestaticfinalSignupServletObservableAgentsignupObservableAgent=newSig

java - 这是对 try/finally 的滥用吗?

鉴于多个return语句是可以接受的(我有点不同意,但letusdigress),我正在寻找一种更可接受的方式来实现以下行为:选项A:多次返回,重复代码块publicboolmyMethod(){/*...code...*/if(thisCondition){/*...codethatmustrunatendofmethod...*/returnfalse;}/*...morecode...*/if(thatCondition){/*...theSAMEcodethatmustrunatendofmethod...*/returnfalse;}/*...evenmorecode...*

Java try/catch 性能,是否建议将 try 子句中的内容保持在最低限度?

考虑到你有这样的代码:doSomething()//thismethodmaythrowacheckedaexception//dosomeassignementscalculationsdoAnotherThing()//thismethodmayalsothrowthesametypeofcheckedexception//morecallstomethodsandcalculations,allthrowingthesamekindofexceptions.现在我知道了,实际上在构造异常时会影响性能,特别是展开堆栈。而且我还阅读了几篇文章,指出在输入try/catchblock时

java - 为什么 Object 成员变量在 Java 中不能既是 final 又是 volatile?

如果在一个类中我有一个ConcurrentHashMap实例,该实例将被多个线程修改和读取,我可能会这样定义:publicclassMyClass{privatevolatileConcurrentHashMapmyMap=newConcurrentHashMap();...}将final添加到myMap字段会导致错误提示我只能使用final或volatile。为什么不能两者兼得? 最佳答案 volatile只与变量本身的修改有关,与它所引用的对象无关。有一个finalvolatile字段是没有意义的,因为final字段不能被修改。

java - 在java中创建Hashtable作为final

我们知道java中“final”关键字的用途。在将变量声明为final时,我们必须初始化变量。比如“finalinta=10;”我们不能改变“a”的值。但是,如果我们选择HashTable,它甚至可以添加一些值,甚至将HashTable声明为final。示例::privatestaticfinalHashtableMYHASH=newHashtable(){{put("foo",1);put("bar",256);put("data",3);put("moredata",27);put("hello",32);put("world",65536);}};现在我将MYHASHHashTa

java - 我们可以在 finally block 中使用 "return"

这个问题在这里已经有了答案:ReturningfromafinallyblockinJava(6个回答)Multiplereturns:Whichonesetsthefinalreturnvalue?(7个回答)关闭9年前。我们可以在finallyblock中使用return语句吗?这会导致任何问题吗? 最佳答案 从finallyblock内部返回会导致exceptions丢失。finallyblock中的return语句将导致try或catchblock中可能抛出的任何异常被丢弃。根据JavaLanguageSpecificati

Java 7 自动资源管理 JDBC(try-with-resources 语句)

如何将创建/接收连接、查询数据库和可能处理结果的常见JDBC习惯用法与Java7的自动资源管理、try-with-resources语句集成?(Tutorial)在Java7之前,通常的模式是这样的:Connectioncon=null;PreparedStatementprep=null;try{con=getConnection();prep=prep.prepareStatement("Update...");...con.commit();}catch(SQLExceptione){con.rollback();throwe;}finally{if(prep!=null)pre

java - 为什么只有在 short 是 final 时才将 short 分配给 byte ?

有人可以解释为什么以下编译:finalshorts1=1;finalcharc1=1;byteb1=s1;byteb2=c1;但以下没有(编译器错误信息是Typemismatch:cannotconvertfromshorttobyte):shorts1=1;charc1=1;byteb1=s1;byteb2=c1; 最佳答案 答案在JLS-5.2.AssignmentConversion:..iftheexpressionisaconstantexpression(§15.28)oftypebyte,short,char,orin

java - 中断是否只留下 try/catch 或周围的循环?

如果我在while循环中有一个try...catchblock,并且在catch中有一个break,程序执行是否离开循环?如:while(!finished){try{doStuff();}catch(Exceptione){break;}}doStuff()中抛出的异常会退出循环吗? 最佳答案 是的,它会的。最简单的方法就是尝试一下。publicstaticvoidmain(String[]args){inti=0;while(i它会打印出来01234567outofloop输出以0开头。