Object 类
equals() 方法
- equals()方法是用来判断其他的对象是否和该对象相等.
- String 、Math、Integer、Double等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。
1 | public boolean equals(Object anObject) { |
- 很明显,这是进行的内容比较,而已经不再是地址的比较。依次类推Math、Integer、Double等这些类都是重写了equals()方法的,从而进行的是内容的比较。
- 性质
- 自反性(reflexive)。对于任意不为null的引用值x,x.equals(x)一定是true。
- 对称性(symmetric)。对于任意不为null的引用值x和y,当且仅当x.equals(y)是true时,y.equals(x)也是true。
- 传递性(transitive)。对于任意不为null的引用值x、y和z,如果x.equals(y)是true,同时y.equals(z)是true,那么x.equals(z)一定是true。
- 一致性(consistent)。对于任意不为null的引用值x和y,如果用于equals比较的对象信息没有被修改的话,多次调用时x.equals(y)要么一致地返回true要么一致地返回false。
- 需要注意的是当equals()方法被override时,hashCode()也要被override。按照一般hashCode()方法的实现来说,相等的对象,它们的hash code一定相等。
hashCode() 方法
- hashCode()方法给对象返回一个hash code值。这个方法被用于hash tables,例如HashMap。
- Java对象的eqauls方法和hashCode方法是这样规定的:
- 相等(相同)的对象必须具有相等的哈希码(或者散列码)。
- 如果两个对象的hashCode相同,它们并不一定相同。
String 类
- 构造方法
序号 | 方法名 | 描述 |
---|---|---|
1. | String() | 创建一个空字符串对象 |
2. | String(byte[] bytes) | 使用一个字节数组来创建一个字符串的对象。 |
3. | String(byte[] bytes,int offset, int length) | 解码字节数组中指定部分 |
4. | String(char[] value) | 使用一个字符数组创建一个字符串对象。 |
5. | String(char[] value,int offset, int length) | 解码字符数组中指定部分 |
6. | String(int[] codePoints,int offset,int length) | 解码整数数组中指定部分 |
- 示例
1 | byte [] bytes ={97,98,99}; |
StringBuffer类
- 定义:由于String的内容是不可变的,一旦修改马上会创建一个对象,所以为了避免导致String对象泛滥,在频繁改变字符串对象的应用中,需要使用可变的字符串缓冲区类。
- 实质:StringBuffer底层是一个字符串数组,默认缓冲区的容量是16。如果字符串的长度不够,内存将自动 增长一倍,线程安全的所有的缓冲区操作方法都是同步的。效率很低。
System类
作用:获取系统属性
类中所有成员都是静态的,当要引用这些变量和方法的时候,System.属性 System.方法()
- 常用的方法:
序号 | 方法名 | 描述 |
---|---|---|
1. | arraycopy(Object src,int srcPro,Object dest,int destPro,int length) | (源数组,源数组中的起始位置,目标数组,目标数组的起始位置,要复制数组的长度) |
2. | currentTimesMillis() | 获取系统时间 |
3. | exit(int status) | 0:正常退出jvm 1:异常退出 |
4. | gc() | 建议jvm启动垃圾回收器回收垃圾 |
5. | getenv(String name) | 根据环境变量名获取环境变量 |
6. | String getProperty(String name) | 获取某个系统属性 |
Runtime类
- 作用:该类描述当前应用程序的运行环境,一个应用程序只有一个运行环境
- 常用的方法:
序号 | 方法名 | 描述 |
---|---|---|
1 | getRuntime() | 返回当前应用程序的运行环境对象。 |
2 | exec(String command) | 根据指定的路径执行对应的执行文件。 |
3 | freeMemory() | 返回jvm中的空闲内存。(以字节为单位) |
4 | maxMemory() | 返回jvm中试图管理的最大内存 |
5 | totalMemory() | 返回jvm中内存总量 |
示例代码
1
2
3
4
5
6
7Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad.exe");
//Thread.sleep(3000);
process.destroy();
System.out.println(runtime.freeMemory());
System.out.println(runtime.maxMemory());
System.out.println(runtime.totalMemory());
Math类
- 常用的方法:
序号 | 方法名 | 描述 |
---|---|---|
1 | abs(double num) | 取绝对值 |
2 | ceil(double num) | 向上取整 |
3 | floor(double num) | 向下取整 |
4 | round(double num) | 四舍五入 |
5 | random() | 产生大于等于0.0 小于1.0的随机数Random 类可产生各种随机数 |