`
lvwenwen
  • 浏览: 955220 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

阿里面试2(转)

阅读更多
我说我在Java上做了10年,做过了某些项目,担任了某些角色,解决了什么问题,用到了什
么技术,写过哪些通用框架。我也不知道他听懂了没有,他没有对我的简历没有任何问题,
他就开始问了让我汗颜的技术问题:“你知道Object对象有些方法?”
我一听就呆了,我真的没有去认真记,我估计他是想问关于并发和泛形的问题吧,我说我没
特意去记,如果用到并发和多线程的话主要有wait和notify,常用的clone,toString,equals
等。他接着问我wait和sleep有什么区别,我一听又晕了,Object有sleep方法吗?我怎么不
知道的,我很淡定地说,sleep是对象自己休息了一会儿,然后时间到了就自己醒来继续干活
,而wait,是要别人通知它醒来干活。 他接着问:“inputstream和reader有什么区别?”
我心头又一震,这么高深的问题,我还一时还真的说不出来,我继续淡定:“inputstream是
读二进制流的,reader通过指定编码而读取不同格式的编码,比如UTF8或GBK之类的。”
第三个问题,“List有几种实现?”
这个问题我考过无数面试者,我觉得这只是例行的问题,我很干脆地回答,ArrayList和Lin
kedList,ArrayList的数据结构是数组,LinkedArray是链表,如果插入和删除的操作较多,
可以考虑用LinkedArray,如果是修改或查询数据,用ArrayList比较合适。
第四个问题,“如何理解Hashmap?”
我实在看不出有什么难度,我说Hashmap就是key对应value的一种结构体,Hash是一种快速检
索算法,非顺序存储,不能前缀检索,不支持太大的数据量,一般来说几万条没问题,通常
可用来做缓存机制,而数据库索引一般用btree而不会用到hash算法。
我觉得这些问题都是Java的基础,我应聘的是架构师,我等待着更有深度的问题。“谢谢你的
面试,如果合适我们过两天会有人跟你进一步的联系的。”我一听这话几乎晕倒,继续淡定地
问:“据我所知所有的复试都会在今天完成,听您的意思我不太合适,请问可以告诉我原因吗
?” 结果已定,我只是想知道为什么!
面试官说了我没有一个问题回答正确,我完成不懂hashmap,hashmap在超大数据量如几千万条
记录时,会有可能出现hash碰撞,不同的key有可能被覆盖。
我晕,我写了这么多年的java真的没遇过这事,阿里的系统就么猛连hashmap都会因为数据量
过大而出错?我直说我真的没遇过这事,我用hashmap最多就处理过10万左右的记录,2GB的
JVM内存都提示内存溢出,即使控制在5万条之内,虽没内存溢出都感觉到检索的速度慢了很
多,比数据库要慢多了,所以我认为太多的数据不应该在Hashmap处理,而是应该交给数据库
去计算,我用hashmap写业务逻辑一般控制数据量在5000条左右为上限。我回来google了关于
hashmap会出现碰撞的问题,但查到的结果是有碰撞是正常的,但绝不会出现不同的KEY会因
为hashcode相同而覆盖,这跟我的理解完全一致,碰撞会影响性能,但不会出错。另外,有
一个前提是KEY的hash算法别写错,而且hashcode()返回是int型,不知道面试官指的KEY会被
覆盖是否是因为int类型的问题了,如果是这个问题的话,我早在2003年就已经解决过,根本
就不是问题,但已经无法求证他的想法。
面试官说我不懂处理超大数据的系统,我说如果真的有这问题也不难解决啊,换一个能处理
大数据的hashmap就好了,或者用memcached,用C写的,性能比JAVA强多了,用得着这么复杂
吗,我问那你会如何处理,他说可以考虑hashtable或vector或其他的JAVA类,我说hashtab
le和vector是线程安全的,性能比hashmap要慢,但有并发时肯定不能用hashmap。我现在想
他是否把并发问题造成的key覆盖与大数据量时hashcode所造成的KEY覆盖搞混了,否则怎么
会把问题扯到并发上来。 我说OK,我的确不知道这问题,但是就这问题你就否定我了吗?
面试官说还有很多,比如我不懂inputstream和reader的区别,我说就是一个支持编码一个不
支持编码,我这个回答有问题吗?那正确的答案是什么呢?
面试官说reader是按字符读取的。我又晕,只要对java有一点经验的人都知道这点吧,一个
读byte一个读char。我说我的回答也对啊,指定编码就是为了按字符读取啊。他又说我你知
道UTF8,GBK,GB18030和unicode的区别吗?reader为什么能转换不同的编码,我说UTF8就是
unicode,汉字占3个字符,GB18030包含了所有的汉字,一般来说用GB2312也就足够了,但U
TF8更通用,JAVA内核用unicode处理字符的,所以编码转换成任何编码格式都是自然而然的
事,我们开发不需要关心这细节,当出现乱码时一般就是编码有误,转换一下就行了。我感
觉我一直在跟一个java小学生在聊天,而且我还是该小学生的学生。
我问了我很关心的一个问题,请问你们公司的Java架构师主要的责任就是写这些hashmap吗?
面试官回答我说,我们公司的架构师都做要经常写hashmap,要处理系统的一些BUG,要明白
其中的原理才能解决问题。
我已经有点冲动忍不住说了:每个人的知识面都是有限的,时间也是有限的,不一定所有的
场景都会接触到,这些技术问题每个公司都应该积累了不少相应的解决办法,而且网上随便
都能google一堆解决思路和办法,当遇到时自然就能解决,一个有能力的人不能光看他做过
什么,没做过什么,而是要看他的学习能力,解决问题的能力才是最重要的。架构师要考虑
的不仅仅是代码,而是要从整个系统去考虑,要分析子系统之间的关系,数据架构,开发架
构,用户需求等方面。
面试官表示很淡定:我觉得我要求的就是要这些,你不符合我的要求。
面试已经束,回家。

这股不对劲的味,我想应该是官僚味吧,整个面试过程HR部门并没有参与,阿里方表现得非
常随意,感觉是较低档次的面试会,这种情况是我这两年来已经很少遇到的了,或者阿里比
较牛,高手如云,不太在意从外部招聘人才吧。但是,这样的面试,通过面试的人能感受到
阿里对人才的认同感吗?进去之后是否要面对更多的官僚问题呢?不得而知。

我知道我自己一定做错了什么,或者我的水平真的不行,或者阿里并不需要像我这样的人,
或者阿里hr并没有告诉我,我面试的只是初级程序员的职位,或者我应聘的渠道错了,或者
我遇到了错误的面试官,或者,我没告诉阿里,其实我不懂java。

实在让我很羞愧,让阿里的JAVA同行见笑了。
分享到:
评论
2 楼 DDT_123456 2014-09-17  
我觉得你是不符合要求。
问你hashmap的那个问题,你那样回答根本不明白HASHMAP的结构。
hashcode本来就是不靠谱的,有没有重复code看你散列范围有多大,一般hashmap在value端是个链表结构。
字符流和字节流本来就是小朋友的问题,你答的也不尽人意,你说的编码问题只是其中一种表现,不能说明整个问题。人家问题几种字符集的问题,就是要点醒你,你还是执迷不悟。可能你以后也不会明白,如果你这种心态。
排出技术层面,团队适应性你也是不过关的,你沟通过程中,和你看叙述这个面试过程的这个文章就能看出你自我感觉良好,不会反思自己的问题,一直在责怪面试官,这点就能说明,你以后在工作中团队合作也是个大问题。只会责怪队友。
所以我说兄弟,你要好好想想。
1 楼 hngmduyi 2012-09-11  

相关推荐

    阿里运维工程师面试.docx

    阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx阿里运维工程师面试.docx

    阿里面试总结及答案

    ### 阿里面试总结及答案 #### 一、Java事件机制 Java事件机制是Swing框架中的核心组件之一,它允许程序响应用户输入或其他事件。该机制主要包括三个方面:事件、事件监听器以及事件源。 - **事件**:通常继承自`...

    阿里面试集锦

    ### 阿里面试集锦知识点详解 #### 一、红黑树的特性 红黑树是一种自平衡的二叉查找树,具有以下特点: 1. **颜色属性**:每个节点都带有颜色属性,可以是红色或黑色。 2. **根节点**:根节点必须是黑色。 3. **叶子...

    iOS面试题(阿里)

    根据提供的信息,我们可以总结出这份文档是关于iOS面试题的一部分,特别强调了与阿里巴巴相关的面试题目。虽然原文中包含大量非可读字符,但通过整理和解析,我们能够提炼出以下关键知识点: ### dSYM 文件 1. **...

    阿里面试技术手册.pdf

    阿里面试技术手册.pdf

    阿里巴巴java面试手册

    阿里巴巴java面试手册

    HR 阿里招聘-面试官手册2020.pdf

    HR 阿里招聘-面试官手册2020.pdf

    大厂面试题第一季-阿里篇-对标阿里P7面试教程

    大厂面试题第一季-阿里篇-004-阿里面试被虐记,90%被问到的JVM面试题-1.mp4 大厂面试题第一季-阿里篇-004-阿里面试被虐记,90%被问到的JVM面试题-3.mp4 大厂面试题第一季-阿里篇-004-阿里面试被虐记,90%被问到的JVM...

    阿里P5二面面试题

    "阿里P5二面面试题" 以下是根据给定文件信息生成的相关知识点: 1. UITableView_cellReuse机制 在iOS开发中,UITableView使用cell重用机制来提高性能。cell重用机制的原理是在UITableView中维护一个可重用cell池...

    阿里 面试题 总结

    阿里java后台开发面试题总结

    阿里巴巴Android面试题集(答案解析)1

    阿里巴巴的Android面试题集主要涵盖了计算机基础、数据结构与算法、Java编程、Android技术以及一些扩展领域的知识。以下是对这些知识点的详细解析: **第一章 计算机基础面试题** 这部分通常包括网络、操作系统和...

    阿里巴巴java面试题目

    阿里巴巴java面试题目,涵盖全部的Java高级技术,数据库技术和分布式相关技术。

    java面试(包含阿里面试题).rar

    这份"java面试(包含阿里面试题).rar"压缩包文件提供了全面的准备材料,帮助求职者为Java工程师的职位做好充分准备。 1. **最新葵花宝典.Java软件工程师笔试面试必备.doc**:这份文档可能涵盖了Java基础知识,包括...

    阿里巴巴面试题

    阿里巴巴面试题

    阿里Java面试集锦

    在IT行业中,面试准备是至关重要的环节,尤其对于像阿里巴巴这样的技术公司来说,面试题目往往涵盖广泛且深入,考查应聘者的技术功底和问题解决能力。这份《阿里Java面试集锦》中所提到的议题,几乎覆盖了Java开发的...

    超详细的阿里面试问题总结-错过无.docx

    阿里巴巴超详细面试题目总结 本文档总结了阿里巴巴2020年校招面经和面试题目,涵盖了Java后端技术栈的各方面,内容非常详细。以下是根据给定的文件生成的相关知识点: 1. Java基础知识: * HashMap的理解和put...

    阿里巴巴面试大礼包(最近几年阿里巴巴笔试和面试题)

    阿里巴巴作为中国乃至全球知名的互联网科技巨头,其面试过程备受求职者关注。这个“阿里巴巴面试大礼包”涵盖了近年来阿里巴巴在笔试和面试中所使用的题目,旨在帮助求职者更好地准备,提高成功通过的可能性。以下是...

    阿里面试题总结

    根据给定文件的信息,我们可以将其中涉及的知识点归纳总结...综上所述,准备阿里面试的关键在于全面而深入地理解所涉及的技术知识点,同时也要注重沟通能力和个人素质的展现。希望以上总结能够帮助你更好地准备面试。

    程序员面试宝典-阿里

    计算方面则包含一些数学或逻辑推理能力的题目,如“最后的胜者”、“找出二叉搜索树的第2大的数”等,这些题目往往需要面试者具备一定的数学基础和逻辑思维能力。 对于需要刷题的朋友们来说,书中的“免费刷题神器...

    java面试题大全(阿里面试题)

    Java面试题大全,尤其是阿里面试题,是求职者准备Java开发者职位面试的重要参考资料。这份资料集涵盖了广泛的Java编程、设计模式、数据结构、算法、框架、数据库、并发等多个领域的知识点,旨在帮助求职者全面理解...

Global site tag (gtag.js) - Google Analytics