草庐IT

java - 这是重构太多了吗?

我尝试重构一段代码,使其使用不同的方法进行一些计算。只是为了说清楚。我想知道的是,写一个单独的方法来找出一个简单的东西,比如一个数字是奇数还是偶数,这是一个好的做法还是一个坏的做法??强>原代码是,intn=11;if(n%2==0){System.out.println("Notselected");}else{booleanisPrime=true;if(n==0||n==1){isPrime=false;}else{inti=2;doublea=Math.sqrt(Math.abs(n));while(i重构后的代码是,intn=11;if(isEven(n)){System.o

java - 多少类太多了?什么时候适合添加新类?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.8年前关闭。Improvethisquestion这是一个一般性问题,但我会先给你我的具体问题:我目前正在为我的程序编写一个GUI,该程序将采用框架的形式,上面放置有各种小部件(标签、文本字段等)。它最初将使用javax.swing库,但我在库和GUI本身之间添加了一个抽象层,以便更轻松地创建执行相同操作的Web应用程序。我想要一个代表GUI布局的类:也就是说,它应该包含有关各种标签、按钮等在内容Pane上的位置的所有信息。目前,我正

java - 太多的 if-else 语句,有什么方法可以重构它

这可以重构吗?或者这看起来不错。(变量名称已更改)if(cmpScope.equals(GLOBAL)){returntrue;}elseif((cmpScope.equals(X)||cmpScope.equals(Y))&&cid==pid){returntrue;}elseif(cmpScope.equals(Z)&&cid!=pId){returntrue;}elseif(cmpScope.equals(V)&&cid==pid){returntrue;}elseif(cmpScope.equals(Z)&&cid==pid&&cSubId!=pSubId){returntru

java - 具有太多 Observable 的 RxJava1 StackOverflow 异常

我正在使用rxjava1开发一个项目,我有一个Observable链,偶尔会包含数千个合并或连接在一起的observable。当发生这种情况时,将发生StackOverflow异常,我们将得到如下信息:java.lang.StackOverflowErroratjava.util.HashMap.putVal(HashMap.java:631)atjava.util.HashMap.put(HashMap.java:612)atrx.internal.operators.OnSubscribeToMap$ToMapSubscriber.onNext(OnSubscribeToMap.j

java - JDOM 正在使用太多内存

我有一个应用程序使用XmlUnit从两个XML文件中获取差异。但问题是XmlUnit使用JDOM。我的xml文件有~1GB大!将那些xml存储在JDOM文档中需要太多的RAM。我已经尝试使用SlimJDOMFactory,但仍然占用了过多的内存!!实际上我需要在XML文件中向前和向后导航。如果没有JDOM,我找不到简单的方法。有人可以帮忙吗?这是关于我如何构建JDOM文档的代码示例:privateorg.jdom2.DocumentrefDocJdom2;privateorg.jdom2.DocumentresDocJdom2;SAXBuildersxb=newSAXBuilder()

java - App Engine - 打开的实例太多

我的应用程序在AppEngineJavaSDK上运行,从今天早上开始,我注意到打开的实例没有处理新请求,而是启动了新的Frontent实例。所以现在我有大约250个打开的实例(比平时多得多)。此外,这些实例在1.9.5版上运行。请指教! 最佳答案 Google已于2014年5月9日10:15(美国太平洋时间)修复了该问题。参见GoogleAppEngineDowntimeNotify我们如何临时解决这个问题:在应用程序设置中禁用并重新启用该应用程序。这样做之后一切恢复正常。从那时起,我们只看到了1.9.4版本的实例。在我们的案例中,

java - 打开的文件太多(Selenium + PhantomJSDriver)

在我的嵌入式Selenium/PhantomJSDriver驱动程序中,资源似乎没有被清理。同步运行客户端会导致打开数百万个文件,并最终引发“打开的文件太多”类型的异常。这是我在程序运行约1分钟时从lsof收集的一些输出$lsof|awk'{print$2;}'|uniq-c|sort-rn|head122196612180347902977331260121382095584141794010343166653233295122771372751922654967153504014065$lsof-p12180|awk'{print$2;}'|uniq-c|sort-rn|head2

java - 无法在短时间内发送太多电子邮件

我有一个通信应用程序,每个用户创建一个通信并将其发送给多个用户(平均发送给我们2-30个用户),每次发送我打开一个新线程并按照以下流程向用户组发送电子邮件(连接邮件服务器>发送>关闭连接)如下:publicclassEmailService{privateStringemailProtocol=null;privateStringemailHostSMTP=null;privateStringsenderEmail=null;privateStringsenderUser=null;privateStringsenderPassword=null;privateStringsender

SQL Server过程带有太多时间

我有一个简单的查询,我正在选择STUFF和FORXMLPATH并插入临时表。之后,我将此温度表加入主表,根据某些参数获得所需的结果,但是花费太长了。我在桌子上添加了一个聚类索引,我可以得到STUFF查询的一部分比以前快的速度快一些,但总体结果仍然很慢。这是我的代码示例:DECLARE@TEMP_ACAusVertargTABLE(ACAusVertagNVARCHAR(MAX),IKLeistungserbringerINT,RechnungsnummerNVARCHAR(MAX))INSERTINTO@TEMP_ACAusVertarg(ACAusVertag,IKLeistungserbr

java - Eclipse 使用太多内存,最佳配置是什么?

这个问题在这里已经有了答案:HowtoreduceEclipse'smemoryusage?(10个答案)关闭5年前。我想要的是尽可能轻的eclipse版本,以便它在运行时消耗尽可能低的内存。有谁知道如何配置Eclipse使其尽可能轻?目前我正在使用EclipseSTS,但我想放弃它,因为在不运行我的项目时,它本身平均使用1GB内存。我正在使用64位linux平台。我只做普通的Java/Groovy/Grails和Scala网络应用程序开发,以及Javascript调试HTML/CSS。我没有使用任何重量级应用程序服务器。