J2EE性能优化(一)
来源:互联网 发布:lol职业选手训练软件 编辑:程序博客网 时间:2024/04/30 07:06
用java进行开发,尤其是一些大型企业项目,性能调优的工作很重要。在设计应用程序的时候,应该始终把性能放在考虑范围内。一些应用程序设计中的不当做法,在小数据量,执行次数少的情况下,可能对性能造成的影响并不明显。但是在大数据量、大量重复执行的生产环境中,对性能却会造成明显的负面影响。
(一)String操作
用StringBuffer.append来代替String+=累加;如下边的这段代码:
<span style="font-family:SimSun;font-size:18px;">String result = "";for (int i = 0; i < 20; i++) {result += getNextString();}</span>
<span style="font-family:SimSun;font-size:18px;">String result = "";for (int i=0; i < 20; i++) {result = new StringBuffer().append(result).append(getNextString()).toString();}</span>
<span style="font-family:SimSun;font-size:18px;"> 从上面的代码可以看到,每次循环都会创建两个对象,一个是 StringBuffer,一个是 toString 产生的 String 对象。如果循环次数或数据量很大的时候,这种做法对性能的影响很明显。应该改成下面的做法:</span>
<span style="font-family:SimSun;font-size:18px;"></span>
<span style="font-family:SimSun;font-size:18px;">String result = "";StringBuffer buffer = new StringBuffer();for (int i = 0; i < 20; i++) {buffer.append(getNextString());}result = buffer.toString();</span>
(二)日期操作
我们应该使用如下代码来实现日期输出格式的国际化:
<span style="font-family:SimSun;font-size:18px;">Date dateTest=new Date();//用来显示某一个时间的中文格式SimpleDateFormat df = new SimpleDateFormat("yyyy 年 MM 月 dd 日");String timevalue = df.format(dateTest);// 用来显示某一个时间的其它国家格式DateFormat fmt=DateFormat.getDateInstance(DateFormat.MEDIUM,new Locale("en","US"));String newprintformat1 = fmt.format(dateTest);</span>
<span style="font-family:SimSun;font-size:18px;">// 不要使用如下代码.SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");String timevalue = df.format(data);String year_num = timevalue.substring(0, 4);String month_num = timevalue.substring(5, 7);String day_num = timevalue.substring(8, 10);String newprintformat = year_num + " 年"+ month_num + " 月"+ day_num + " 日";</span>
(三)异常
慎用异常,异常抛出对性能不利。抛出异常首先要创建一个新的对象。Throwable 接口的构造函数调用名为 fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息。只要有异常被抛出,VM 就必须调整调用堆栈,因为在处理过程中创建了一个新的对象。而且,千万不要在finally中抛出异常,否则会湮没之前的异常, 给代码的debug造成很大困难。
0 0
- J2EE性能优化(一)
- J2EE性能优化(2)网页性能优化
- J2EE性能优化(二)数据库
- J2EE性能优化(三)Servlet
- J2EE性能优化(1)问题定位
- J2EE性能优化(3)Nginx
- J2EE性能优化(5)缓存Ehcache
- J2EE性能优化精粹
- 基于J2EE架构的web应用程序的性能优化(一)
- Java性能优化技巧集锦(J2EE篇)
- J2EE性能优化(4)Tomcat和JVM调优
- WM性能优化(一)
- ABAP 性能优化(一)
- SQL性能优化(一)
- jboss性能优化(一)
- Sql性能优化(一)
- MySQL性能优化(一)
- Android 性能优化(一)
- Java Basics Part 1/20 - Overview
- RandomAccessFile的简单使用
- 策略模式(StrategyPattern)
- 复杂的容器简单化以及容器的遍历总结(重点都在)
- android学习之布局动画的使用
- J2EE性能优化(一)
- SecureCRT自动记录日志
- java中重载与重写的区别
- Scala入门之函数初阶
- (Java)LeetCode-30. Substring with Concatenation of All Words
- Karma和Jasmine自动化单元测试
- 安卓应用中判断手机是否连接网络或者是否连接wife或手机3/4G
- autolayout怎样在一个视图中平均分布若干个子视图–autolayout 基本用法
- php命名规范