Object类
是所有类的基类(超类,组类)
所有类直接或间接的继承Object类
Object类中的常用方法:
1.toString方法
- 返回对象的字符串表示形式。 一般来说,
toString
方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法。- 该
toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
源码如下:
public String toString()
{
getClass().getName() + '@' + Integer.toHexString(hashCode());
}
class aa
{
int num;
public aa(int num)
{
this.num = num;
}
}
public class tostring {
public static void main(String[] args) {
aa st1=new aa(2);
aa st2=new aa(3);
System.out.println(st1.toString());
System.out.println(st2.toString());
}
}
/*
运行结果为:
objecttsst.aa@1b6d3586
objecttsst.aa@4554617c
*/
在我们平常使用时,建议重写toString方法,可以输出自定义的输出方式。
package objecttsst;
class aa
{
int num;
public aa(int num)
{
this.num = num;
}
@Override
public String toString() {//重写后的toString方法
return "aa{" +
"num=" + num +
'}';
}
}
public class tostringtest {
public static void main(String[] args) {
aa st1=new aa(2);
aa st2=new aa(3);
System.out.println(st1.toString());
System.out.println(st2.toString());
}
}
/*运行结果为:
aa{num=2}
aa{num=3}
*/
2.equals()方法
用来判断两个引用地址是否相同。
注:只有在Object类中的equals方法才会比较地址,其他类中的equals方法重写了以后,默认比较的都是内容。
源码展示:
public boolean equals(Object obj) { return (this == obj); }
在此需注意:“==”用于基本类型比较时,比较得是值是否相等。
“==”用于引用类型比较时,比较得是引用变量的地址是否相等
class bb { int num; public bb(int num) { this.num = num; } } public class equalstest { public static void main(String[] args) { bb st1=new bb(1); bb st2=new bb(1); System.out.println(st1.equals(st2));//当两个引用变量指向不同对象时 } } 运行结果:false
class bb { int num; public bb(int num) { this.num = num; } } public class equalstest { public static void main(String[] args) { bb st1=new bb(1); bb st2=st1; System.out.println(st1.equals(st2));//当两个引用变量指向同一个对象时 } } 运行结果:true
Arrays类
(在util包中)
包含许多关于数组操作的静态方法。
1.equals方法
在数组的输出时,建议运用Arrays.toString方法,不用数组名输出。
Arrays.equals(a,b);//比较得是两个数组的值是否一致
import java.util.Arrays; public class DomeArrays { public static void main(String[] args) { int []a={1,2,3,4,5}; int []b={9,3,2,5,6}; int []c={1,2,3,4,5}; System.out.println(Arrays.equals(a,c));;
运行结果为:true
2.sort方法
有多个方法重载;
Arrays.sort(int[] a);//将数组a从小到大排序,无返回值
Arrays.sort(int[] a, int fromIndex, int toIndex);//将数组a指定位置内排序,开始包括,结束不包括.
import java.util.Arrays; public class DomeArrays { public static void main(String[] args) { int []a={1,2,3,4,5}; int []b={9,3,2,5,6}; int []c={1,2,3,4,5}; /* System.out.println(Arrays.equals(a,c)); Arrays.sort(b);//调用Arrays类中sort()方法排序 System.out.println(Arrays.toString(b));//调用Arrays。toString方法输出*/ Arrays.sort(b,0,5); System.out.println(Arrays.toString(b)); //运行结果为:[3, 9, 2, 5, 6]
3.binarySearch方法
返回数组中指定字符的索引
利用的是折半查找
import java.util.Arrays; public class DomeArrays { public static void main(String[] args) { int []a={1,2,3,4,5}; int b=binarySearch(a,3);//在a数组里找3,返回索引
此方法也有多种方法重载,不再一一列举
4.Arrays.copyof数组扩容
返回的是一个新数组;
public class Test { public static void main(String[] args) { int []a={1,2,3,4}; int []b= Arrays.copyOf(a,5); System.out.println(Arrays.toString(b)); } } //运行结果为:[1, 2, 3, 4, 0]
也有多种方法重载,不再一一列举。