场景3:在使用零时,不慎使用了八进制常量的情况,导致计算结果不对
场景4:警惕while(condition); 以分号结尾,否则将会进入死循环之中
场景5:静态成员被初始化的陷阱
静态成员(变量)是属于类的而不是属于实例。
访问:
注意:在一个应用程序中,无论你创建了一个类的多少个实例,该类的静态字段都只能被初始化一次。
解决方案:①取消类中静态字段的关键字static;
②当创建类的实例时,都使用带有参数的构造器;
③在无参构造器内,给静态字段赋值。
技巧:在程序中,由于静态成员被类的所有实例所共享,因此可将静态成员变量作为全局变量所使用。
场景6:在进行数值运算时,警惕运算结果值的溢出(数据类型的取值范围)
场景7:计算时,警惕复合赋值符造成的数值结果错误(数据类型取值范围)
计算时,应该尽可能使用等于号(=)与其他一些运算符进行赋值和计算,而不要用复合赋值运算符。
注意:在进行编程计算时,一定要考虑到是否会发生数据溢出现象,对于可能发生溢出的情况,
必须要及时进行处理,否则会出现意想不到的错误结果,甚至造成不必要的损失。
场景8:警惕为字符串缓存构造器传递字符
如StringBuffer()
场景9:静态常量的初始化顺序有讲究
上面程序中,①和②的位置调换就可以了,因为在实例化常量的值时,先在无参构造器中进行计算了。
说明静态常量的初始化顺序对程序的执行结果是有影响的,因此在使用静态常量并需要对其进行初始化时,
一定要注意语句的放置顺序,否则程序会计算出意想不到的结果出来,从而导致预期结果错误。