API接口方法查询
1.查API手册
2.连点2下Shift打开Idea搜索,勾选”include non-project item” ,搜Object
3.在扩展库Extermal libraries找到jdk1.8,
4.按住Ctrl点hashCode
Object的常用方法:
1. toString()
Object中默认实现:打印对象的 地址值
Student中重写后:打印对象的 类型+属性名+属性值
//测试toString() 打印地址值//打印s对象的是println(),这个方法会层层调用,一直到Object中的toString()//return getClass().getName() + "@" + Integer.toHexString(hashCode());/*** Object中toString()方法的默认实现:对象的地址值 [对象类型@十六进制的哈希码值]* 子类重写toString()后,打印的是:对象的类型+属性+属性值*/
2.equals()
Object中默认实现:== 比较,比较的是引用类型变量保存的 地址值
Student中重写后:比较的就是对象的 类型+属性+属性值
//测试equals()/*** Object中的equals()的默认实现使用的是 == 比较* == 比较的是左右两边的值,如果是基本类型,比较的就是 字面值* 如果是引用类型,比较的是引用类型变量保存的 地址值* 子类重写了equals()与hashCode()后,比较的就是对象的 类型+属性+属性值*/System.out.println(s1.equals(s2));//s1.hashCode == s2.hashCode
3.hashCode()
Object默认实现:hashCode()的哈希码值根据地址生成
Student重写后:hashCode()的哈希码值根据重写后传入对象的属性生成
4.hashCode()与equals()
equals()与hashCode()逻辑要保持一致,要重写都重写,不重写都不重写
/*equals()与hashCode()逻辑要保持一致,要重写都重写,不重写都不重写* Object默认实现:* hashCode()的哈希码值根据地址生成* equals()底层使用==比较两个对象的地址值* Student重写后:* hashCode()的哈希码值根据重写后传入对象的属性生成* equals()比较两个对象的类型+所有属性与属性值*/
5.String类中的equals()与hashCode()
/*** Object类中equals()的默认实现是通过 == 比较* 但是,String类已经重写过了继承自Object中的equals()* 重写后,不再按照==比较,而是比较两个字符串的具体内容* 也就是说,不论创建方式,只要串的内容一致,equals()就返回true*//*** String重写了hashCode(),是根据字符串的内容生成哈希码值,而不是根据地址值生成* so,虽然s1与s2的地址值不同,但是他们的哈希码值一样*///String也重写了Object中的toString(),打印的是字符串的具体内容
6.String API总结
String API总结int hashCode() 返回此字符串的哈希码。boolean equals(Object anObject) 将此字符串与指定的对象比较,比较的是重写后的串的具体内容String toString() 返回此对象本身(它已经是一个字符串!)。int length() 返回此字符串的长度。String toUpperCase() 所有字符都转换为大写。String toLowerCase() 所有字符都转换为小写boolean startsWith(String prefix) 测试此字符串是否以指定的元素开头。boolean endsWith(String suffix) 测试此字符串是否以指定的字符串结束。char charAt(int index) 返回指定索引/下标处的 char 值/字符int indexOf(String str) 返回指定字符在此字符串中第一次出现处的索引。int lastIndexOf(String str) 返回指定字符在此字符串中最后一次出现处的索引。String concat(String str) 将指定字符串连接/拼接到此字符串的结尾,注意:不会改变原串String[] split(String regex) 根据给定元素来分隔此字符串。String trim() 返回去除首尾空格的字符串byte[] getBytes() 把字符串存储到一个新的 byte 数组中String substring(int beginIndex) 返回一个新子串,从指定下标处开始,包含指定下标String substring(int beginIndex, int endIndex) 返回一个新子串,从执定下标开始,到结束下标为止,但不包含结束下标static String valueOf(int i) 把int转成String
