草庐IT

java - 方法本地内部类在 Java 中有什么好处?

我刚刚通读了SCJPbook中关于方法局部内部类的章节,我真的很难想出它们的任何实际用途。我一直认为方法应该尽可能小并针对它们的任务(OrthogonalityIIRC),因此即使引入最简单的内部类也会创建笨重的方法。任何人都可以建议方法局部内部类的良好实际用法吗?到目前为止,感觉好像我可能必须理解它们纯粹是为了通过考试,而不是为了在日常编码中使用。干杯 最佳答案 在大多数情况下(例如,对于Action监听器、可运行对象等),您将使用匿名类而不是方法局部命名类。但是有一件事是命名类可以做而匿名类不能做的:实现多个接口(interfa

java - 使用 Collection 接口(interface)创建 ArrayList 对象的多态性有什么好处?

我研究了多态性,了解到它可以像下面这样进行动态方法绑定(bind)。假设类Animal是抽象类。publicclassAnimalReference{publicstaticvoidmain(Stringargs[])Animalref//setupvarforanAnimalCowaCow=newCow("Bossy");//makesspecificobjectsDogaDog=newDog("Rover");//nowreferenceeachasanAnimalref=aCow;ref.speak();ref=aDog;ref.speak();}我曾经像这样创建ArrayLis

java - Log4j 单例包装器的好处?

我最近继承了一些Java代码,需要将其集成到我正在从事的项目中。我的项目是一个处理和转换XML消息的服务代理。在查看新代码时,我发现了以下日志记录类:importorg.apache.log4j.BasicConfigurator;importorg.apache.log4j.Level;importorg.apache.log4j.Logger;publicclassMyLogger{privatestaticMyLoggerinstance=null;protectedfinalstaticLoggerlog=Logger.getLogger(MyLogger.class);pri

java - 使用 groovy 为 java 应用程序编写集成测试有什么好处?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我看到一些帖子(例如此处1)建议使用groovy以groovy编程语言为java应用程序编写集成测试。我正在使用以下技术开发应用程序:Java7、javaEE6、POSTGRESQL我知道groovy是易于与java集成快速编写代码但是将它用于IT有什么特别的理由吗?在您的代码库中添加另一种编程语言不会让您的生活变得一团糟吗?我想我从图片中遗漏了一些东西,

java - 通用构造函数的好处

为非泛型类使用泛型构造函数有什么好处?Java规范允许以下内容:classNonGeneric{NonGeneric(){}...NonGenericref=newNonGeneric();}有人能想出一个现实的例子来说明它何时增强了类的类型安全性吗?它比一开始就使用Generic更好。我知道Java设计者希望构造函数与方法更加一致。考虑到构造函数可能有副作用,泛型构造函数可以使用泛型来改变一些不保留引用的参数,如NonGeneric(Tobj,Listlist){list.add(obj);//Don'tholdareferencetolist} 最佳答案

Java - 内存映射文件的好处

我很难看到Java中内存映射文件(缓冲区)的好处。这是我在实践中看到的方法:我们将文件block映射到主内存并直接在内存中处理任何写入/读取,让操作系统完成将文件持久保存到磁盘的工作。现在,我想将其与常规I/O和一些场景进行对比:追加到文件中为了将文件映射到mem中,我必须将其作为一个整体读取,以进行整体修改。缓冲区大小最初是文件的大小(假设我不知道要写入文件的数据量)。现在,为了附加到文件,我不能这样做,因为缓冲区的大小有限。所以最基本的操作对我来说似乎是不可能的。此外,读取整个文件以附加一小部分似乎相当浪费。所以我猜常规I/O在这种情况下表现更好。坚持改变为了保留更改,我仍然需要刷

java - 将 forEachOrdered 与并行流一起使用的好处

Oracle官方文档说:NotethatyoumaylosethebenefitsofparallelismifyouuseoperationslikeforEachOrderedwithparallelstreams.Oracle-Parallelism如果我们失去了并行性,为什么会有人将forEachOrdered与并行流一起使用? 最佳答案 根据情况,使用ForEachOrdered并不会失去所有并行性的好处。假设我们有这样的东西:stringList.parallelStream().map(String::toUpperC

java - 在一个 catch block 中使用多个异常有什么好处?

我们都听说在Java7中我们可以这样写:try{//somethingwithfilesandIO}catch(FileNotFoundException|IOExceptionex){ex.printStackTrace();System.out.println("It'scan'tcopyfile");}代替try{//somethingwithfilesandIO}catch(FileNotFoundExceptionwx){ex.printStackTrace();}catch(IOExceptionex){ex.printStackTrace();}但是,除了更短的代码之外,

java - 仅在界面上使用@Deprecated 符号有什么好处?

对于Java编程,在接口(interface)方法上使用@Deprecated符号而不是在实现它的类上使用有哪些好处?publicinterfaceJoe{@DeprecatedpublicvoiddoSomething();...}publicfinalclassJosephimplementsJoe{publicvoiddoSomething(){...}...} 最佳答案 @Deprecated是文档。如果人们对接口(interface)进行编码,您可以将该接口(interface)的某些方面标记为已弃用。这样人们就知道不要使

java - Java有什么好处?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我总是听说程序员试图为工作选择合适的工具。我从来没有用Java编程过,所以我想知道它有什么好处?为什么如此受欢迎?我应该用它做什么?我只是消遣地编程。它有什么特别有趣的地方吗??