草庐IT

时有发生

全部标签

java - 如果 catch block 或 finally block 有一些异常会发生什么?

这个问题在这里已经有了答案:Exceptionthrownincatchandfinallyclause(12个答案)关闭8年前。在异常处理中,如果catchblock或者finallyblock出现Exception会怎样?

java - 当我们在 Collections.synchronizedMap() 中传递哈希表时会发生什么

今天我在面试中问了一个问题。问题是Collections.synchronizedMap()是用于同步map,默认情况下它不像hashmap那样是线程安全的。他的问题是我们可以在这个方法中传递任何类型的map。那么当我们在该方法中传递哈希表时会产生什么效果,因为哈希表默认情况下是同步的。 最佳答案 map的行为将是相同的,但性能会受到影响,因为每个方法将获取两个同步锁而不是一个。例如,考虑在生成的map上调用方法size()。Collections.SynchronizedMap类中的实现如下所示:publicintsize(){s

java - 重写泛型类的方法时发生名称冲突

我试图通过以下代码了解名称冲突错误:importjava.util.*;importjavax.swing.*;classFoo{publicvoiddoSomething(Numbern,Mapcomps){}}classBarextendsFoo{publicvoiddoSomething(Numbern,Mapcomps){}}错误信息:error:nameclash:doSomething(Number,Map)inBaranddoSomething(Number,Map)inFoohavethesameerasure,yetneitheroverridestheother我知

java - 如果我在应用程序仍在运行时修改项目中的类,会发生什么情况?

我使用Eclipse并编译并运行了一些项目。然后我决定修改一些类。似乎正在运行的项目没有catch变化,但如果我运行另一个项目实例,它确实会看到变化。问题是,Eclipse如何排除这种情况?因为我看到.class文件存储为单个实例,以后的更改只会覆盖以前的文件。可能是JVM在内存中加载类,即使它们发生了变化也不会触及它们。但我想听听完整的故事。 最佳答案 当程序运行时,它会将.class文件读入内存并从那时起使用该副本。如果你改变,它不会重新读取文件并再次加载/链接它,那会更复杂。有一些类加载器可以自动执行此操作,但这不是默认行为。

java - 重用 PreparedStatement 时可能会发生资源泄漏?

假设您有以下代码:Connectionconnection=null;PreparedStatementps=null;try{Connection=connectionFactory.getConnection();ps=statement.prepareStamement(someQuery);//executeandreadandstuff//nowyouwanttousethepsagain,sinceyoudon'twantps1,ps2,ps3,etc.ps=statement.prepareStatement(someOtherQuery);//DOESTHISFORMA

java - 如果我们在java中只声明一个变量而没有初始化,内存中会发生什么?

如果我们只是创建一个引用变量或为原始数据类型或引用数据类型声明一个变量而不用任何值初始化,如下所示,内存中会发生什么?intx;Employeeemp;那么在这两种情况下内存中到底发生了什么?在此阶段是否分配了任何内存,或者它是否指向任何随机位置或指向空值或指向垃圾值?与第二种情况一样,如果我们使用带有new运算符的构造函数或使用任何其他方式创建对象,则只会在内存中创建空间。Employeeemp=newEmployee(); 最佳答案 Java虚拟机(JVM)从操作系统分配堆内存,然后为Java应用程序管理自己的堆。当应用程序创建

java - swing labs 或 swingx-ws 发生了什么?用于 Java 的 JXMapKit

我是java的新手,一直在看一些关于GIS或地理GUIjava应用程序的教程。他们中的许多人提到并且似乎需要swingx-ws或swinglabs组件和类。我设法找到了一些旧版本,但它们似乎对我的Jform应用程序没有产生预期的影响。基本上,当我在将.jar添加到我的库文件夹后尝试拖放时,我得到了停止吸烟标志(笑话)或拒绝符号。我还通过调色板管理器将组件添加到调色板,一旦选择它们就会出现,但是当我尝试添加时,我会看到一个javjanoclass错误。教程中的许多链接似乎将我带到死站点并且已经很旧了。基本上我的问题是。swingx-ws是否仍然是向javagui应用程序添加映射功能的有效

java - 当 Java 中的集合超出容量时会发生什么?

我有一个服务,它会在内存中暂存所有对它的调用,因为我们不想丢失数据,同时我们需要这个服务永远不会因为任何外部依赖(例如数据库)而失败).然后,这些暂存的调用会在后台定期接收和处理。如果,出于任何原因,如果调用太多而我们用完了内存,我们需要报警。所以,简单地说,问题是:当由于资源不足而无法添加列表时,我需要捕获或监视什么异常来通知我?它会导致VM本身出现OOM,还是也有集合级别的限制?如果没有集合级别限制,您建议我如何监控服务的使用情况?目前,我们有堆使用和内存使用指标。那些够了吗?此外,JVM配置为在出现OOM错误时终止(这是因为VM管理器随后会重新启动它在终止时管理的任何进程)。

java - 检索组件类型数组时发生类型未加载错误

我有以下代码。Complex[]time1Dummy=newComplex[time1.size()];Complex[]freq1=newComplex[time1.size()];System.out.println("Sizeoftime1:"+time1.size());for(inti=0;i在此,Complex是包含的类privatestaticDoublere;//therealpartprivatestaticDoubleim;//theimaginarypart`在这里,我试图将数组列表time1中的值分配给复杂的值函数。我在eclipse4.3.2中运行这段代码。有

java - 如果未调用 notify(),等待线程会发生什么情况?

如果未调用notify(),等待线程会发生什么情况?这是虚假唤醒吗? 最佳答案 如果等待线程未通过调用notify()或notifyAll()通知在所述线程正在等待的对象上,则可能发生以下任何一种情况:Thread一直在对象的等待池中等待如果指定了超时并且时间过去了,Thread将变为runnable线程被中断并再次变得可运行Thread完全没有的原因被唤醒,即它既没有被通知也没有被中断最后一种情况被称为虚假唤醒,这也是为什么Thread唤醒时应该始终检查它是否正在等待的条件的原因之一因为是真的还是假的。如果没有,Thread应该调