原文:定義Logger為什么要用static和final?為什么不用getClass()?

有一次線上發現,redis連接很慢,最后同事說,有個原因就是getClass private final Logger logger LoggerFactory.getLogger getClass 因為這不是一個靜態常量,在序列化這個變量的時候,有的序列化方法並不好用,里邊有一個class.forName 方法,是個阻塞性的,導致了高並發多線程的時候,序列化很慢。 進而redis很慢。 好像和r ...

2020-08-03 18:26 0 565 推薦指數:

查看詳情

【Java】定義Logger為什么要用staticfinal

private static final Logger logger= LoggerFactory.getLogger(ShiroConfig.class); (1)出於資源利用的考慮,Logger的構造方法參數是Class,決定了Logger是根據類的結構來進行區分日志,所以一個類只要一個 ...

Wed Oct 23 23:46:00 CST 2019 0 1202
staticfinalstatic final

眾所周知,static 是靜態修飾關鍵字:可以修飾變量,程序塊,方法,類。 1.修飾變量。 得知:如果static修飾的是變量,則JVM會將將其分配在內存堆上,該變量就與對象無關,所有對該變量的引用都指向同一個地址。 因此我們使用該變量的時候,直接指明類的靜態變量,當然修飾符 ...

Tue Apr 09 07:09:00 CST 2019 0 2752
什么是static?什么是final

static修飾的變量、常量、和方法被稱為是靜態變量、常量和 方法。 靜態數據和靜態方法的作用通常是為了提供共享數據或方法,如數學計算公式等,以static聲明並且實現,這樣當需要使用時,直接使用類名調用這些靜態成員即可。例如,兩個類在同一個內存區域共享一個數據,在球類使用PI這個常量 ...

Sat Sep 10 21:26:00 CST 2016 0 2581
staticfinalstatic final的區別

final:     final可以修飾屬性,方法,類,局部變量(方法中的變量)     final修飾的屬性的初始化可以在編譯期,也可以在運行期,初始化后不能被改變。     final修飾的屬性跟具體對象有關 ...

Wed Apr 17 18:24:00 CST 2019 0 4748
static finalfinal的區別

學習java的時候常常會被修飾符搞糊塗,這里總結下static finalfinal的區別。 static是靜態修飾關鍵字,可以修飾變量和程序塊以及類方法:   當定義一個static的變量的時候jvm會將將其分配在內存堆上,所有程序對它的引用都會指向這一個地址而不會重新分配內存 ...

Wed Mar 27 21:18:00 CST 2019 0 1539
接口中定義變量必須為public static final的原因

在interface里面的變量默認都是public static final 的,原因如下: 1. 接口是一種高度抽象的"模版",,而接口中的屬性也就是’模版’的成員,就應當是所有實現"模版"的實現類的共有特性,所以它是public static的 ,是所有實現類共有的.   假如可以是 ...

Fri Jun 03 22:35:00 CST 2016 0 5186
java中的 private Logger log=Logger.getLogger(this.getClass());

this.getClass()得到什么? this 表示當前對象的引用; getClass() 是 java.lang.Object 中的方法,它返回一個對象的運行時類; this.getClass() 就是返回當前對象的運行時類。 Logger ...

Fri Jul 22 02:02:00 CST 2016 0 7022
為什么String要用final修飾

String被final修飾 從 String 類的源碼我們可以看出 String 是被 final 修飾的不可繼承類,源碼如下: 那這樣設計有什么好處呢? Java 語言之父 James Gosling 的回答是,他會更傾向於使用 final,因為它能夠緩存結果,當你在傳參時不需要考慮 ...

Thu Aug 13 19:16:00 CST 2020 0 2488
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM