//Student类
/*
* public int hashCode()返回对象的哈希码值。
* public final 类 getClass()返回此Object的运行时类。
* public String toString()返回对象的字符串表示形式。
* ctrl + 左键查看源码 eclipse
* ctrl+Alt+左箭头 返回上一次的鼠标位置
* */
public class Student extends Object{
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public String toString() {
return super.toString();
}
public String toString2() {
//如何转16进制
//Integer的toHexString()可以把10进制的数转换为十六进制,并且以字符串返回
//toString方法就是将本类的位置+@+十六进制哈希值
//public static String toHexString(int i)静态方法可以直接调用
//返回整数参数的字符串表示形式,作为16位中的无符号整数。
String a = Integer.toHexString(hashCode());
return this.getClass().getName()+"@"+a;
}
}
//测试类
/*
* 默认情况下,每个对象内存中的内存都不一样,所以哈希值也不一样
* 重写父类的hashCode方法就可以使哈希值一样*/
public class Student_Test {
public static void main(String[] args) {
Student s = new Student();
Student s2 = new Student();
Student s3 = s;
//public int hashCode()返回对象的哈希码值。十进制
System.out.println(s.hashCode());
System.out.println(s2.hashCode());
System.out.println(s3.hashCode());
System.out.println("----------------");
//public final 类 getClass()返回此Object的运行时类。
System.out.println(s.getClass());
System.out.println(s2.getClass());
Class aClass = s.getClass(); //Alt+Enter 自动返回犯法1的类型及对象
Class aClass2 = s2.getClass();
boolean b = (aClass == aClass2);
System.out.println(b);
System.out.println("----------------");
//在一个程序运行过程中,同一类创建的对象所使用的都是通一份字节码文件
//Class类的第一个方法getName()
//打印的时候打的是类的大名,全路径是名称
String name = aClass.getName();
//链式编程
System.out.println("----------------");
String name2 = s2.getClass().getName();
System.out.println(name);
System.out.println("----------------");
//public String toString()返回对象的字符串表示形式。
//返回的是对象文本的表现形式,如果没有重写该方法,打印的结果由3部分组成
//1.该路径的完整名称(gatClass -->Class对象-->Class对象的getName)
//2.@字符(在1的基础上进行拼接)
//3.十六进制逻辑内存的地址值
System.out.println(s.toString());
System.out.println(s2.toString());
System.out.println(s.getClass().getName());
System.out.println("----------------");
System.out.println(s.toString2());
System.out.println(s2.toString2());
System.out.println("----------------");
//public static String toHexString(int i)静态方法可以直接调用
int i = 12333390;
System.out.println("12333390转16进制为:"+Integer.toHexString(i));
}
}