`
闫老三
  • 浏览: 102765 次
社区版块
存档分类
最新评论

Java一道经典的面试题

 
阅读更多
class Main{
	private String value=null;
	public Main(String v){
		value=v;
	}
	public boolean equals(Main o){
		if(o==this){
			return true;
		}
		if(o instanceof Main){
			Main main=(Main)o;
			return value.equals(main.value);
			
		}
		return false;
	}
	public static void main(String[] args){
		List list=new ArrayList();
		Main main1=new Main("object");
		Main main2=new Main("object");
		Main main3=new Main("object");
		Object main4=new Main("object");
		list.add(main1);
		
		System.out.println(list.contains(main2));
		System.out.println(main2.equals(main3));
		System.out.println(main3.equals(main4));
	}
}

 这段代码的输出是false true false;主要郁闷的是第三个为什么是false。这是因为在main类中,有一个默认的方法 boolean equals(Obejct o) ,在Java中,返回值,方法名,参数类型三者完全相同才会被覆盖,否则不会,所以第三个调用的是该方法。而Object的equals方法返回值就是false啦。

转载请注明原文地址:http://uwind.iteye.com/blog/1943336

7
6
分享到:
评论
5 楼 hss118100 2013-09-18  
dingran 写道
第三个那个main4对象里面的value是null,所以,你懂得。

要想理解这个问题建议看一本书:《疯狂JAVA-突破程序员基础的16课》 李刚 著作

这本书要是都读懂了,这样的问题就小case了

value是object,理论上应该是相等的,但是因为equals方法的参数是Main o,不是Object,所以没有覆盖掉Object类里面的equals方法,第三个调用的其实是Object类的equals方法,所以不相等
4 楼 id.alex 2013-09-18  
1. 重载与覆盖的区别,
2. "if(o instanceof Main){  " 这句话多余.
3 楼 shenliuyang 2013-09-18  
你妹呀  玩重载~!~!~
2 楼 PlayGod1984 2013-09-18  
dingran 写道
第三个那个main4对象里面的value是null,所以,你懂得。

要想理解这个问题建议看一本书:《疯狂JAVA-突破程序员基础的16课》 李刚 著作

这本书要是都读懂了,这样的问题就小case了

你确定吗?我看不是小case吧。value是object
1 楼 dingran 2013-09-17  
第三个那个main4对象里面的value是null,所以,你懂得。

要想理解这个问题建议看一本书:《疯狂JAVA-突破程序员基础的16课》 李刚 著作

这本书要是都读懂了,这样的问题就小case了

相关推荐

    java的一些面试题

    Java面试题涵盖了许多核心知识点,包括基础技术、项目经验、逻辑推理和SQL查询。下面将对这些方面进行详细的解析。 1. **基础技术题** - **UML图**:UML(统一建模语言)有多种图表,包括类图、对象图、用例图、...

    Java 面试题 Java 面试题

    根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...

    常见的Java上机面试题

    ### 常见的Java上机面试题:深入解析与实战指南 在IT行业的求职过程中,尤其是对于软件工程师或开发者而言,上机编程面试成为了一道必经的门槛。这种形式的面试旨在全面评估应聘者的技术能力,不仅考察理论知识的...

    Java高级面试题汇总及答案(2022年Java面试题及答案大全)

    这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...

    android和java面试大全集

    史上最全的android和java面试文档集。包括有: java程序员面试宝典.txt Java面试宝典2011版-1C,Java基础部分.doc... Java面试题及答案(基础题122道) - 在梦想与现实之间徘徊 - JavaEye技术网站.mht 等等,还有好多。

    原创一道Java笔试面试题考考大家

    根据提供的文件信息,我们可以分析出这是一道关于Java继承与方法重写的相关笔试面试题。题目涉及到了Java类的继承、方法重写、实例化对象时的调用顺序以及对象多态性等知识点。接下来,我们将对这些知识点进行详细的...

    java截取字符串程序,一道面试题。答案

    java截取字符串,一道面试题。好像没有找到正确答案,今天找时间做了一个,仅供参考。本人运行过了。

    一道java面试题 行列转换

    ### Java面试题:行列转换详解 #### 一、问题背景 在进行数据分析或者报表处理时,经常需要将数据从一种格式转换成另一种格式以便更好地展示或分析。其中一种常见的转换需求是从行转列(即行列转换)。本篇文章将...

    每天60秒,搞定一道JAVA面试题.zip

    【一线互联网大厂Java核心面试题库】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等..

    企业公司软件测试面试笔试题集合 软件测试面试题

    企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc...

    栈——经典面试题

    本题目的核心在于如何利用两个栈来模拟一个队列,这是《剑指Offer》这本书中的一道经典面试题,旨在测试候选人在实际问题中应用数据结构的能力。 首先,我们需要理解栈和队列的基本操作。栈的主要操作有压入(push...

    Java 133道面试题(包括答案 JAVA面试必备)

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在求职面试中脱颖而出,了解并掌握Java的核心概念、...对于每一道面试题,深入理解并能举一反三,将是成为一名优秀Java开发者的关键。

    IT互联网名企经典面试题汇总:Java篇 (2).pdf

    【IT互联网名企经典面试题汇总:Java篇】 在IT行业,尤其是互联网企业,Java作为主流的编程语言,其面试题涵盖了多个方面,包括但不限于语言特性、设计模式、数据库操作、并发处理、框架理解以及项目实践经验。以下...

    一道腾讯面试题

    这道2011年腾讯校招的面试题虽然没有明确的问题描述,但从标签中我们可以推测,它可能涉及C++、.NET、Java这三种编程语言中的某一方面,或者是关于算法设计与分析。面试题通常旨在考察候选人的思维能力、编程基础...

    java面试题-leetcode题解之第31题下一个排列.zip

    "java面试题_leetcode题解之第31题下一个排列" 的描述进一步确认了这是关于Java面试中的一道算法题目的解答,主要关注如何找到一个排列的下一个排列。在面试中,这样的问题通常用来评估候选人在处理数组操作和算法...

    答复: 一道经典线程面试题的4种解法

    标题中的“答复: 一道经典线程面试题的4种解法”暗示了这是一个关于多线程编程的问题,通常在面试中出现,用于评估候选人的并发处理能力。在这个问题中,可能涉及到同步、线程安全、锁机制等关键概念。 在Java中,...

    Java程序员面试题

    Java程序员在面试中可能会...理解这些Java面试题的解答可以帮助面试者更好地准备面试,加深对Java核心概念的理解,并展示他们在实际开发中的应用能力。对于Java程序员来说,扎实的基础知识和实践经验都是至关重要的。

Global site tag (gtag.js) - Google Analytics