Java学习笔记5-tostring/equals/hashcode
1、包的语法:
package 包名;
package语句只能出现在Java源文件的第一行;
2、包命名规范:
公司域名倒叙.项目名.模块名;
eg:com.huicong.oa.core;
3、Java常用开发包:
Java.lang,此包是Java语言标准包,使用此包中的内容无需import引用;
Java.sql,此包提供JDBC接口类;
Java.util,提供了常用工具类
Java.io,提供了各种输入输出流
4、import引入其他类型,这样的语句只能出现在package之下,class之上。
5、访问权限:
6、object类中的equals方法:
equals方法的设计目的:比较另个对象是否一样;
object中的equals方法比较的是两个对象的内存地址;
但是在现实逻辑中,应当比较两个对象的内容,所以object中的equals方法需要重写;
Java规范要求:所有的Java对象都要去重写equals方法
等号(==)可以比较基本类型和引用类型,等号比较的是值,特别是比较引用类型,比较的是
引用的
-----------------------------------如下方例子,返回true---------------------------------------
//深入equals方法
public class TestEquals {
public static void main(String[] args) {
Student s1 = new Student(110,"JACK");
Student s2 = new Student(110,"JACK");
//重写equals方法
//需求:如果学号相等,并且名字也一样,才是同一个学生
System.out.println(s1.equals(s2));
}
}
class Student{
int no;
String name;
Student(int no, String name){
this.no = no;
this.name = name;
}
public boolean equals(Object obj){
if(this == obj){
return false;
}
if(obj instanceof Student){
Student s = (Student) obj;
if(this.no == s.no && this.name == s.name){
return true;
}
}
return false;
}
}
-------------------第二个例子------------------------------
String s1 = new String("ABC");
String s2 = new String("ABC");
System.out.println(s1 == s2); //false
//String已经重写了object中的equals方法
//比较两个字符串是否一样,不能直接用"==",必须用equals方法
System.out.println(s1.equals(s2)); //true
---------------------------------------------------------------
7、关于object中的hashcode方法:
返回改对象的哈希码值,如:
8、关于Java.lang.Object类中的toString方法:
#toString方法的作用是什么?
返回堆区中Java对象的字符串表示形式(等同看做Java对象的内存地址)
#Java规范要求:任何一个类都应该去重写toString方法
---------------------------例子--------------------------
public class TestTostring {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyTime t = new MyTime(2015,6,26);
String str1 = t.toString();
System.out.println(str1); //重写toString方法之前:MyTime@1fb8ee3
}
}
class MyTime extends Object{
int year;
int month;
int day;
public MyTime(int year,int month,int day){
this.year = year;
this.month =month;
this.day = day;
}
public String toString() {
return "MyTime 【" + year + "年" + month +"月" + day +"日】";
}
}
-----------------------------------------------------------------------------
9、关于finalize()方法
#当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。