Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。
类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
(1)public Random()
Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
貌似不能自动生成一连串的不同的随机数,看来还要手工写代码来保证随机数的不同。
P48
Integer类的几个方法还是挺好用的:
public static String toBinaryString(int i)
如果参数为负,该无符号整数值为参数加上 232;否则等于该参数。将该值转换为二进制(基数 2)形式的无前导 0
的 ASCII 数字字符串。如果无符号数的大小为零,则用一个零字符 '0'
(’"u0030’
) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符 '0'
('"u0030'
) 和 '1'
('"u0031'
) 被用作二进制数字。
i
- 要转换为字符串的整数。
public static String toHexString(int i)
如果参数为负,那么无符号整数值为参数加上 232;否则等于该参数。将该值转换为十六进制(基数 16)的无前导 0
的 ASCII 数字字符串。如果无符号数的大小值为零,则用一个零字符 '0'
(’"u0030’
) 表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。用以下字符作为十六进制数字:
这些字符的范围是从0123456789abcdef
'"u0030'
到
'"u0039'
和从
'"u0061'
到
'"u0066'
。如果希望得到大写字母,可以在结果上调用
String.toUpperCase()
方法:
Integer.toHexString(n).toUpperCase()
i
- 要转换成字符串的整数。
JDK1.0.2
public static Integer decode(String nm) throws NumberFormatException
String
解码为
Integer
。接受通过以下语法给出的十进制、十六进制和八进制数字:
《 Java Language Specification》的第 §3.10.1 节中有 DecimalNumeral、 HexDigits 和 OctalDigits 的定义。
- DecodableString:
- Signopt DecimalNumeral
- Signopt
0x
HexDigits- Signopt
0X
HexDigits- Signopt
#
HexDigits- Signopt
0
OctalDigits- Sign:
-
跟在(可选)负号和/或基数说明符(“0x
”、“0X
”、“#
”或前导零)后面的字符序列是使用指示的基数(10、16 或 8)通过 Integer.parseInt
方法分析的。字符序列必须表示一个正值,否则会抛出 NumberFormatException
。如果指定的 String
的第一个字符是减号,则对结果求反。String
中不允许出现空白字符。
nm
- 要解码的
String
。
nm
所表示的
int
值的
Integer
对象。
NumberFormatException
- 如果
String
不包含可分析整数。
parseInt(java.lang.String, int)
Character类里面也有一些关于字符的处理函数,也挺好用得。
P68
Java中的foreach语法,和C#中的还是有些区别的,用惯了C#的,看Java猛然有点不习惯。
P79
参数的顺序不同可以区分两个不同的方法,但是不推荐,代码难以维护。
}
P85
Java中可以在构造函数中调用构造函数,但是不能再非构造函数中调用构造函数
P87
关于finalize()方法,下面这篇文章写得浅显易懂,还不错!
http://blog.csdn.net/dongliheng/archive/2007/07/12/1686258.aspx
P94
初始化顺序:在类的内部,变量定义的先后顺序决定了变量之间的初始化顺序,即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。