博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【每日一读】Java编程中“为了性能”尽量要做到的一些地方
阅读量:4570 次
发布时间:2019-06-08

本文共 696 字,大约阅读时间需要 2 分钟。

 

 

尽量使用System.arraycopy ()代替通过来循环复制数组

 System.arraycopy() 要比通过循环来复制数组快的多

 

尽量避免使用split

除非是必须的,否则应该避免使用split,split由于支持正则表达式,所以效率比较低,如果是频繁的几十,几百万的调用将会耗费大量资源,如果确实需 要频繁的调用split,可以考虑使用apache的StringUtils.split(string,char),频繁split的可以缓存结果。

 

 慎用异常

 当创建一个异常时,需要收集一个栈跟踪(stack track),这个栈跟踪用于描述异常是在何处创建的。构建这些栈跟踪时需要为运行时栈做一份快照,正是这一部分开销很大。当需要创建一个 Exception 时,JVM 不得不说:先别动,我想就您现在的样子存一份快照,所以暂时停止入栈和出栈操作。栈跟踪不只包含运行时栈中的一两个元素,而是包含这个栈中的每一个元素。

如 果您创建一个 Exception ,就得付出代价。好在捕获异常开销不大,因此可以使用 try-catch 将核心内容包起来。从技术上讲,您甚至可以随意地抛出异常,而不用花费很大的代价。招致性能损失的并不是 throw 操作——尽管在没有预先创建异常的情况下就抛出异常是有点不寻常。真正要花代价的是创建异常。幸运的是,好的编程习惯已教会我们,不应该不管三七二十一就 抛出异常。异常是为异常的情况而设计的,使用时也应该牢记这一原则。

转载于:https://www.cnblogs.com/iusmile/archive/2012/09/15/2686923.html

你可能感兴趣的文章
WPF中的触发器简单总结
查看>>
基于Sql Server 2008的分布式数据库的实践(二)
查看>>
关于SNMP的MIB文件的语法简述
查看>>
UISegmentedControl-iOS
查看>>
获取服务器的MAC地址
查看>>
4.5节_Android硬件访问服务使用反射
查看>>
使用JS&jQuery改善用户体验
查看>>
接口测试工具postman安装
查看>>
给laravel项目集成支付宝
查看>>
删除mysql数据中的空格和换行符
查看>>
poj1556The Doors
查看>>
FLUSH TABLES WITH READ LOCK 和 LOCK TABLES 之种种
查看>>
centos6.x完全禁用IPv6的方法
查看>>
包解析
查看>>
ossim/zabbix/logstash
查看>>
ASP.NET MVC 4 (二)控制器
查看>>
游泳,写作,编程:人生就是不停的纠结
查看>>
Java 中 Comparable 和 Comparator 比较
查看>>
字符串的CRUD
查看>>
[HNOI2017/AHOI2017]影魔
查看>>