1.Java没有指针?No,Java只是没有针对指针的算法。引用其实已经包含了指针。
2.RTTI——Runtime type identification,作用就是告诉你整个object是属于什么类型的。最常用的是getClass()方法。
3.只在for循环中用到的变量,就在for循环中声明和分配,不用担心会循环分配内存。
比如:
for(int i =0;i<10;i++){
String s = a[i];
}
s并不会循环new,编译器会处理,让它只在第一次分配内存。
前面编程,我还特意把s移到外面去呢……汗啊
4.switch语句中,如果在default语句中加一个break是完全没有用的。因为在那个地方的break根本就不会被执行。
5.continue
for(int idx=0;idx<1000,idx++){
if(idx==555){continue;}
}
在这个例子中,循环仅仅跳过了555,如果程序中遇到类似要跳过某个点的情况,可以这么利用continue,会减少很多代码。
6.chaining constructor
活用super()、this()等,来缩减构造函数的复杂度。
7.private for attributes
public for public methods
protected for helper methods
8.In Java, instances of the same class are friends and give unrestricted access to all of their properties and methods.
比如
if((obj.value==5)&&(this.value==5)){
obj.value=25;
}
这里面跳过了setter方法,直接给属性赋值,这是很危险的做法。解决的方法是无论什么方法给对象中的属性赋值都要通过setter方法。
9.对于问题代码要尽量用throw exception告知用户,因为有时候不知道代码的执行环境,如EJB等等,很多环境都是没有Console的,若是简单的System.out.println 可能解决不了问题。