一 toString方法
toString方法在程序中使用的并不多,一般在代码调试的时候使用。如果i是基本数据类型,则i.toStirng()直接输出i的值。如果过i为引用类型,则输出的是i的地址,所以引用类型在时候toString方法时,一般要重写toString()方法。在myeclipse中source可以直接生成重写的方法。JDK中的API文档对toString的解释如下图所示:
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = new Student();
student.name = "王二";
student.age = 18;
System.out.println(student.toString());
}
}
class Student{
String name;
int age;
// @Override
// public String toString() {
// return "Student [name=" + name + ", age=" + age + "]";
// }
}
写了上述代码来验证toString方法,没重写后的toString方法输出的是:Student@3aae43b8(类名+@+地址的哈希地址值),下面把注释打开后,输出的是:Student [name=王二, age=18]。
二 equals方法
equals方法是object中的方法,它只能比较引用类型,比较的是两个引用是否指向同一个对象。“==”比较的是8个基本数据类型,也可以比较引用类型,比较的也是两个引用是否指向同一个对象。String类型和8个包装类的equals方法JDK已经帮我们重写过了,若比较其他引用类型时,需要重写此方法或者直接在source中生成。下面是API中对equals的解释:
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student1 = new Student();
Student student2 = new Student();
student1.name = "王二";
student1.age = 18;
student2.name = "王二";
student2.age = 18;
System.out.println(student1.equals(student2));
}
}
class Student{
String name;
int age;
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
为了验证,我们编写上述代码,输出结果是:false,下面我们书写override以下的内容重写equals方法,输出结果是:true.
三 system类
它是包含字段的方法,不能被实例化,要使用只能通过System.方法 这样的样式使用,它包含的全部方法都是静态的。API文档如下所示:
最常见的几种方法:
arrayCopy(src,srcpos,dest,destpos,length)方法,拷贝字符串。第一个参数是数组源,第二个参数是源数组的起始位置,第三个参数是目标数组,第四个参数是目标数组的位置,第五个参数是拷贝的长度。代码如下所示:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] src = {1,2,3,4,5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);
for (int i = 0; i < dest.length; i++) {
System.out.print(dest[i]);
}
}
输出为:12345
currentTimeMilliis()方法,以毫秒返回当前系统的时间(相对时间,相对1970-1-1 00:00:00),代码如下所示
public static void main(String[] args ) {
// TODO Auto-generated method stub
long Start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - Start);
}
最后输出的是执行循环使用的时间为:718毫秒。
exit(int status)方法为退出当前虚拟机,status为0正常退出,非0异常退出。
gc()方法为清理垃圾回收,一般用不到,系统会对垃圾进行回收清理。