首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在线求CR,你觉得我这段Java代码还有优化空间吗?

上周,因为要测试一个方法在并发场景下结果是不是符合预期,我写了一段单元测试代码。写完之后截了个图发了一个朋友圈,很多人表示短短几行代码,涉及到好几个知识点。 还有人给出了一些优化建议。...我们来看看上面的代码涉及到哪些知识点? 知识点 以上这段单元测试代码中涉及到几个知识点,我这里简单说一下。...首先说一下,其实单元测试代码对性能、稳定性之类要求并不高,所谓优化点,也并不是必要。这里只是说讨论下,如果真的是要做到精益求精,还有什么点可以优化呢?...// 再对关键字段做注意校验 以上,就是关于我一次单元测试代码所涉及到知识点,以及目前所能想到相关优化点。...但是还是想问一下,对于这部分代码,你觉得还有什么可以优化地方吗?

81530
您找到你想要的搜索结果了吗?
是的
没有找到

前端代码层面优化一些想法

147行,比拆分之前多了20+行;这其实也是可以理解,因为在这三个文件中,会有相同import代码,以及因为使用到了相同store变量从而在各自组件中都需要引入,这样代码量增加对于更大文件来说可能会更明显...,但我们用一定量代码行数增加换来却是更清晰代码结构和更易维护修改逻辑,那么这也是值得。...对于这个问题,建议写代码时时刻牢记“单一职责原则”,无论是哪个文件,都应该只做一件事;建议从以下几个角度考虑:将功能较多大型组件拆分为较小组件;将与组件功能无关代码或功能独立代码提取到单独函数中...在组件return模板里,我们看到先做了一次过滤过滤,然后再去遍历渲染,在代码量少情况下这样做问题不大;但在我们项目中,即便是模板代码,也很容易就到一百行甚至更多量,因此对于模板来说,也建议提取到单独组件中维护...;同时也需要关心一些基础代码风格问题以及框架使用问题;在项目的架构和组织组件上都需要经常思考和优化

1.1K20

为什么这段代码输出是”Hello World”

Stackoverlfow.com上有一篇有趣讨论帖: 在这篇帖子里提到了如下程序: 明明是在程序里使用了java.util.Ramdom()函数产生随机数,为什么每次打出结果都是Hello world...关于这个程序运行原理解释,最置顶一个回复如下: “如果java.util.Random是被一个具体数字做为“随机数种子”而实例化(在本例中是-229985452和-147909649),那么该实例就会以这个随机数种子作为随机算法产生随机数基础...使用同样种子实例化Random对象,每次运行时将会遵循同一种模式,产生同样序列。”...这就是为什么每次运行该程序都会产生同样结果原理啦~ 当然,关于这个话题,高手林立Stackoverflow上是不缺乏懂行专家和见解。...尤其是在复杂计算环境下高质量随机数产生,需要牵涉到非常高深计算科学和数学方面的理论研究。 在计算机随机数产生理论研究上,美籍华人姚期智(目前任职于清华大学)是世界顶尖专家。

93820

这段代码我猜76.85%Java程序员都看不懂

Java 8 提供一系列语法糖和特性让Java又焕发了青春。虽然现在Java 16已经发布数月,Java 17还有不到一个月时间也要面世了。但是不少开发者依然使用着Java 8 。...你发任你发,我用Java 8。听说你Java 8 用很溜?...来用这段代码考察一下你Java 8熟练度,不要怀疑,这段代码是可执行: public interface O { interface $ { void $()...} void O($ o); default O O() { return $::$; } } 这段代码非常抽象...不过通常我们不会这样写,写这样代码可能会被同事打死。能写出这样Java代码也需要一定创造力,而阅读这样代码需要一定忍耐力。搞清楚这几行代码花了我近1小时时间,你需要多长时间呢?

40120

java反射,代码优化

java反射机制属实强大,能解决好些问题 在接手别人写代码时候,有一个bean类get方法特别low,我都看不下去 重复代码写五遍,我都觉得太不合理。之后将其中代码抽取出来修改了下。...temp.add(mapC); temp.add(mapD); temp.add(mapE); return temp; } 将其中相同代码抽出来有个问题...之前使用反射也挺多,有时候根据对应全类名来获取,这个可用性很大。...之前做过一个跨域审批功能,对于现有的类进行操作,没问题,之后让我修改为通用,针对于不同类也要求适用,蒙了。...这个时候反射又用到了,可以将bean类放入固定包名下面,只有根据数据库表明以及对应包路径名称来获取到全类名,之后获取到对应字节码文件之后 获取实例获取对应属性,进行一系列操作。

