一般来说 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
查看静态代码分析器的报告来进行类的添加和修改