说到代码优化,每个人或多或少都掌握一到两种方法,但是这样的方法对提升代码运行效率效果不大,最重要是对代码的重视和了解,这样才能提升代码的运行效率.在进行代码优化的过程中,方法是非常重要的,多掌握几种方法,根据代码的不同情况选择适合的方法进行优化.下面电脑培训为大家介绍Java代码优化的几种方法.
①.、使用指定类、方法的final修饰符
String对象的使用是非常重要的,StringBuilder/StringBuffer并不是字符串连接.由于Java虚拟机需要时间来生成对象,所以将来垃圾收集和处理这些对象可能需要一些时间.所以呢,生成太多对象将对程序的性能产生很大影响.
调用方法时传递的参数以及在调用中创建的临时变量都保存在堆栈中,速度更快.其他变量(如静态变量和实例变量)在堆中创建并且速度较慢.此外,昆明北大青鸟发现在堆栈中创建的变量,当方法完成运行时,内容消失,不需要进行额外的垃圾收集.
在Java编程过程中,在执行数据库连接和I/O流操作时要小心.使用后,北大青鸟云南嘉荟校区官网建议应及时关闭以释放资源.因为这些大型物体的操作会导致系统的大量开销,稍微粗心会导致严重的后果.
方法一:
①web.xml中配置listener
listener
listener-class
cn.com.jxlife.shs.web.action.csinquiry.surrender.MyListener
/listener-class
/listener
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent sce) {
timer = new Timer(true);
//设置任务计划,启动和间隔时间
}
public void contextDestroyed(ServletContextEvent sce) {
timer.cancel();
import java.util.Date;
import java.util.TimerTask;
public class MyTask extends TimerTask {
public void run() {
System.out.println("call at " + (new Date()));
方法二:
spring 下实现定时工作的调度框架quartz
(放到webroot/WEB-INF/lib)下
package com.machome.quartz;
public class CustomJob1 {
public void onTimeWork() {
System.out.println("数据备份任务启动");
System.out.println("...");
System.out.println("数据备份任务完成");
!-- 被调度的bean --
bean id="job1" class="com.machome.quartz.CustomJob1"/bean
!-- 定义任务对象 --
bean id="jobtask1"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
property name="targetObject"
ref bean="job1" /
/property
!-- 被调度的bean中的被调度的方法 --
property name="targetMethod"
valueonTimeWork/value
/bean
!-- 定义触发对象 --
bean id="trigger1"
class="org.springframework.scheduling.quartz.CronTriggerBean"
!-- 任务对象 --
property name="jobDetail"
ref bean="jobtask1" /
!-- cron表达式 --
property name="cronExpression"
!-- 调度对象 --
!-- 如果将lazy-init='false'那么容器启动就会执行调度程序 --
bean id="scheduler" lazy-init="false"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
!-- 触发对象 --
property name="triggers"
list
ref bean="trigger1" /
/list
deploy项目
重启TOMCAT server
cron表达式参考:Quartz的cron表达式
尽量在合适的场合使用单例.使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率,但并不是所有地方都适用于单例.
今天就跟中公优就业一起来看看java代码优化细节.
①.、尽量指定类、方法的final修饰符
特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替.由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,所以呢,生成过多的对象将会给程序的性能带来很大的影响.
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢.另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收.
Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源.因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果.
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等.所以例如下面的操作:
for (int i = 0; i list.size(); i++){...}
建议替换为:
for (int i = 0, int length = list.size(); i length; i++){...}
这样,在list.size()很大的时候,就减少了很多的消耗
例如:
String str = "aaa";if (i == 1){list.add(str);}
if (i == 1){String str = "aaa";list.add(str);}
异常对性能不利.抛出异常首先要创建一个新的对象,Throwable接口的构造函数调用名为fillInStackTrace()的本地同步方法,fillInStackTrace()方法检查堆栈,收集调用跟踪信息.只要有异常被抛出,Java虚拟机就必须调整调用堆栈,因为在处理过程中创建了一个新的对象.异常只能用于错误处理,不应该用来控制程序流程.
除非不得已.如果毫无理由地这么写了,只要你的领导资深一点、有强迫症一点,八成就要骂你为什么写出这种垃圾代码来了
比如ArrayList、LinkedLlist、StringBuilder、StringBuffer、HashMap、HashSet等等,以StringBuilder为例:
①.0、当复制大量数据时,使用System.arraycopy()命令
这个多了去了,一般需要注意的就是:
异常处理try-catch方法
进程冲突,程序死锁.
重复代码的优化,一般要求不要有重复的代码应用.
无用代码,没有用到的当然该丢掉.
边界测试
黑盒-白盒测试等
一般代码是不可能没有bug的,bug也不是全部是坏的.
以上就是土嘎嘎小编为大家整理的短信代码优化java相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!