JavaSE---Object
1、概述
Object常用方法:
1.1 getClass():
public final native Class<?> getClass();
返回 该对象 运行时的Class对象;
package com.an.javase; public class HashCodeTest { public static void main(String[] args){
System.out.println(new Person().getClass());
} static class Person{
private String name;
private int age;
}
} 结果:
class com.an.javase.HashCodeTest$Person
1.2 hashCode():
public native int hashCode();
返回该对象的哈希码值;
这个方法是为了支持java中的散列表,比如:HashMap、hashtable...
******java中 调用同一个对象的hashCode()必须 返回相同的整数;
但是,存在一个问题:有可能不同对象的hashCode()返回值相等;
1.3 equals():
public boolean equals(Object obj) {
return (this == obj);
}
比较2个对象是否相等(内存中的地址值);
该方法规定:如果2个对象equals()返回true,则必须有相同的hashCode值;
实际业务中:需要比较不同内存对象但内容相同,也视为相同,需要重写equals();
package com.an.javase; public class EqualsTest { private String name;
private Integer age; @Override
public boolean equals(Object obj) {
if (this==obj){
return true;
}
if (obj instanceof EqualsTest){
EqualsTest equalsTest=(EqualsTest) obj;
if (equalsTest.name.equals(this.name)){
return true;
}
}
return false;
}
}
1.4 toString():
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
对象自我描述的功能,告诉外界该对象具有的信息;
当直接将对象进行输出时,调用的是toString();
toString()返回值:类名+@+hashCode值
1.5 wait()
1.6 wait(long timeout)
1.7 wait(long timeout, int nanos)
1.8 notify()
1.9 notifyAll()
1.10 clone()
1.11 finalize():
protected void finalize() throws Throwable { }
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象;
最新文章
- 还原MySql数据库失败:max_allowed_packet 设置过小导致记录写入失败
- 几种.NET平台数据持久化框架介绍
- 字符匹配算法之Boyer-Moore算法
- PHPExcel 导出表格 不知道好不好用
- 从个人的角度谈谈本次GNTC大会的收获
- Shell脚本文件中常用的操作语句
- 12天学好C语言——记录我的C语言学习之路(Day 7)
- SVN修改已提交版本的日志
- js正则实现用户输入银行卡号的控制及格式化
- sid超过8个字符处理步骤
- 也谈---基于 HTTP 长连接的“服务(转载)
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法
- 从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD
- Linux Collection:用户管理
- js中树结构根据条件查找节点返回节点路径的一些思路
- jQuery-动画点击淡化消失
- AE旋转
- 第一个Django项目
- linux下运算的几种方法
- Gflags 简明使用