学习JAVA程序性能优化第1天

性能调优概括

  1. 设计调优处于所有调优手段的上层,它往往需要再软件开发之前进行。设计优化是对系统在宏观层面上“质”的优化。
  2. 代码调优是从微观上对性能进行调整。
  3. JVM调优,对jVM的运行原理和基本内存结构有一定了解。(堆内存,GC)
  4. 数据库调优

设计优化

善用设计模式

单例模式

  1. 单例模式的核心在用通过一个接口返回唯一的对象实例。
/**
 * @description:使用内部类的方式实现单利,既可以做到延迟加载,也不必使用同步关键字,是一种比较完善的实现
 * @author: Mr.zms
 **/
public class StaticSingleton {
    private  StaticSingleton(){
        System.out.println(" StaticSingleton is create ");
    }
    private static  class  SingletonHolder{
        private static  StaticSingleton instance = new StaticSingleton();
    }
    public  static  StaticSingleton getInstance(){
        return SingletonHolder.instance;
    }
}

代理模式

  1. 使用代理模式实现延迟加载,从而提升系统的性能和反应速度。
  2. 延迟和加载的核心思想是:如果当前并没有使用这个组件,则不需要真正地初始化它,使用一个代理对象替代它的原有位置,只有在真正需要使用的时候,才对它进行加载。
  3. 动态代理大幅度地减少代码数量,并提高系统灵活性。
  4. 动态代理 JDK,CGLIB动态代理,javasssit代理(CGLIB为例)
    public static IDBQuery createCglibProxy(){
        Enhancer enhancer = new Enhancer();
        //指定切入点,定义代理类逻辑
        enhancer.setCallback( new CglibDbQueryInterceptor());
        //指定实现接口
        Class [] classes = {IDBQuery.class};
        enhancer.setInterfaces(classes);
        //生成代理类的实例
        return (IDBQuery) enhancer.create();
}
  • 动态代理是AOP实现的一种重要方式,通过InvocationHandler接口进行方法的拦截并利用反射机制执行一定的代码正是AOP中织入代码的重要手段,理解动态代理的原理对于我们理解更好的理解hibernate和spring等框架具有重要意义。_

以上内容都是整理JAVA程序性能(葛一鸣)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值