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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。