草庐IT

try-finally

全部标签

java - 对象未被终结且 Finalizer 线程未执行任何操作

在我们的服务器上,我们开始遇到OutOfMemoryError问题。我们使用EclipseMemoryAnalysis分析了堆转储,发现有许多对象被保留以进行终结(大约占堆的2/3):我们发现,它可能是一些finalize()方法阻塞。我发现了几个关于这个问题的错误报告(here或here),它总是在Finalizer线程堆栈中表现出来,它在某处被阻塞。但在我们的例子中,这个线程正在等待:"Finalizer"daemonprio=10tid=0x43e1e000nid=0x3ffinObject.wait()[0x43dfe000]java.lang.Thread.State:WAI

java - try block 内语句的 Netbeans 声明性提示语法

我想检查并转换一个特定的语句为try-with-ressources形式。但我感觉declarativehintsformat的语法为此我避而不谈。我试过:try{$before$;someMethod($arg1,$arg2,$arg3);$after$;}catch$catches$=>try(Resourceres=acquire($arg1,$arg2,$arg3)){$before$;res.use();$after$;}catch$catches$但应用到我的代码中时,模式永远不会匹配。这是我希望匹配的一些示例代码部分:publicbooleanstep(Stringinp

java - 为什么 javac 不优化空的 try-finally block ?

我写了一个类classtest1{voidfoo(){}}还有一个有很多try和finally语句什么都不做的类:classtest2{voidfoo(){try{}finally{}try{}finally{}try{}finally{}try{}finally{}try{}finally{}}}使用javac(sun-jdk-1.6.0.37,linux-3.8.13-amd64)编译它们并与od比较文件。test1.class000000006614307154102016306256407216302006100517307301200000200645570201440675

java - Cassandra NoHostAvailableException : All host(s) tried for query failed in Production

我们有10个运行Cassandra-2.1.8的Cassandra节点。我们最近升级到2.1.8版本。以前我们只使用3个运行Cassandra-2.1.2的节点。首先,我们将最初的3个节点从2.1.2升级到2.1.8(遵循UpgradingCassandra中描述的过程)。然后我们在集群中添加了7个运行Cassandra-2.1.8的节点。然后我们开始了我们的客户端程序。最初几个小时一切正常,但几个小时后,我们在客户端程序日志中看到一些错误,例如Thread-0[29/07/1517:41:23.356]ERRORcom.cleartrail.entityprofiling.engin

java - 组织.testng.TestNGException : while trying to execute the tests

长期以来,我一直在使用AndroidStudio开发一个项目。今天重构了一些代码,它开始崩溃,所以恢复了更改。即使在我尝试调试代码时恢复更改后,我也会以以下异常结束:org.testng.TestNGException:org.xml.sax.SAXParseException;lineNumber:3;columnNumber:44;Attribute"parallel"withvalue"none"musthaveavaluefromthelist"falsemethodstestsclassesinstances".atorg.testng.TestNG.initializeSu

java - 匿名内部类和 Final 修饰符

这个问题在这里已经有了答案:Anonymous-Innerclassesshowingincorrectmodifier(4个答案)关闭3年前。据我正确理解匿名类总是final:这在JLS15.9.5中有专门提到但是,当我运行以下代码来检查它是否显示Inner类不是final时。publicclassTest{staticclassA{}publicstaticvoidmain(Stringarg[]){Aobj=newA(){};if((obj.getClass().getModifiers()&Modifier.FINAL)!=0){System.out.println("Itis

java 。本地类(class)有什么理由不让它成为 final类吗?

我对Java中的本地类有疑问(在方法中或在{}限定的block中声明的类)。是否有任何理由不将本地类声明为final?我们不能从本地类继承其他类(如果它没有在同一范围内定义),但是当我们将其声明为final时,也许编译器可以使代码更简单?谢谢! 最佳答案 人们似乎对匿名类和本地类有点混淆。这是本地类:publicvoidm(){classMyClass{}MyClasscl=newMyClass();}您可以将MyClass声明为final,但实际上可以从它继承,因此Java中的任何其他地方都可以将其声明为final以避免这种情况:

java - Sun 的 HotSpot JIT 编译器是否自动将 "final"应用于 Java 局部变量?

我听说是这种情况,但我找不到权威的在线资源来证实这一点。背景:一位同事喜欢将他的局部变量设为final。他这样做的原因之一是性能。我的观点是Java的HotSpotJustInTime编译器会自动检测不变的局部变量,并使它们成为final,因此我们自己这样做不会性能有任何好处。请注意,我不是询问将局部变量设为final是否是良好的编码习惯,因为已经有很多(离题的)SO问题了.编辑:mrhobo提出了关于优化整数文字字节码的一个很好的观点。我应该给出一个我正在谈论的代码类型的例子,以及我的问题:ObjectdoSomething(Foofoo){if(foo==null){returnn

java - 为什么不应该将所有函数参数都声明为 final?

好的,所以我明白了为什么我们应该从thisquestion声明一个参数为final,但我不明白为什么我们不应该...由于Java总是使用按值传递,这意味着我们不能通过给定的参数返回一个新值,我们只能覆盖它,并因此使参数无用,因为我们不使用传递的值。..Java中非final方法参数的唯一好处是您不必创建参数类型的局部变量吗?附言这个问题是由PMD的MethodArgumentCouldBeFinal规则触发的 最佳答案 我只能想到2个不参数final的原因:如果您需要在某些极端情况下覆盖参数的值(例如,如果参数为null等,则设置默

java - 内存不足错误 : Java heap space when trying to read large file

我正在尝试读取大文件(大约516mb),它有18行文本。我试着自己写下代码,在尝试读取文件时在第一行代码中出错:try(BufferedReaderbr=newBufferedReader(newFileReader("test.txt"))){Stringline;while((line=br.readLine())!=null){StringfileContent=line;}}注意:文件存在且大小约为516mb。如果有另一种更安全更快的读取方法请告诉我(即使它会换行)。编辑:在这里我尝试使用Scanner,但它持续的时间稍长,然后给出相同的错误try(BufferedReader