草庐IT

提升效率

全部标签

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 - 有没有Spring,性能有没有提升

我的同行总是强制我使用Spring来创建任何对象的新实例。据我了解,Spring提供了一个平台来更有效地管理业务对象。Spring使架构更加模块化和更加灵活。在某些情况下,我觉得不使用springbean,而是使用创建新对象的通用方法。但是,我的同事们总是以提高绩效为借口强制我这样做。我从来没有找到任何与spring相关的文章提到性能因素。问题:如果我使用springbean创建对象,与使用“new”运算符创建新实例相比,它是否提高了性能。 最佳答案 Spring是一种与其他工具一样的工具-如果应用得当,它会带来好处。如果应用不当,

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

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

java - 如何快速提升程序员的能力?

我的问题不仅仅是扩展语言特定技能。我想知道任何人都可以向渴望知识但缺乏方向的人提供什么样的建议。请随意跳到问题。背景:我在我的大学里选修了一门java计算机科学类(class),但我打算主修计算机科学和电气计算机工程(ECE)。我的java类非常初级。我们得到了一个框架,并且仅仅编辑/创建了一些方法和类来执行一个简单的任务。我们制作了Breakout的一个版本,并为简单的四人连线游戏创建了一个AI。虽然我对大O表示法有些熟悉,但实际上我并没有在类里面学习过它(我的下一节CS课会讲到这个)。在我的入门ECE类(class)中,我们还在PBASIC中对BOE-Bots进行了编程,以在各种障

【建议收藏】新到手的电脑Windows10/11系统优化、使用规范和技巧及软件推荐,提升范电脑性能和体验

目录一、了解电脑1.查看电脑和系统的基本信息 2.电脑测评二、Windows10/11系统优化及设置1.控制面板、回收站等桌面图标显示设置2.任务栏管理3. 桌面图标排列4.卸载程序5.关闭P2P分享(传递优化)6. 电设置脑为高性能7.  删除存储中的临时文件8. 磁盘清理9.卸载迈克菲三、软件推荐1. 安全防御软件:火绒安全软件2. 压缩软件:7-Zip3.浏览器推荐:GoogleChrome(谷歌)浏览器4.下载器:IDM5. 文件搜索:Eveything6.磁盘管理:DiskGenius7.文本编辑:VisualStudioCode8.桌面壁纸引擎:WallpaperEngine9.翻