草庐IT

办公效率

全部标签

将方法移动到另一个类的Java效率

我目前正在处理一个相当庞大的项目,其中包含多个超过20,000行的类。这是因为将所有为UI生成的swing代码与所有功能代码混合在一起是某人的绝妙主意。我想知道将大部分与UI无关的功能移到一个单独的类中是否会在内存或运行时间方面产生任何额外成本。举个例子,这与我正在构建的内容类似。publicclassClass1{privateClass1Utilc1u;ListinfoItems;...publicvoidClass1(){c1u=newClass1Util(this);}publicvoidbtnAction(ActionListeneral){...c1u.loadInfoFr

java - String.hashCode() 效率低下吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion查看sourcecodeofjava.lang.Stringofopenjdk-1.6时,我看到String.hashCode()使用31作为质数并计算s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]现在我看这个的原因是我想到的问题是比较String.equals中的hashCodes是否会使String.equals明显更快。但是现在看hashCode,我想到

java - 如果我在循环外评估数组的大小,运行时效率会有差异吗?

迭代元素(在本例中为整数)数组的传统方法如下:int[]array={5,10,15};for(inti=0;i但是,这是否意味着在每次迭代后都会重新评估“array.length”?这样做不是更有效率吗?:int[]array={5,10,15};intnoOfElements=array.length;for(inti=0;i这样,(据我了解)程序只需计算一次,然后查找“noOfElements”变量的值。注意:我知道增强的for循环,但是当您想使用正在递增的变量(本例中的“i”)来实现其他目的时,不能使用它在for循环中。我怀疑这实际上是一个问题,即Java编译器是否有能力实现“

java - 什么更有效率? If Else 还是 HashMap?

我正在用Java编写一些代码来检查坐标在哪个象限,我想知道哪种方法更有效地检查它:if-elseblock或使用HashMap。HashMap看起来像这样:privatestaticfinalMapquadMap=newHashMap(){{put(newCoordinate(0,0),Quadrant.Q1);put(newCoordinate(0,1),Quadrant.Q2);put(newCoordinate(1,0),Quadrant.Q3);put(newCoordinate(1,1),Quadrant.Q4);}};然后我想在哪里获得我的象限:returnquadMap.

Java:ExecutorService 的效率不如手动线程执行?

我有一个多线程应用程序。当使用Thread.start()手动启动线程时,每个并发线程恰好使用25%的CPU(或恰好一个核心-这是在四核机器上)。因此,如果我运行两个线程,CPU使用率正好是50%。然而,当使用ExecutorService运行线程时,似乎有一个“幽灵”线程正在消耗CPU资源!一个线程使用50%而不是25%,两个线程使用75%,等等。这会不会是某种Windows任务管理器的产物?执行者服务代码是ExecutorServiceexecutor=Executors.newFixedThreadPool(threadAmount);for(inti=1;iThread.sta

c# - Java中递归和非递归函数的效率比较

据我了解,由于函数调用的开销,递归函数的效率通常低于等效的非递归函数。但是,我最近遇到一本教科书,说这对于Java(和C#)不是必需的。它没有说明原因,但我认为这可能是因为Java编译器以某种方式优化了递归函数。有人知道为什么会这样吗? 最佳答案 教科书可能指的是尾调用优化;有关详细信息,请参阅@Travis的回答。但是,教科书在Java上下文中是不正确的。当前的Java编译器没有实现尾调用优化,显然是因为它会干扰Java安全实现,并且会改变出于各种目的对调用堆栈进行内省(introspection)的应用程序的行为。引用资料:Do

java - String str = new String ("my string") 真的效率低吗?

我经常看到有人说Stringstr=newString("mystring")比写Stringstr="mystring",效率低,因为前者创建一个静态“我的字符串”对象,然后是一个从静态对象复制的String对象。但是,考虑到这里的语言是如此简单和明确,我很难想象Java优化器不会花任何力气将前者简单地转换为后者。为什么它真的会选择更费力的方式呢?如果Java对其进行了优化,会有什么负面影响? 最佳答案 However,giventhatthelanguagehereissosimpleandunambiguous,Icanhar

java - Java如何处理IF语句及效率

我只是好奇Java在处理if语句时实际上是如何工作的。(注意:当我在下面说“组件”时,我指的是语句检查的各个部分,例如a、b、c)哪个计算效率更高?if(a&&b&&c){dostuff}或if(a){if(b){if(c){dostuff}}}我之所以问,是因为Java在第一个版本中所做的很重要。它是检查语句中的每一件事还是检查a,如果它是false则取消检查语句的其余部分?如果是这种情况,那么将最有可能失败的组件作为语句中的第一个组件是有意义的。如果每次都检查整个语句,那么将组件拆分为一堆不同的语句更有意义,如第二个示例所示。 最佳答案

java - 使用标志或 if 子句效率更高吗?

在Java循环中,使用boolean标志而不是if语句是否更有效?看看这两段代码。使用标志:publicbooleanisSomethingForAnyone(){booleanflag=false;for(Itemitem:listOfItems){flag=flag||item.isSomething();}returnflag;}使用if语句:publicbooleanisSomethingForAnyone(){for(Itemitem:listOfItems){if(item.isSomething())returntrue;}returnfalse;}如果isSomethi

Copilot 插件的使用介绍:让你的开发效率翻倍

摘要:Copilot是一款强大的代码自动完成插件,能够帮助开发者提高开发效率,减少重复性劳动。本文将详细介绍Copilot插件的使用方法,让你轻松上手,开启编程新篇章。一、Copilot插件简介Copilot是由GitHub开发的一款代码自动完成插件,使用了OpenAI的GPT模型。它可以帮助开发者更快速地编写代码,提供语法提示、代码补全、自动格式化等功能,并且还可以根据上下文生成代码。支持多种编程语言和开发环境。它能够根据开发者当前的代码上下文,智能推荐可能的代码片段,让开发者不再需要手动编写重复的代码,从而提高开发效率。二、Copilot插件的安装对于VisualStudioCode用户,