做有温度的教育!
全国统一咨询热线:400-803-9399
北京
校区
新闻资讯> 行业新闻> JAVA干货分享(下)|基础知识详细总结!

JAVA干货分享(下)|基础知识详细总结!

时间:2021-09-15
浏览:2176
发布:小骨头
赞:100

JAVA干货分享(下)|基础知识详细总结!本篇幅内容接上周干货分享内容,如果有不懂的同学,可查看上周文章后再来查阅哦!好啦,咳咳~敲黑板开始上课。拿好你们的小本本吧!


6.使用+连接一个语句中的String


Java 实现你的第一个应用程序时,可能有人告诉不应该使用 + 来连接字符串。

如果在应用程序逻辑中连接字符串,则这是正确的。字符串是不可以改变的,每个字符串的连接结果都存储在一个新的String对象中。这需要额外的内存并减慢您的应用程序的速度,尤其是当您在循环中连接多个字符串时。


在这样的情况下,你应该遵循技巧使用StringBuilder以编程方式连接String


但是,你如果只是将字符串分成多行来改善代码的可读性,那情况就大不相同


Query q = em.createQuery(SELECT a.id, a.firstName, a.lastName + FROM Author a + WHERE a.id = :id);


在这些情况下,你应该使用简单的 + 来连接你的字符串。 java 编译器对此进行优化并在编译时执行连接。 因此,在运行时,你的代码将只使用一个没有连接的字符串。JAVA干货分享(下)|基础知识详细总结!


7.尽可能使用基元

另一种避免任何开销和提高应用程序性能的简单快捷的方法是使用基本类型而不是它们的包装类。因此,最好使用int来替代Integer,使用double来替代Double。这允许JVM将值存储在堆栈而不是堆中以减少内存消耗,并作出更有效的处理。


8. 试着避免BigInteger和BigDecimal

BigInteger 和 BigDecimal 比简单的 long 或 double 需要更多的内存,并且会明显减慢所有计算速度。


所以如果你需要额外的精度,或者如果数字会超过long的范围,你最好三思而后行。 这可能是你需要更改以解决性能问题的唯一方法,尤其是在实现数学算法时。


9.最先检查当前日志级别

创建调试消息之前,你应该首先检查当前日志级别。 否则,您可能会创建一个稍后将被忽略的日志消息字符串。


列举两个反面例子。


// don’t do thislog.debug(“User [” + userName + “] called method X with [” + i + “]”);// or thislog.debug(String.format(“User [%s] called method X with [%d]”, userName, i));


在这两种情况下,您将执行所有必要的步骤来创建日志消息,而无需知道日志框架是否会使用日志消息。 因此,最好在创建调试消息之前检查当前日志级别。


// do thisif (log.isDebugEnabled()) {    log.debug(“User [” + userName + “] called method X with [” + i + “]”);}


10.使用Apache Commons StringUtils.Replace而不是String.replace


一般来说,字符串Replace 方法正常工作并且效率很高,尤其是在使用 Java 9 时。 但是,如果你的应用程序需要大量替换操作并且没有更新到最新的java版本,那么仍然需要寻找更快更有效的替代方案。


另一种答案是 Apache commons Lang 的 stringutils.replace 方法。 它只需要很小的改动。 即在应用程序pom.xml中添加Apache commons Lang项目的Maven依赖,将string.replace方法的所有调用替换为stringutils.replace方法。


// replace thistest.replace(“test”, “simple test”);// with thisStringUtils.replace(test, “test”, “simple test”);


11.缓存昂贵的资源,例如数据库连接

缓存是一种流行的解决方案,可避免重复执行昂贵或常用的代码片段。 总体思路很简单:重用这些资源比重复创建新资源成本更低。


一个典型的例子是缓存池中的数据库连接。 创建新连接需要时间,如果你要重用现有连接,则可以避免这种情况。


你还可以在 Java 语言本身中找到其他示例。 例如,整数类的 valueof 方法缓存了 - 128 到 127 之间的值。你或许会说创建一个新的整数并不太昂贵,但是因为它经常被使用,所以缓存最常用的值也可以提供性能优势。


但是,当你考虑到缓存时,请记住缓存实现也会产生开销。 您需要花费额外的内存来存储可重用的资源,因此可能需要管理缓存以使资源可访问并删除过时的资源。


JAVA干货分享(下)|基础知识详细总结!因此,在开始缓存任何资源之前,请确保值得实施缓存,也就是说,您必须充分利用它们。正如你所看到的,有时不需要太多的工作就可以提高应用程序的性能。本文中的大部分建议只需要你稍作努力就可以将它们应用于你的代码。触类旁通才是聪明人的做法,您有什么更好的小技巧或干货,也欢迎大家与我们留言探讨哦!


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

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

Copyright ©2016-2019. All Rights Reserved.

    京ICP备17018991号-4     网站地图