集合(容器)hoshCode算法
来源:互联网 发布:unity3d 动画循环播放 编辑:程序博客网 时间:2024/06/05 05:40
一.object类的四个方法
1.toString()方法
通过重写object类的toString()方法实现对象的自我描述、自我介绍
public String toString(){return 实例变量}
举例代码如下:
public class Student {private String name;private String age;private String sex;public Student(){}public Student(String name,String age,String sex){this.name=name;this.age=age;this.sex=sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String toString(){return "姓名"+this.name+"年龄"+this.age+"性别:"+this.sex;}}
2.object类的equals()方法
作用:我们可以通过重写Object类的equals()方法 实现两个对象 意义上 相等 (意义上是同一个对象)
演示代码:
public class Student {private int sno;private String name;private String sex;public Student(){}public Student(int sno,String name,String sex){this.name=name;this.sno=sno;this.sex=sex;}public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public boolean equals(Object obj){ if(obj instanceof Student){//1.intanceof 判断对象类型 2.范型判断方法 obj.getclass()==Student.class(); Student s=(Student)obj; if(this.name.equals(s.getName())&&this.sex==(s.getSex())){ return true; }else{ return false; } }else{ return false; }}}
public class Test {public static void main(String[] args) {Student s=new Student(1,"李宝军","男");Student s1=new Student(2,"李宝军","男");System.out.println(s.equals(s1));//不重写equals方法 返回的是falseSystem.out.println(s.equals(s1));//当重写写了equals的方法 返回的是ture}}
三、重写Object()的第三个方法 hashCode()
格式:
public int hashCode(){return hashCode;}
从写hashCode的两个原则:
1. 两个对象 equals()比较结果是true, 它俩的hashCode值也要相同
2.重写equals时使用的条件, 重写hashCode时也要用
代码如下:
public int hashCode(){return this.name.hashCode()*13+this.sex.hashCode()*17; }
System.out.println(s.hashCode());System.out.println(s1.hashCode());
3.为什么要质数?
好的hashCode算法要保证一个桶里最好只有一个对象
四、Object类的finalize方法
不需要程序员写 finalize方法是对象被回收前调用的最后一个方法
1.垃圾回收器: 垃圾回收器是一个系统级的线程,作用是帮助程序员回收无用内存... 回收的重点是堆的内存...
2.java中的对象分为三种状态
(1)激活状态:一个或一个以上的引用 引用对象的时候 对象处于激活状态
(2)去活状态:没有引用 引用该对象时 该对象处于去活状态
(3)死亡状态:在某一个时间 垃圾回收器 会在去活状态对象上 调用它的finalize()方法,如果在finalize()方法中没有引用从新把
这个对象再激活,这时对象就会从去活状态转换成死亡状态..垃圾回收器真正回收的是死亡状态的对象
注意知识点:System.gc();提示垃圾回收器进行回收 只是提示作用
五、简述final、finalize、finally三者的区别
1、final关键字(略)
2、finalize 对象被回收前调用的最后一个方法...
3.finally异常处理中的关键字,finally表示无论如何总要执行的代码会放到finally中,一般放的是释放资源的代码...如果finally前 加了 强制退出System.exit(0) finally不会执行
六、补充内存管理的关键字
c语言:
分配内存 malloc(sizeof(obj))
释放内存 free(obj);
c++语言:
分配内存 Object *obj = new Object();
释放内存 delete (obj);
java语言:
程序员不需要管理内存的分配和释放、内存的释放工作由垃圾回收器完成....
程序员可以使用System.gc()方法来提示垃圾回收器进行回收...
- 集合(容器)hoshCode算法
- (五)容器-集合
- 集合(容器)
- java集合类(容器)
- Java 集合类(容器)
- 黑马程序员-Java的集合类(java中类的容器)和算法
- 容器|集合
- 基础知识总结:常用容器集合类的算法谈
- 对象容器、对象数组、集合容器(输出改进)
- Java基础之容器(集合)
- java常用容器(集合)的总结
- Java的集合容器(上)
- Java的集合容器(下)
- Java基础知识之集合(容器)简介
- Java 容器类(集合类)
- 常见的集合类容器(java)
- 51Nod1557 两个集合(set容器)
- java笔记(六):集合,容器
- activiti入门(1)
- 对于守望者逃离的简单思路(贪心)圈一波魔兽粉
- ATECC508A芯片开发笔记(五):Provision执行过程及代码分析
- 百练_2000:金币
- git和github的基本使用
- 集合(容器)hoshCode算法
- Codeforces Round #382 (Div. 1) 736A Tennis Championship
- Robotframework -- Run Keyword关键字
- ionic实战项目从0开始
- android 系统数据业务---打开(下)
- 被点名批评#2
- python logging 模块(三)
- Java SWT
- 设计前端(一)