Java 高质量编程建议(笔记4)

来源:互联网 发布:cisco端口类型 编辑:程序博客网 时间:2024/05/16 17:50
Ad-26:提防包装类型的null值
    1)包装类型(Wrapper Types)是为了解决基本类型的实例化问题,以便让一个基本类型也能参与到面向对象的编程世界中(例如:Java的容器存放的都是对象类型);
    2)包装类型有:Character(char),Byte(byte),Short(short),Integer(int),Long(long),Float(float),Double(double),Boolean(boolean)分别对应其基本类型;
    3)基本类型与对应的包装类型之间的转换过程分别称为装箱和拆箱,在Java中,基本类型和包装类型之间通常是自动完成装箱和拆箱;
    4)null对象不能自动拆箱基本类型,因此在包装类型参与运算时一定要判断类型是否为空;
   
Ad-27:谨慎使用包装类型的大小比较
    1)基本类型可以使用<,>进行大小比较,其对应的包装类型可以通过intValue()等类似方法转为基本类型, 因此包装类型也可以进行大小比较;
    2)主要包装类型在判断"<",">","="时,会出现问题,原因是"="是判断对象的两个变量是否是同一个对象;
    3)在使用包装类型进行大小判断是,建议使用compareTo避免使用自动类型转换;
   
Ad-28:优先使用整型池
    1)    注意Integer类型使用valueOf包装基本类型的时候,Integer类型默认存在一个整型池,即一个整型数组,大小是256,默认创建值为-128~127的对象,当valueOf的值范围在[-128,127]时,则从整型池中直接返回对象,否则创建新对象。
    2)使用整型池可以提高系统性能,同时也节省了系统空间;
    3)由于整型池的存在,因此在比较其值的时候,最好是equals/compareTo,而不是"==","<",">";
   
Ad-29:优先选择基本类型
    1)基本类型可以自动提升类型,即不同类型之间,可以按照表达式的类型进行转换;
    2)包装类型的自动拆箱和装箱过程,一般程序员不了解其内部的实现,可能存在一些特殊技巧或者隐晦的约束,而且性能相对会降低;
   
Ad-30:不要随便设置随机种子
    1)Java中使用Math.random和Random生成随机数是,不要随便设置随机种子;
    2)随机种子的设置,确定了生成的随机数的序列,即如果随机种子相同,生成的随机数序列必然相同;
    3)默认的随机数种子是System.nanoTime(),这样基本保障程序运行时,产生的随机数不相同;
原创粉丝点击