创建 Random 类对象时如果没有传递任何参数,则默认将当前时间作为随机数生成器的种子。如果希望总是生成相同的随机数序列,则可以在创建对象时手动指定数字:Random rand = new Random(47);
。也可以通过 调用 nextInt()、nextFloat()、nextLong()、nextDouble() 方法产生不同类型的随机数。同样,也可以给这些方法传递具体数值设置产生随机数的上限:rand.nextInt(100);
对于 nextInt() 方法而言,下限是0。
== 以及!= 比较的是对象的引用,如果要比较对象内容,则需要调用所有对象都具有的 equals() 方法。
java 中没有直接用常量表示二进制数的方法,如果想要将数值以二进制的格式进行展示,可以调用 Integer 与 Long 类型的静态方法 toBinaryString() 实现。需要注意的是,如果将较小的类型传递给 Integer 的 toBinaryString() 方法,则会被自动转换为 int 类型。
移位操作符可与等号组合使用(<<=,>>=,>>>=)。此时操作符左边的值将移动由操作符右边的值指定的位数(但 >>>= 的操作符可能会有如下问题:对 byte 以及 short 进行该运算,可能会出现错误的结果。因为它们会先被转换为 int 类型,再进行右移操作,然后被截断。此时可能得到 -1。)。
如果表达式以字符串开头,则其后所有操作数都必须是字符串类型(编译器会自动将“”内的内容自动转换为 String 类型)。“+”与“+=”用于进行字符串连接,有一个使用技巧是,通过与空字符串“ ”搭配,能够进行 String 类型转换而不必调用 toString() 方法(如print(“ ” + x);
将 x 直接转换为字符串类型输出。)。
java 允许将任何基本数据类型转换为其它基本数据类型,但是 boolean 与 class 除外。boolean 以及 class 类型不允许进行任何类型的转换处理( 对象可在所属类型的类族之间进行类型转换。)。
float 与 double 转换为 int 类型时,会对数字执行截尾操作,即直接舍弃小数点后的数字。如果要得到舍入的结果,就必须使用 Math.round() 方法。基本数据类型执行运算时,char、byte、short (此三者进行复合赋值时不需要类型转换) 会自动转换为 int。并且,最终结果的数据类型通常由表达式中最大的类型决定(对于 boolean 类型,不能进行任何运算操作,只能赋予 true 或 false)。