阅读 34309 次
发表时间:2011-10-27
aws 写道
hardPass 写道
jdkleo 写道
面试的都是问他自己熟悉的东西,也许这东西你研究,你实际经历过,你映象深刻,别人也许没有这方面的经验和研究,但是你不能因为别人不懂你提的问题而否定别人,因为面试官自己也有不懂的地方吧,你用过的一个有经验的东西,你问问他,看他知道不,这帮家伙就喜欢ZB知道不。



1、第一个问题(关于HashMap的),只要是用java做开发一年以上的,就应该清楚。如果你一点答不上来,那确实够寒碜。不能总是用初级程序员的要求要求自己。

2、第二个问题(关于并发的),如果java做开发3年以上的,就应该能拿出自己的解决方案,哪怕你的方案比较粗糙,但最起码要靠谱。如果你一点概念都没有,那么,框架的组的活不适合你,请多多熟悉业务。

3、如果你能清晰的给出上面两个问题的答案,那么我们相信,即使你不会SSH,我们也不能随意否定你。

4、相反,如果你不能给出上面两个问题的有效答案 ,哪怕你SSH用的再熟,可以肆意断言:最起码目前相当长的一段时间内(至少是一年),框架组的活不适合你。


这段话我个人觉得挺2的



同感。 我做了近10年的java也从来没去看过hashmap的源码。 api这东西都有自己的局限,能满足要求你就用,不能满足你就自己实现, 目前为止还没碰到需要自己实现hashmap的情况。
发表时间:2011-10-28
我觉得API关键是看你平时做的东西用到了哪些,比如你就写服务器端没有界面的程序的,它问你AWT或者SWING的东西,你答不出来很正常,即使你以前看过AWT或者SWING,现在再看一遍也能理解

理解有些API还是有帮助的,比如在特定的场景,比如读多写少,读少写多
遍历速度,插入删除速度

要插入HASHMAP的元素个数是大致确定的时候
防止不必要的resize

有了这些上下文,你就可以根据这些来编程,这样确实是有一定的好处,但是代价就是后面维护的人也要能理解你为什么这么做,要不然还是交给JDK本身吧
发表时间:2011-10-28
hardPass 写道
jdkleo 写道
面试的都是问他自己熟悉的东西,也许这东西你研究,你实际经历过,你映象深刻,别人也许没有这方面的经验和研究,但是你不能因为别人不懂你提的问题而否定别人,因为面试官自己也有不懂的地方吧,你用过的一个有经验的东西,你问问他,看他知道不,这帮家伙就喜欢ZB知道不。



1、第一个问题(关于HashMap的),只要是用java做开发一年以上的,就应该清楚。如果你一点答不上来,那确实够寒碜。不能总是用初级程序员的要求要求自己。

2、第二个问题(关于并发的),如果java做开发3年以上的,就应该能拿出自己的解决方案,哪怕你的方案比较粗糙,但最起码要靠谱。如果你一点概念都没有,那么,框架的组的活不适合你,请多多熟悉业务。

3、如果你能清晰的给出上面两个问题的答案,那么我们相信,即使你不会SSH,我们也不能随意否定你。

4、相反,如果你不能给出上面两个问题的有效答案 ,哪怕你SSH用的再熟,可以肆意断言:最起码目前相当长的一段时间内(至少是一年),框架组的活不适合你。


说实在的,这两个问题我都不会。不知道做java web和做java有多少区别。说话不能太片面。小公司里,还是能干实事为王。
发表时间:2011-10-28
沧海一啸 写道
sgzlove2007 写道
第二个问题答案,你看下这个类的用法java.util.concurrent.ExecutorService;
其实这两个问题都很实用并且实际,不像你说的只是纯研究~

我回去后问了下淘宝兄弟公司的技术人员,是P6+的了,他们对Hashmap的这个问题也回答不上来,他们直接来了句,平时项目中用不到的。
问了第2个关于并发的问题,他们只知道多线程同步的方法,说明在项目中也没用到ExecutorService方面的技术。
无法解释。。。


建议面试官进行“内面”,面试不合格T出阿里系,每个月灭一个部门不成问题。
发表时间:2011-10-28
yawei 写道
aws 写道
hardPass 写道
jdkleo 写道
面试的都是问他自己熟悉的东西,也许这东西你研究,你实际经历过,你映象深刻,别人也许没有这方面的经验和研究,但是你不能因为别人不懂你提的问题而否定别人,因为面试官自己也有不懂的地方吧,你用过的一个有经验的东西,你问问他,看他知道不,这帮家伙就喜欢ZB知道不。



1、第一个问题(关于HashMap的),只要是用java做开发一年以上的,就应该清楚。如果你一点答不上来,那确实够寒碜。不能总是用初级程序员的要求要求自己。

