楼主: wangcunjiang

[精华] Java陷阱一箩筐----面试题集[zt]

[复制链接]
论坛徽章:
127
Heart of PUB
日期:2008-01-02 14:43:06问答徽章
日期:2013-10-16 18:19:34Jeep
日期:2014-02-17 05:11:352014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14阿斯顿马丁
日期:2013-09-08 00:03:55
41#
发表于 2004-7-25 00:45 | 只看该作者
第十四,数组就用.length的不用length()方法.
第十六,好象是不用我们去判断的,在加数时自已会判断,当然是用equals()判断了。==号判断的是地址的
第二十三,start()。也可以调用run()但那是当一个普通方法用了与线程无关。
第二十九,不可能,hashCode()和EQUALS()方法要保持一致也就是说EQUALS认为相等时HASHCODE也一定要认为是相等的,也就是说HASHCODE相等时EQUALS可以不等*(这个好象和大家认为的不一样啊,望哪位解释一下)

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
42#
 楼主| 发表于 2004-7-25 00:47 | 只看该作者
最初由 dearmeiw 发布
[B]也来凑凑热闹
第四:这个主要是&&短路的问题,就是A&&B,当A是否的时候就不去算B了,要是&是会去算B的,这个是主要区别,BTW说一下,这两个都是“位”与运算的

确实如此,真的纳闷!

  1. int i=0,j=0;
  2.                 if ((i!=0) && ((j++)>0))
  3.                 {       
  4.                         System.out.println("1:"+j);
  5.                
  6.                 }
  7.                 System.out.println("2:"+j);
复制代码

  1. int i=0,j=0;
  2.                 if ((i!=0) & ((j++)>0))
  3.                 {       
  4.                         System.out.println("1:"+j);
  5.                
  6.                 }
  7.                 System.out.println("2:"+j);
复制代码
第九:是STRING缓冲池的问题,可能是两个也可能是一个,如果池中有就是一个,没有就是两个

这个不应该吧!
当用new时,java是会新建一个对象的。是两个对象的原因是该对象的引用(指针)在java中也是一对象。
第十一,short s1 = 1; s1 = s1 + 1;这个错出在1是INT在算是右部自动升级为INT运算,不能显式的再给S1.short s1 = 1; s1 += 1;这个没有错,但是会以二的八次方这个范围中打转,就是溢出后就是负了,所以不一定能得到正确的值,不会出错的原因在如JVM比较的懒,在+=,-=等这样的运算是就用的是第一个的内存空间不再申请新空间了,把算好的值往里面一扔就不管了…… [/B]


确实在这个范围中打转,但并不抛出异常!

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
43#
 楼主| 发表于 2004-7-25 00:49 | 只看该作者
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

使用道具 举报

回复
论坛徽章:
127
Heart of PUB
日期:2008-01-02 14:43:06问答徽章
日期:2013-10-16 18:19:34Jeep
日期:2014-02-17 05:11:352014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14阿斯顿马丁
日期:2013-09-08 00:03:55
44#
发表于 2004-7-25 00:49 | 只看该作者
三十,除了基类其它的就是引用传递(当然都是传的一个值,但那类似于指针,有国内有些书翻译错了,公认的说法就是引用传递)
第三十一,swtich在15中好象还可以作用在自定义的枚举型上,KAO……

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
45#
 楼主| 发表于 2004-7-25 00:51 | 只看该作者
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
46#
 楼主| 发表于 2004-7-25 00:53 | 只看该作者
第十七,给我一个你最常见到的runtime exception。
除了NullPointerException
这个IndexOutOfBoundsException也很常见

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
47#
 楼主| 发表于 2004-7-25 00:54 | 只看该作者
第十八,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
48#
 楼主| 发表于 2004-7-25 00:55 | 只看该作者
最初由 dearmeiw 发布
[B]三十,除了基类其它的就是引用传递(当然都是传的一个值,但那类似于指针,有国内有些书翻译错了,公认的说法就是引用传递)
第三十一,swtich在15中好象还可以作用在自定义的枚举型上,KAO…… [/B]

对于30,我也这么认为
31,好像是只要能cast为int的都可以吧

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
49#
 楼主| 发表于 2004-7-25 00:56 | 只看该作者
第十九,List, Set, Map是否继承自Collection接口?

使用道具 举报

回复
论坛徽章:
39
ITPUB元老
日期:2005-10-13 10:38:002012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB官方微博粉丝徽章
日期:2011-07-04 09:42:062011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:36:17ITPUB9周年纪念徽章
日期:2010-10-08 09:34:022010新春纪念徽章
日期:2010-03-01 11:07:27祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:282008新春纪念徽章
日期:2008-02-13 12:43:03
50#
 楼主| 发表于 2004-7-25 00:59 | 只看该作者
第二十,abstract class和interface有什么区别?
区别太多,大体如下:
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表