我试图了解什么是最佳实践,以及为什么要在不同情况下串联字符串文字和变量。例如,如果我有这样的代码
StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA")
.append(B_String).append("CCCCCCCCCCC").append(D_String)
.append("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE")
.append("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
这是这样做的方式吗?从这篇文章中,我注意到+
Strings上的运算符创建了一个StringBuilder的新实例,连接了操作数,并返回了String转换,这似乎比仅仅调用还要多.append()
;所以如果这是真的,那是不可能的。但是那又如何String.concat()
呢?是否适合.append()
用于每个串联?或仅用于变量,文字可以追加.concat()
吗?
StringBuilder sb = new StringBuilder("AAAAAAAAAAAAA")
.append(B_String.concat("CCCCCCCCCCC")).append(D_String
.concat("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE")
.concat("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"));
应对这些情况的最佳做法和性能的一般规则是什么?我的假设是正确的,+
真的不应该使用吗?
String s = s1 + s2
在幕后将其翻译为:
String s = new StringBuilder(s1).append(s2).toString();
想象一下,如果您在s1 + s2
这里,它会增加多少额外的工作:
stringBuilder.append(s1 + s2)
代替:
stringBuilder.append(s1).append(s2)
+
值得注意的是:
String s = s1 + s2 + s3 + ... +sN
转换为:
String s = new StringBuilder(s1).append(s2).append(s3)...apend(sN).toString();
concat()
String s = s1.concat(s2);
String
创建char[]
同时适合s1
和的数组s2
。将副本s1
和s2
内容复制到此新数组。实际上需要的工作量少于+
操作员。
StringBuilder.append()
维护一个内部char[]
数组,该数组在需要时会增长。char[]
如果内部空间足够大,则不会创建任何额外的空间。
stringBuilder.append(s1.concat(s2))
也表现不佳,因为s1.concat(s2)
创建一个额外的char[]
数组和副本s1
,并s2
给它只是新的数组内容复制到内部StringBuilder``char[]
。
话虽如此,您应该一直使用append()
并附加原始字符串(您的第一个代码段是正确的)。
Overview This article discusses performance and reliability best practices for Express applications deployed to production. This topic clearly falls into the “devops” world, spanning both traditional
性能与体验是前端的核心竞争力,是最直观反应页面是否好用、易用的标准。用户花在页面上的时间不应该是在等待页面加载和响应,而是使用和顺畅浏览的时间,因此如何提升页面性能和体验,让页面更快的可交互、浏览滚动更顺畅,是需要你持续的研究、优化、推进的。在 Rax 不断应用发展以及成熟的过程中,沉淀总结了一系列的性能体验的措施和最佳实践,通过这些,可以帮助你大幅提高页面的各项性能。 加载性能 统计口径 加载性
问题内容: 我正在使用Hibernate 3编写Web应用程序。 所以,过了一会儿,我注意到有些东西很慢。因此,我测试了Hibernate Profiler,发现Hibernate将无理地进行许多数据库调用以简化操作。原因当然是我加载了一个对象(该对象有几个“父母”),而这些“父母”还有其他“父母”。因此,即使我只需要基本对象,从根本上来说,hibernate都会加载它们。好的,所以我研究了延迟加
我试图理解什么是最佳实践,以及为什么在不同情况下连接字符串文本和变量。例如,如果我有这样的代码 这样做吗?在这篇文章中,我注意到字符串上的操作符创建了一个新的StringBuilder实例,连接操作数,并返回字符串转换,这似乎比调用;如果这是真的,那就不可能了。但是字符串呢。concat()?使用用于每个连接?或者只针对变量,可以使用? 在这些情况下,最佳实践和绩效的一般规则是什么?我对的假设正确
我有一个如下的用例: 一个 微服务负责与其他几个固定 API(例如 ArgoCD REST API、STANDARD CORPORATE DRIVEN API)进行通信,以使整个系统处于所需状态。 整个请求需要事务化,这意味着要么所有API请求都需要成功,要么在出现任何错误时回滚。 如果API返回错误,情况对我来说很清楚。“只需恢复之前所做的一切”,但如果我的Quarkus应用程序崩溃会发生什么?
这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们