38130

Java 代码性能优化

代码优化,一个很重要课题。可能有些人觉得没用,一些细小地方有什么好修改,改与不改对于代码运行效率有什么影响呢?这个问题我是这么考虑,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?...代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码细节可以不精打细磨;但是如果有足够时间开发、维护代码,这时候就必须考虑每个可以优化细节了,一个一个细小优化点累积起来,...代码优化目标是 减小代码体积 提高代码运行效率 代码优化细节 1、尽量指定类、方法final修饰符 带有final修饰符类是不可派生。...在Java核心API中,有许多应用final例子,例如java.lang.String,整个类都是final。...如果指定了一个类为final,则该类所有的方法都是finalJava编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化

40320

为什么这段代码输出是”Hello World”

Stackoverlfow.com上有一篇有趣讨论帖: 在这篇帖子里提到了如下程序: 明明是在程序里使用了java.util.Ramdom()函数产生随机数,为什么每次打出结果都是Hello world...关于这个程序运行原理解释,最置顶一个回复如下: “如果java.util.Random是被一个具体数字做为“随机数种子”而实例化(在本例中是-229985452和-147909649),那么该实例就会以这个随机数种子作为随机算法产生随机数基础...使用同样种子实例化Random对象,每次运行时将会遵循同一种模式,产生同样序列。”...这就是为什么每次运行该程序都会产生同样结果原理啦~ 当然,关于这个话题,高手林立Stackoverflow上是不缺乏懂行专家和见解。...尤其是在复杂计算环境下高质量随机数产生,需要牵涉到非常高深计算科学和数学方面的理论研究。 在计算机随机数产生理论研究上,美籍华人姚期智(目前任职于清华大学)是世界顶尖专家。

96020

java代码优化若干细节

代码优化,一个很重要课题。可能有些人觉得没用,一些细小地方有什么好修改,改与不改对于代码运行效率有什么影响呢?这个问题我是这么考虑,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?...代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码细节可以不精打细磨;但是如果有足够时间开发、维护代码,这时候就必须考虑每个可以优化细节了,一个一个细小优化点累积起来,...代码优化目标是 减小代码体积 提高代码运行效率 代码优化细节 1、尽量指定类、方法final修饰符 带有final修饰符类是不可派生。...如果指定了一个类为final,则该类所有的方法都是finalJava编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。...for (String appendStr : appendStrs) { oriStr += appendStr; } return oriStr; } 将这段代码编译之后

45340

优化 Java多态代码

来源:ImportNew - 进林 优化Java多态代码 OracleJava是一个门快速语言,有时候它可以和C++一样快。...编写Java代码时,我们通常使用接口、继承或者包装类(wrapper class)来实现多态,使软件更加灵活。不幸是,多态会引入更多调用,让Java性能变得糟糕。...部分问题是,Java不建议使用完全内联代码,即使它是非常安全。...和往常一样,我benchmarking代码可以在网上获取到。 总结 一些Java版本可能不完全支持频繁内联函数调用,即使它可以并且应该支持。这会造成严重性能问题。...对于消耗大函数,可行解决方法是自己手动优化多态和实现内联函数调用。使用 instanceof 关键字,你可以为一些特定类编写代码并且(因此)保留多态灵活性。

98120

你能发现这段 Python 代码 bug 吗?

看似很简单,我可以使用 pandas DataFrame 编写几行代码就够了。 下面是我编写代码: 你发现 bug 了吗?反正我没看出来。...下面,我来详细解释一下这段代码,并深入剖析我究竟错在哪儿了。 代码详解 CSV文件是列表列表 我简单地认为,CSV 数据就是列表列表。因此,我可以将各个元素视为嵌入列表。...这个嵌套列表会生成以下字节码: 然后,我一些自己代码进行扩展,最终得到了以下代码: 错误 事实证明,Python 无法按照我想象将可迭代文本分解与推导式结合起来,你必须把 .split(",...下图展示了正确生成器表达式与我编写代码之间差异: 你看出问题所在了吗?代码问题在于,在分解文本之前,.split() 返回值是迭代器。...最后,我在 CPython 贡献者 Crowthebird 帮助下解决了这个问题,他演示了在不使用推导式情况下重写代码问题。 错误写法: 正确写法: 这个问题可以得到解决吗?

11130

2018年SEO优化想法与思路

离2018年也就剩下几天时间了,最近,一直在思考明年网站SEO该如何去做?都有哪些方面可以在继续提升?也看过别人写SEO心得,在这里,也总结出自己一些想法,希望对各位同学有所帮助。...2018年SEO优化想法与思路 时本文总计约900个字左右,需要花 3 分钟以上仔细阅读。 在前面也写过这样一篇文章:「知识」2018年搜索引擎优化该怎么去做?...今天写是从另一个角度来看,下面讲一些想法,仅供各位同学参考,有任何疑问的话,可以直接给我留言。...我们一般可以从这几方面出发,为您内容添加更多价值: 检查您现有的内容并找到最受欢迎主题 详细了解您受众群体并找出您要回答问题 不断扩大自己利基领域 2 优化用户浏览体验 用户体验对搜索引擎优化至关重要...4 优化视觉内容 视觉内容比以往更重要。它设法以最好方式补充文本(甚至取代它),它肯定会影响搜索引擎优化,也许有很多同学没有考虑到这一点吧。

740130

这段代码很Pythonic | 相见恨晚 itertools 库

很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic代码在执行上也更有效率。今天就先给大家介绍一下Python系统库itertools。...3中map,filter等操作返回不再是列表而是迭代器。...话虽这么说但大家平时用到迭代器大概只有range了,而通过iter函数把列表对象转化为迭代器对象又有点多此一举,这时候我们今天主角itertools就该上场了。...使用itertools itertools中函数大多是返回各种迭代器对象,其中很多函数作用我们平时要写很多代码才能达到,而在运行效率上反而更低,毕竟人家是系统库。...,最终达到随手拈来程度,装逼说就是由术入道。

53930

谷歌工程师写这段代码什么水平?

源 / 菜鸟教程 代码,正在改变世界。正是因为有了代码存在,才有了阿里巴巴、百度、京东、天猫等存在。 有网友分享了一篇名为 “看看牛B程序员是如何写好看代码文章。...整篇文章只有放了一段代码,而且这段代码据说是前谷歌工程师写,大家快来看看什么水平? ? 在这段代码下面,很多网友跟帖,下面精选一些网友回答: 网友一:不是说不要嵌套太多if么?...网友六:我觉得这个问题得看看这段代码解决是什么问题,然后我们再基于这个问题考虑,就会体会到这段代码厉害之处了,相同之处参见刷算法题时费尽千辛万苦解决了一个问题,看答案排行,发现第一名代码量能只有自己十分之一运算性能还强令人发指...看来大家对谷歌前程序员写代码,不是很满意,认为问题很多。其实不一定大牛写代码就很牛逼,有些时候,也会出现一些小问题。曾经因为一行代码错误,日本价值18亿卫星就失控了。...因为一行代码错误,“瞳”卫星成为科学界悲剧。 代码可以改变世界,也可以毁灭世界,程序员就是这样一群牛逼存在。上面谷歌程序员写那段代码,你觉得水平怎样,可以在下面留言!

54130

这段代码很Pythonic | 相见恨晚 itertools 库

很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic代码在执行上也更有效率。今天就先给大家介绍一下Python系统库itertools。...3中map,filter等操作返回不再是列表而是迭代器。...话虽这么说但大家平时用到迭代器大概只有range了,而通过iter函数把列表对象转化为迭代器对象又有点多此一举,这时候我们今天主角itertools就该上场了。...使用itertools itertools中函数大多是返回各种迭代器对象,其中很多函数作用我们平时要写很多代码才能达到,而在运行效率上反而更低,毕竟人家是系统库。...,最终达到随手拈来程度,装逼说就是由术入道。

56530

JAVA代码优化十九式!

JAVA中好代码可以带来性能提升,本节将讲解一些常用代码优化招式,从而让我们在编码中保持好编程习惯,让代码保持最优状态,当然也可以将这些招式引入到你们代码评审中,让整个团队都写出更好代码。...比如下面这段代码,在循环中拼接了字符串。...下面这段代码,就是 ArrayList toString 方法。它需要生成一个迭代器,然后把所有的元素内容拼接成一个字符串,非常浪费空间。...现实中有很多对反射优化方法,比如把反射执行过程(比如 Method)缓存起来,使用复用来加快反射速度。...如果你对性能有非常苛刻要求,则使用 invoke 包下 MethodHandle 对代码进行着重优化,但它编程不如反射方便,在平常编码中,反射依然是首选。

20310
领券