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)破壞了類的封裝性,可以通過反射獲取這個類的私有方法和屬性?