一般來說 caller 是指方法的呼叫者,域應該是 field 的翻譯,但翻譯成「字段」比較容易解理。如
public class A { ... } public class B { public static A a; // 本条推荐改为如下,并在 static 块中初始化 // public static final A a; } public class C { // 这个就是 caller public void doSomething() { // 不管有意无意,这里是把值给改了 B.a = new A(); // 但如果在 B 里把 a 定义成 final 的,上句就会编译错误 } }
靜態分析器是什麼
這個是指使用靜態程式碼檢查工具去檢查原始碼,你不需要執行單元測試程式碼,就可以發現程式碼中潛在的問題,透過分析或檢查原始程式的語法、結構、流程、介面等來檢查程式的正確性,找出程式碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的巢狀語句,錯誤的遞歸,非法計算,可能出現的空指針引用等等。
Java中常見的工具有Findbugs,CheckStyle,PMD等,這些工具通常都有Eclipse, Intellij Idea插件,開發人員在開發的時候可以很方便的運行,從而儘早發現問題,在程式碼Checkin之前就可以解決問題。這些工具也可以和Jenkins等自動化建置工具集成,在發布的時候給予維運人員參考。
什麼是 native 方法?
native 方法大概是指用 C/C++ 或其它直接編譯成指令的那些方法,通常是生成 .dll(windows) 或 .so(linux),再由 Java 透過 JNI 呼叫的
caller 是什麼?
一般來說 caller 是指方法的呼叫者,域應該是 field 的翻譯,但翻譯成「字段」比較容易解理。如
而有了 bean 規格之後,這種欄位通常會定義為
private,再加 setter 或 getter。靜態分析器是什麼
靜態分析器是指比編譯器更嚴格的一個類似編譯器的東西,從原始碼直接分析出來有可能發生的邏輯錯誤。關於靜態分析工具,可以找度娘問。我用過 FindBugs,還是有些作用,程式設計習慣不是很好的人,寫出來的程式碼會有很多警告。
解釋
整潔性
確定應用了程式碼格式化
使用異常而不是回傳碼
不要回傳Null
安全
避免一些不尋常行為的過度日誌
在任何情況下都會釋放資源(流,連線等等)
把從不可信物件得到的輸出當作輸入來檢驗
為native方法定義包裝類別(而不是定義native方法為pulibc)
使public static域為final(避免呼叫方(caller)修改它的值)
小心地快取潛在的特權操作結果
只有在需要的時候才使用JNI
清單項目
更多使用標準異常
避免使用finalizer
使用枚舉來代替int常數
使用executors而不是task和thread
查看靜態程式碼分析器的報告來進行類別的新增和修改