`

一个电话面试后总结

 
阅读更多

今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。

面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:

 

在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。

 

然后对list和map分别举几个类型:

 

list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了。就说了LinkedList是按照顺序存储的,ArrayList则是随机的。

后来翻了一下书:两者的不同之处不仅在于执行某些类型的操作时的性能,而且LinkedList包含的操作也多于ArrayList。

ArrayList:擅长于随机访问元素,但是在List的中间插入和移除元素较慢。

LinkedList:通过较低的代价在List中间进行元素的插入和删除操作,提供了优化的顺序访问。但是在随机访问方面相对比较慢,特性集较ArrayList更大。

它们都是具有相同接口和外部行为的简单的序列,但是它们对某些操作所花费的代价却有天壤之别。在ArrayList中,随机访问元素是一个花费固定时间的操作;但是,对LinkedList来说,随机选取元素需要在列表中移动,这种代价是高昂的,访问越靠近表尾的元素,花费的时间越长。而另一方面,如果想在序列中间插入一个元素,LinkedList的开销却比ArrayList要小。

 

map方面:举了hashmap,treemap,linkedhashmap。

谈到hashmap的时候,我对它只有“它是最快获得元素的方式”这个概念。然后被问到了hashcode,怎么产生hashcode的。我知道它和equals都可以用来比较两个对象是否相等,而且都可以重写。一般equals相等的两个对象,hashcode也基本相等。hashcode相等的,equals可能相等,可能不相等。但是hashcode是怎么产生的还真不知道。

回头查了一下,原来,hashcode是一个本地方法。在Object类中的代码是:

 public native int hashCode();

如果不对它进行重写,那么两个地址不同的对象,hashcode是不会相同的。但是我们往往要比较的是两个对象的内容,那么就要对hashcode进行重写。举个例子:

 public int hashCode() {
        int h = hash;
        if (h == 0 && value.length > 0) {
            char val[] = value;

            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }

 这是String重写后的hashcode。那么就可以用它来比较两个String的内容是否相同了。

 

public class TestEqualAndHash {
	
	public static void main(String[] args) {
		String a = "abc";
		String b = "abc";
		System.out.println(a==b);
		System.out.println(a.hashCode()==b.hashCode());
		User u1 = new User();
		User u2 = new User();
		System.out.println(u1==u2);
		System.out.println(u1.hashCode()==u2.hashCode());
	}
}
class User{
}
Output:
true
true
false
false

 可以看出,String经过重写,a,b相等;但是User没有重写过equals和hashcode,所以不相等。

 

分享到:
评论

相关推荐

    阿里电话面试一面总结

    ### 阿里电话面试一面总结 #### 自我介绍(研究方向、项目经历) 在面试开始阶段,面试官通常会让候选人进行自我介绍。这一环节非常重要,因为它不仅可以让面试官了解你的背景,还能展现你的沟通能力和表达能力。...

    面试心得体会(面试心得总结300字).pdf

    6. **电话面试的准备**:电话面试往往更加突然,因此需要时刻准备好自我介绍和关键信息的传达。可以通过模拟电话面试来提升通话技巧,注意语调、节奏以及信息的清晰度。电话旁放置简历和其他相关信息可以帮助快速...

    电话面试结构化指导书模板

    总结来说,电话面试结构化指导书模板提供了一个系统化的面试流程,帮助HR专业、有序地进行面试,有效地筛选出符合公司需求的候选人。通过这样的结构化方式,可以减少主观偏见,提高面试的公平性和准确性。在实施过程...

    经历BAT面试后总结的【高级Java后台开发面试指南】,纯净干货无废话,针对高频面试点

    除开知识点,一定要准备好以下套路:个人介绍,需要准备一个1分钟的介绍,包括学习经历、工作经历、项目经历、个人优势、一句话总结。一定要自己背得滚瓜烂熟,张口就来抽象概念,当面试官问你是如何理解多线程的...

    《完美的面试》总结版.pdf

    5. 面试后的跟进:面试结束后,如何通过邮件或电话的方式表达感谢并询问面试结果。 6. 求职安全:由于文件标签提到了安全,因此可能包含识别招聘骗局、保护个人隐私、网络安全意识等与求职过程中可能遇到的风险相关...

    阿里前端面试经历总结

    【阿里前端面试经历总结】 在面试阿里巴巴前端职位的过程中,求职者需要做好充分的准备,以展示自己的专业能力和个人特质。以下是一些常见的面试问题及应对策略: 1. **离职原因**: - 在回答离职原因时,应确保...

    C#面试笔试题目总结

    C#面试笔试题目总结 本资源收录了30页的C#面试笔试题目,涵盖了抽象类和接口、数据绑定、内存管理、委托、序列化、ADO.NET、面向对象编程等多方面的知识点。 1. abstract class 和 interface 的区别 abstract ...

    CC++电话面试

    ### CC++电话面试知识点解析 #### 1. 数组与指针的区别? - **定义**: - **数组**:是一系列相同类型的数据元素的集合,这些数据元素在内存中是连续存储的。 - **指针**:是指向一个变量或其他数据结构的地址的...

    android面试总结

    ### Android面试总结:Java基础知识详解 #### Java Object 类方法 在深入探讨面试中涉及的关键Java概念之前,我们先从Java中最基本的类——`Object`类开始。`Object`类是所有Java类的父类,提供了几个核心方法,...

    java面试资料总结

    Java面试资料总结是针对求职者,尤其是那些寻求Java开发岗位的人士所精心整理的资源集合。这份资料旨在帮助应聘者更好地准备面试,提高获得理想职位的机会。以下是对这两个文件名中涉及的Java面试知识点的详细解析:...

    个人面试总结-QIU.md

    在个人求职过程中,面试是至关重要的环节,它不仅考察了应聘者的专业知识,还评估了沟通技巧、思维方式和问题解决...记住,每一次面试都是一个学习和成长的机会,不要害怕失败,持续提升自己,终会找到属于自己的舞台。

    09 支付宝电话面试产品经理分享.docx

    本文总结了作者参加支付宝产品经理电话面试的经验,涵盖了面试的问题、回答的思路和总结的经验教训。面试的问题可以归结为三个方面:项目经历、产品经理岗位理解和支付宝相关问题。 项目经历 作者强调了项目经历的...

    200余套面试技巧,面试经验总结资料-通用-HR面谈求职面试技巧大全.zip

    01-多角度的面试提问清单(共8页)-素材.docx 02-招聘面试25问-素材.doc 03 群面技巧、案例、面试官角度解析 ...【面试】一次本不该失败的面试经历-素材.doc 【面试】如何才能100%面试成功等等。。。。。。。

    “卑微”的产品经理面试总结.docx

    - **电话面试**: 在电话面试中,面试官对面试者的简历提出了多个疑问,包括简历的专业信息缺失、工作经验的时间线错误等。这些问题反映了产品经理职位对于简历内容准确性的重视。 #### 二、电话面试中的挑战与反思 ...

    女大学生与面试官电话面试的角力战三_面试技巧_个人简历.docx

    电话面试是求职过程中常见的一种筛选方式...总之,电话面试是求职过程中的一个重要环节,求职者需要具备良好的沟通技巧,保持专业态度,同时对自我有清晰的认识。通过不断学习和实践,才能在竞争激烈的职场中脱颖而出。

    Google, Baidu, Tencent 面试题总结

    **适用范围**:Bloom Filter是一种空间效率极高的概率型数据结构,主要用于判断一个元素是否在一个集合中。它适用于数据字典的实现、数据判重、以及集合之间的交集求解。 **基本原理及要点**: - **位数组 + K个...

    软件测试面试问答

    在软件测试面试中,常见的问题包括为什么要在一个团队中开展软件测试工作、曾经从事过哪些测试工作、熟悉的软件测试类型、测试用例设计的关键是什么等。 软件测试是一个非常重要的过程,它可以帮助我们发现软件中的...

    电话预约面试话术技巧面试技巧2021.doc

    总结来说,电话预约面试的技巧主要包括:礼貌的开场,明确的职位推荐,合理的说服策略,详尽的面试信息提供,以及及时的后续跟进。这些步骤都需要以平和、专业和尊重的态度进行,以提高候选人的参与度和面试的成功率...

Global site tag (gtag.js) - Google Analytics