做有温度的教育!
全国统一咨询热线:400-803-9399
北京
校区
新闻资讯> 行业新闻> JAVA干货分享(上)|解决知识不进脑子的终极指南!

JAVA干货分享(上)|解决知识不进脑子的终极指南!

时间:2021-09-15
浏览:1220
发布:小骨头
赞:109

JAVA干货分享(上)|解决知识不进脑子的终极指南!小编一直想给大家出一篇基础知识分享,但什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考。大多数Java开发人员理所当然地认为性能优化是复杂的,需要大量的经验和知识。好吧,也不能说这是错误的。


优化应用程序以获得最佳性能并非易事。但是,这并不意味着如果你不具备这些知识,就不能做任何事情。以下是一些易于遵循的建议和最佳实践,可以帮助您创建性能良好的应用程序。


1. 在必要时进行优化


您应该遵循常见的最佳实践,并尝试高效地实现用例。然而,这并不意味着您应该在证明有必要之前替换任何标准库或构建复杂的优化。


在大多数情况下,过早优化不仅需要花费大量时间,而且使代码难以读取和维护。更糟糕的是,这些优化通常不会带来任何好处,因为您需要花费大量时间优化应用程序的非关键部分。


那么,你如何证明你需要优化一些东西呢?


首先,您需要定义应用程序代码的速度,例如,指定所有API调用的最大响应时间,或指定在特定时间范围内导入的记录数。完成此操作后,您可以测量应用程序的哪些部分太慢,需要改进。


2 .利用分析器查找真正的瓶颈


在确定了应用程序的某些部分需要改进后,从哪里开始呢?


你可以用两种方法来解决问题:


1、查看你的代码,并从看起来可疑或者你觉得可能会产生问题的部分开始。


2、使用分析器并获取有关代码每个部分的行为和性能的详细信息。


很明显,基于分析器的方法可以让你更好地理解代码的性能影响,并使你能够专注于最关键的部分,高效便捷。


3.为整个应用程序创建性能测试套件


您应该始终定义一个性能测试套件来测试整个应用程序,并在性能改进前后运行它。


这些额外的测试运行将帮助您识别更改的功能和性能副作用,并确保不会导致弊大于利的更新。如果您使用的组件由应用程序的多个不同部分(如数据库或缓存)使用,这一点尤其重要。


4.首先处理最大的瓶颈


创建测试套件并使用探查器分析应用程序后,您可以列出一系列需要解决以提高性能的问题。这很好,但是它仍然不能回答你应该从哪里开始的问题。您可以专注于速效解决方案,也可以从最重要的问题开始。


速效解决方案一开始可能很有吸引力,因为您可以快速显示第一个结果。但有时您可能需要说服其他团队成员或管理层,性能分析是值得的,因为您暂时看不到效果。


总体来说,建议首先处理最重要的性能问题。这将为你提供最大的性能改进,而且可能再也不需要去解决其中一些为了满足性能需求的问题。


常见的性能调整技巧到此结束,下面让我们仔细看看,一些特定于Java的技巧。JAVA干货分享(上)|解决知识不进脑子的终极指南!


5.使用StringBuilder以编程方式连接String


有很多不同的选项来连接Java中的String。例如,你可以使用简单的+或+ =,以及StringBuffer或StringBuilder。可是,你应该选择哪种方法呢?


答案在于连接String的代码。如果你是以编程方式添加新内容到String中,例如在for循环中,那么你应该使用StringBuilder。它很容易使用,并提供比StringBuffer更好的性能。但请记住,与StringBuffer相比,StringBuilder不是线程安全的,可能不适合所有用例。


你只需要实例化一个新的StringBuilder并调用append方法来向String中添加一个新的部分。在你添加了所有的部分之后,你就可以调用toString()方法来检索连接的String。


下面的代码片段显示了一个简单的例子。在每次迭代期间,这个循环将i转换为一个String,并将它与一个空格一起添加到StringBuilder sb中。所以,最后,这段代码将在日志文件中写入“This is a test0 1 2 3 4 5 6 7 8 9”。


StringBuilder sb = new StringBuilder(“This is a test”);for (int i=0; i<10; i++) {    sb.append(i);    sb.append(” “);}log.info(sb.toString());


正如在代码片段中看到的那样,你可以将String的第一个元素提供给构造方法。这将创建一个新的StringBuilder,新的StringBuilder包含提供的String和16个额外字符的容量。当你向StringBuilder添加更多字符时,JVM将动态增加StringBuilder的大小。


如果你已经知道你的String将包含多少个字符,则可以将该数字提供给不同的构造方法以实例化具有定义容量的StringBuilder。这进一步提高了效率,因为它不需要动态扩展其容量。


JAVA干货分享(上)|解决知识不进脑子的终极指南!最后总结一下:初学者先广再精,关注代码背后的实现,关注内功修炼,了解实现原理和思想,形成自己完整的技术体系,知识成片之后就容易触类旁通,进步的速度就会越来越快。初学者应该大部分时间花在练基本功上,切勿本末倒置。其他关于java的技巧我们下期分享,敬请期待!


大数据中hadoop是什么? ps使用 大数据 冲刺Java架构师年薪50W

友情链接: 教育培训 甲骨文华育兴业太原校区 甲骨文华育兴业济南校区 甲骨文华育兴业哈尔滨校区 甲骨文华育兴业长春校区 魔据教育

Copyright ©2016-2019. All Rights Reserved.

    京ICP备17018991号-4     网站地图