2、第二个问题(关于并发的),如果java做开发3年以上的,就应该能拿出自己的解决方案,哪怕你的方案比较粗糙,但最起码要靠谱。如果你一点概念都没有,那么,框架的组的活不适合你,请多多熟悉业务。

3、如果你能清晰的给出上面两个问题的答案,那么我们相信,即使你不会SSH,我们也不能随意否定你。

4、相反,如果你不能给出上面两个问题的有效答案 ,哪怕你SSH用的再熟,可以肆意断言:最起码目前相当长的一段时间内(至少是一年),框架组的活不适合你。


这段话我个人觉得挺2的



同感。 我做了近10年的java也从来没去看过hashmap的源码。 api这东西都有自己的局限,能满足要求你就用,不能满足你就自己实现, 目前为止还没碰到需要自己实现hashmap的情况。


大言不惭!
工作这么多年都是得过且过?
只要你需要使用某个类,你就应该好好了解下这个类——不管这个类是JDK里的,还是你的同事写的,
如果你觉得看源代码吃力,没人逼你,你可以去看API文档,文档写得清清楚楚!
这要你把API看了,回答面试官不成问题,initialCapacity和loadFactor本身还是HashMap构造函数的参数。
源代码不看也罢了,但如果你连API都懒得看,也没什好说了。

当然了,很多人只用HashMap无参数的那个构造函数,这在大多数项目中确实足够了。
正如我所说的,如果你对技术不感兴趣,那就多熟悉熟悉业务领域。
相反,如果你自诩自己愿意在技术上能够有更深入的发展,那么你的好奇心都会驱使你去了解其他的构造函数。

另外,至于有没有人要求你自己实现HashMap,那和你的工作经历有关。
工作10年只做业务系统的,还是很多的,并且最后转行需求、管理的占大多数。
即使有这样的需求,也要考虑适当的人选。


发表时间:2011-10-28
为什么哥面试时候就碰不到这些问题啊...
1、知道hashMap的内部结构,即数组加链表,以及知道hashMap的扩容规则,回答这个问题会有难度?
设置良好的初始大小和扩容参数,在构建高效率的缓存时,怎么会派不上用场呢?
2、可以考虑用FixedThreadExecutor,size为3;
也可以用Semaphore,面试官倾向于后者吧,我也倾向于Semaphore;
别说这个用不到,在控制有限资源访问量时,用处大得去了!

一个关于集合框架,一个关于并发框架,都是JDK极其美妙的东西啊!

楼上的们说用CountDownLatch的,不熟悉基于AQS的Synchronizer...
发表时间:2011-10-28
huhuanqadn 写道
hardPass 写道
jdkleo 写道
面试的都是问他自己熟悉的东西,也许这东西你研究,你实际经历过,你映象深刻,别人也许没有这方面的经验和研究,但是你不能因为别人不懂你提的问题而否定别人,因为面试官自己也有不懂的地方吧,你用过的一个有经验的东西,你问问他,看他知道不,这帮家伙就喜欢ZB知道不。



1、第一个问题(关于HashMap的),只要是用java做开发一年以上的,就应该清楚。如果你一点答不上来,那确实够寒碜。不能总是用初级程序员的要求要求自己。

2、第二个问题(关于并发的),如果java做开发3年以上的,就应该能拿出自己的解决方案,哪怕你的方案比较粗糙,但最起码要靠谱。如果你一点概念都没有,那么,框架的组的活不适合你,请多多熟悉业务。

3、如果你能清晰的给出上面两个问题的答案,那么我们相信,即使你不会SSH,我们也不能随意否定你。

4、相反,如果你不能给出上面两个问题的有效答案 ,哪怕你SSH用的再熟,可以肆意断言:最起码目前相当长的一段时间内(至少是一年),框架组的活不适合你。


说实在的,这两个问题我都不会。不知道做java web和做java有多少区别。说话不能太片面。小公司里,还是能干实事为王。



我想你所说的“干实事”可以理解为“快速实现需求所要求的功能”,以完成项目为目标,这没有问题。

何止这两个问题答不上来,我还遇到过一个工作多年的技术总监,他还能断言HashSet没有add方法呢。


发表时间:2011-10-28
其实我觉得,像淘宝这样招技术人员,通过几个问题来判断一个人的技术是否到位。我感觉方向有点偏了。因为目前技术更新的速度很快,新技术层出不穷,就连java最核心的jvm和底层实现都在逐步更新优化。判断一个人是否适合技术研究,要观察这个人对技术热爱度和平时关注哪些技术。也就是说是否有研究技术的潜力
发表时间:2011-10-28
大脑比较木讷,看源码看不出什么东西来,哎....
发表时间:2011-10-28
刚才看 了一下API。
Global site tag (gtag.js) - Google Analytics