CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

Java面试题

楼主x_hong(奔跑中的猪)2006-09-04 12:33:11 在 Java / J2SE / 基础类 提问

1,Java.lang.Object类有哪些方法,什么时候需要重写这些方法?  
  2,hascode()方法有什么作用?  
  3,接口和抽象类的区别?  
  问题点数:30、回复次数:15Top

1 楼gefengxztg(戈峰)回复于 2006-09-04 12:46:06 得分 0

这是哪家的面试题啊??  
   
  没什么创意Top

2 楼zuguanqun(小群)回复于 2006-09-04 12:49:52 得分 0

Java.lang.Object有tostring()   ,   equals     等Top

3 楼zhangsx(石头)回复于 2006-09-04 12:51:09 得分 5

1、有toString()、equal()等等。  
  2、不知道。  
  3、抽象类可以只实现部分方法,接口则必须实现其全部方法;抽象类的方法可以有抽象方法,也可以有普通方法,接口里的方法必须是抽象方法;抽象类的方法的访问权限可以多种,接口的方法的访问权限只能是public;抽象类的子类只能继承一个抽象类,而实现接口的类可以同时实现多个接口,等等。我只知道这些了。Top

4 楼likgrj(java游客)回复于 2006-09-04 13:04:36 得分 0

看看jdk文档嘛!Top

5 楼zousoft(菜菜鸟的战斗诗歌)回复于 2006-09-04 13:20:42 得分 15

刚学完corejava的基础部分,正好趁热解答你的问题:  
   
  类中常需要重载的方法有:toString(),   equals(),   hashCode(),   clone(),   compareTo()  
   
  其中后两个需要implements接口,中间3个是Object中的方法,不过clone是protected,需要使用时改写成public。  
   
  toString()应该每个类都有,即便不准备输出什么内容,也应该写上类的结构信息,便于其他程序员对你的类做log  
   
  equals()和hashCode()是一套的,一改则都改,且要对应。比如你以类中“年龄,工资”作为比较对象,那么的你的hashCode算法也必须和这2个量相关,通常的算法就是将不同的质数与字段做乘积和,例如:return   11*age+13*lohn;   如果不重写,使用Object默认的话,那么equals和hashCode都是以内存地址做依据的。  
   
  clone()主要用于拷贝自身,通常不用写代码,直接改写成public和函数返回类型,然后调用super.clone(xx)就可以了,如果类中包含其他对象,需要深度拷贝,那么要自己写代码,将这些对象手动拷贝过去,比如:  
  MyClass   result   =   super.clone();  
  result.Date   =   this.Date.clone();  
  return   result;  
   
  compareTo()用于比较,根据你的算法,依据不同字段,比较类对象的大小,返回1,   0,   -1。很多函数会自动调用它,比如Arrays.sort();  
   
  接口和抽象类的区别,我觉得主要是两点,一个是抽象类里还可以有非抽象的方法,虽然抽象类仍无法实例化,但是其子类可以,也就是说这些非抽象函数仍可以被多态调用,这也是抽象类为什么没有完全被接口取代的原因。接口就是相反了,不过接口也有一个优势是抽象类无法比拟,就是类可以继承多个接口,而抽象类和普通类一样,只能继承一个,所以接口可以解决多重继承问题。Top

6 楼woneinwy(★★★★★★★★★★@しǒひê)回复于 2006-09-04 13:30:11 得分 0

学习,不过没看懂。唉。。  
  Top

7 楼maojudong(毛毛)回复于 2006-09-04 15:35:38 得分 0

hashCode();  
      每一个对象有一个唯一hashcode;是唯一的,一般情况下是和equals();情况类似的,Top

8 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2006-09-04 15:43:49 得分 0

每一个对象有唯一的HashCode?   这个是哪里看来的啊?  
  Top

9 楼huhbc()回复于 2006-09-04 16:03:45 得分 0

HashCode()就是为了不唯一才做的方法,不是唯一的  
  其实散列值原先就是为了检索用的一个值Top

10 楼Aim09(第N+1头牛)回复于 2006-09-04 16:14:06 得分 0

upTop

11 楼shawnshine(shawn)回复于 2006-09-07 10:32:48 得分 5

hascode()   方法主要用于在hashset或者hashmap等以hash方式检索对象的集合里。每个对象有唯一的hashcode这种说法是不准确的,不过应该尽量避免大量重复的hashcode,这样可以提高检索的效率(hashcode冲突的解决办法有很多,学过数据结构的都该知道)Top

12 楼super_jj(浩浩)回复于 2006-09-07 16:07:16 得分 5

1.toString(),   equals(),   hashCode等.  
  2.hascode()方法主要用于在hashset或者hashmap等以hash方式检索对象的集合里.  
  3.一个是抽象类里可以有非抽象的方法,虽然抽象类无法实例化,但是他的子类可以,也就是说这些非抽象函数可以被多态调用.  
  类可以继承多个接口,而抽象类和普通类一样,只能继承一个.  
  Top

13 楼Bird_fro(小方)回复于 2006-09-08 16:25:13 得分 0

看看jdk阿,  
  很有帮助地饿Top

14 楼hcx_2008(hcx_2008)回复于 2007-03-15 14:50:14 得分 0

不错的问题!Top

15 楼ddbl7(电动班轮)回复于 2007-03-15 21:43:24 得分 0

很基础的问题,但是很经典Top

相关问题

关键词

得分解答快速导航

  • 帖主:x_hong
  • zhangsx
  • zousoft
  • shawnshine
  • super_jj

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo