2018-01-10日常积累

1.今日目标 做些基础题目 跟踪其中原理

秉哥 问一个问题 IN 命中索引?用EXISTS可以替代IN?

可以,

大表在外面,小表在里面用in

小表在外面,大表在里面用exists

死锁的原因:可以看出进程A和B不是因为竞争同一资源,而是在等待对方的资源导致死锁。

MDC.put(key, value);  //会在日志的前面加一个value ,使用完后需要   MDC.clear(); 有效的观察区分日志     

mshao:还可以使用  动态代理自己实现 定义自己的方式

在Proxy.newProxyInstance方法中,共有三个参数:http://rejoy.iteye.com/blog/1627405

动态代理个人理解就是自动定义一个内  实现InvocationHandler  重写代理方法:

/**

     * 获取目标对象的代理对象

     * @return 代理对象

     */  

public Object getProxy() {  

return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),   

target.getClass().getInterfaces(),this);  

    }  

最主要的就是执行目标方法,做一些自己的处理和实现(和面前切面有些类似可以说是一种特殊情况):

invoke(Object proxy, Method method, Object[] args)


反射法:优点: 

(1)能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。 

(2)与Java动态编译相结合,可以实现无比强大的功能 

缺点: 

(1)使用反射的性能较低 

(2)使用反射相对来说不安全 

(3)破坏了类的封装性,可以通过反射获取这个类的私有方法和属性 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。