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()方法

#当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

 

posted @ 2015-06-26 19:00  一只特立独行的兔子  阅读(766)  评论(0编辑  收藏  举报