该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-20
一个从业10年的人员被问这些问题,感觉是一种羞辱,28岁,如果是一个研究生,也就2-3年的工作经验
|
|
返回顶楼 | |
发表时间:2012-02-20
hashmap 有冲突又如何啊,hash的碰撞是难免的,但有解决冲突的方案,大学的算法设计不就提供了几种吗?sun的工程师在实现hashmap的时候就解决了这问题了,只要数据量不要太大,也不会影响查找的速度,我觉得lz的回答没问题啊
|
|
返回顶楼 | |
发表时间:2012-02-20
ffychina 写道 wensen 写道 肯定不是技术才让阿里巴巴这么牛的啦,马云搞死的网站还少吗?雅虎,阿里妈妈等。话说回来。阿里的P6能给一年30万吗?
查历史贴,不行,除以2吧。 不会吧,包括奖金就那么点。去毛啊。。。。 |
|
返回顶楼 | |
发表时间:2012-02-20
ffychina 写道 他们以为在阿里就很牛,处理淘宝超大数据量就很了不起,很可惜,我觉得淘宝最成功的不是能处理超大数据量,而是运营得很成功,战略定位很有眼光,阿里巴巴b2b,淘宝c2c,支付宝,淘宝商城和阿里旺旺在网商战略上都占了制高点,把供应链的每一步棋都下准了,而且支付宝带来巨大的现金流,给b2b和c2c不断充血,才能取得今天的成就。超大数据量?这只是一个很小的技术问题罢了,因为我可以很肯定地说,看得到的问题就一定不是问题。一方面,阿里内部有大数据量处理的经验的积累,随便都能找到解决方案,另一方面,即使没有经验积累,而公司官僚化严重,出现牛人怕教会了徒弟饿死师傅这样落后的阿里文化,难道就会难倒真有能力的人吗?从面试中感觉到阿里文化应该很注重技术追求,靠提升技术来升P值,把技术的意义给扭曲了,是否有团队协作精神实在很让人怀疑。 lz此言差矣 另,一次面试而已,对上眼很重要,也没必要上纲上线的 |
|
返回顶楼 | |
发表时间:2012-02-20
backshadow 写道 ffychina 写道 look12345 写道 ffychina 写道 colin4k 写道 引用 面试官说了我没有一个问题回答正确,我完成不懂hashmap,hashmap在超大数据量如几千万条记录时,会有可能出现hash碰撞,不同的key有可能被覆盖。
LZ你虽然没遇到这种情况,但这个情况确实是存在的,建议LZ淡定一些,同时以更加谦虚的态度对待自己不了解的方面 其实我已经说了,hash碰撞很正常,是否会覆盖key,关键在于hashcode()的算法,int才32bit,超过200万就会出现问题。这个问题我早在2003年就已经很清楚了,解决很简单,继承Hashmap重写所有调用到key.hashcode()的方法,这些都是程序员入门级的问题。我真的不好意思回答这种新手贴的问题。 发生碰撞的时候会再调用equals()比较,equals没错就没问题。 equals一般是不会有错误的,不可能不同的值会equals返回true,一般来说初级者会在hashcode中招,以为hashmap是通过equals判断key,而没有想到是真正的原因在hashcode上,但是,只要看一下源码就懂了,我一般带新手我都会告诉他们看一下某个类某个方法的源代码,我不直接说答案,让他们有个思考的过程,除非搞不定我才亲自操刀,这几年的确接触java代码少了很多,更多的是学习linux的系统原理,驱动开发,虚拟化和一些bash script,java花的心思比以前少了。 呃,int的最大值是21亿,超过200万会出神马问题? 确实有个Hash碰撞漏洞,故意用相同HashCode的Key攻击,但在自然情况下,没这问题吧? int是7fff ffffh, 换成十进制就是210万左右,21亿可能是long吧。 HashCode的Key攻击我没遇到过,没发言权。 |
|
返回顶楼 | |
发表时间:2012-02-20
3005218046 写道 backshadow 写道 ffychina 写道 look12345 写道 ffychina 写道 colin4k 写道 引用 面试官说了我没有一个问题回答正确,我完成不懂hashmap,hashmap在超大数据量如几千万条记录时,会有可能出现hash碰撞,不同的key有可能被覆盖。
LZ你虽然没遇到这种情况,但这个情况确实是存在的,建议LZ淡定一些,同时以更加谦虚的态度对待自己不了解的方面 其实我已经说了,hash碰撞很正常,是否会覆盖key,关键在于hashcode()的算法,int才32bit,超过200万就会出现问题。这个问题我早在2003年就已经很清楚了,解决很简单,继承Hashmap重写所有调用到key.hashcode()的方法,这些都是程序员入门级的问题。我真的不好意思回答这种新手贴的问题。 发生碰撞的时候会再调用equals()比较,equals没错就没问题。 equals一般是不会有错误的,不可能不同的值会equals返回true,一般来说初级者会在hashcode中招,以为hashmap是通过equals判断key,而没有想到是真正的原因在hashcode上,但是,只要看一下源码就懂了,我一般带新手我都会告诉他们看一下某个类某个方法的源代码,我不直接说答案,让他们有个思考的过程,除非搞不定我才亲自操刀,这几年的确接触java代码少了很多,更多的是学习linux的系统原理,驱动开发,虚拟化和一些bash script,java花的心思比以前少了。 呃,int的最大值是21亿,超过200万会出神马问题? 确实有个Hash碰撞漏洞,故意用相同HashCode的Key攻击,但在自然情况下,没这问题吧? HashMap退化成链表会影响效率我理解,可是LZ他们说的是“覆盖?”,貌似不是这个意思吧? LZ,求解释哈! 我现在认为“覆盖”这词是有问题的,因为面试官的意思应该是不同的key,拿到的是相同的content.我应该在面试时没理解好面试官的意思。 |
|
返回顶楼 | |
发表时间:2012-02-20
huanglongje 写道 LZ失败原因有三:
第一:面试官心情不好或者水平不够; 第二:面试的题目刚好是楼主不咋重视的地方,应试教育的题目不做题海难以对付; 第三:楼主心态不够稳定,你可以笑笑告诉面试官即使英语8级也会有不少单词不会,考试不过是一种形式。切莫和面试官去较劲,否则心理素质也算是面试失败了,呵呵! 千里马常有,而伯乐不常有, 我觉得求贤若渴的企业有必要成立一个选拔人才(学校海选除外)应该成立一个人才评选委员会,不能因为一个面试官的无能就埋没了千里马。 |
|
返回顶楼 | |
发表时间:2012-02-20
huanglongje 写道 LZ失败原因有三:
第一:面试官心情不好或者水平不够; 第二:面试的题目刚好是楼主不咋重视的地方,应试教育的题目不做题海难以对付; 第三:楼主心态不够稳定,你可以笑笑告诉面试官即使英语8级也会有不少单词不会,考试不过是一种形式。切莫和面试官去较劲,否则心理素质也算是面试失败了,呵呵! 千里奔波为哪庄,只为面试10分钟。被刷很正常,我只是想知道原因而矣,不问清楚,太对不起我自己和家人的支持了。小孩问得最多的就是我什么时候带他去公园玩,我说爸爸在努力赚钱,以后带你去很多好玩的地方。 |
|
返回顶楼 | |
发表时间:2012-02-20
volking 写道 huanglongje 写道 LZ失败原因有三:
第一:面试官心情不好或者水平不够; 第二:面试的题目刚好是楼主不咋重视的地方,应试教育的题目不做题海难以对付; 第三:楼主心态不够稳定,你可以笑笑告诉面试官即使英语8级也会有不少单词不会,考试不过是一种形式。切莫和面试官去较劲,否则心理素质也算是面试失败了,呵呵! 千里马常有,而伯乐不常有, 我觉得求贤若渴的企业有必要成立一个选拔人才(学校海选除外)应该成立一个人才评选委员会,不能因为一个面试官的无能就埋没了千里马。 我认为现实是:千里马常有,伯乐不常有。所以千里马要找机会让伯乐发现它,而不是等被发现。 |
|
返回顶楼 | |
发表时间:2012-02-20
richard_2010 写道 ffychina 写道 他们以为在阿里就很牛,处理淘宝超大数据量就很了不起,很可惜,我觉得淘宝最成功的不是能处理超大数据量,而是运营得很成功,战略定位很有眼光,阿里巴巴b2b,淘宝c2c,支付宝,淘宝商城和阿里旺旺在网商战略上都占了制高点,把供应链的每一步棋都下准了,而且支付宝带来巨大的现金流,给b2b和c2c不断充血,才能取得今天的成就。超大数据量?这只是一个很小的技术问题罢了,因为我可以很肯定地说,看得到的问题就一定不是问题。一方面,阿里内部有大数据量处理的经验的积累,随便都能找到解决方案,另一方面,即使没有经验积累,而公司官僚化严重,出现牛人怕教会了徒弟饿死师傅这样落后的阿里文化,难道就会难倒真有能力的人吗?从面试中感觉到阿里文化应该很注重技术追求,靠提升技术来升P值,把技术的意义给扭曲了,是否有团队协作精神实在很让人怀疑。 lz此言差矣 另,一次面试而已,对上眼很重要,也没必要上纲上线的 引SuperYang姐的一句话:JE是一个神奇的网站,你可以背后骂×××,但贴出来就是你的错了。 |
|
返回顶楼 | |