网易挂经,希望大家探讨一下面试题。

杭研Java岗
8月25号面试,为了这场面试准备了好久,本以为至少能有个二面吧,没想到一面就挂了。
总结一下挂的原因:
1、迟到。签到完后,有点紧张,一直再想这道怎么回答,那道题怎么回答。没注意微信的推送(微信端电脑退了,但是手机端仍然显示电脑在线,提示没有声音),然后六七分钟后前台叫我,我才去的。可能因为这样,面试官对我有点意见,然后感觉面试官一问我问题,我就知道我要GG……并不是难,而是简单,简单到和我看的面试题难度差了太多。
2、没有拿得出手的项目。或者说不懂得说出这个项目有什么难点吧……,我直接说,这个项目当时可能有难点,但是现在感觉没难点……
3、回答问题的时候可能没有get到面试官的点。等下会说说具体哪些。
4、接触面不够广。面试官问我除了Java之外还有什么其他的东西。我说之前学过python,写过爬虫。他又说有没有云计算或者大数据、人工只能方面的。我说没有。感觉这也是比较重要的原因吧?
5、最重要的一点,就是自己还是太low。
面试题:大部分都比较简单,我说几题我认为没有回答好的,以及有点深度的问题。
1、单例和多例的线程安全。这题我感觉我没有get到面试官的点,回来之后和同学探讨才感觉可能回答得不好。
2、synchronized和Lock的区别。
3、ConcurrentHashMap相对与HashMap在并发安全上面有什么优化。
4、ConcurrentHashMap和HashTable区别。
回来之后突然对3、4两题有了疑惑,就是有种回答不好的感觉。希望大家能给我详细得说一下。因为我并没有在博客上看到比较满意的回答。
5、full GC的时机(严重怀疑这个问题,是作为我的道别题,这是他唯一一题与JVM相关的……)。这题我也没有在网上找到比较满意的回答。我自己总结了一下:
一、当老年代的对象大小到一定程度时。
二、由minor GC引发的。两种情况,一是不允许担保,当新生代对象总大小大于老年代连续可用内存空间时。二是允许担保,当历代新生代晋升至老年代的平均大小,大于老年代连续可用内存空间时,直接full GC;当历代新生代晋升至老年代的平均大小,小于老年代连续可用内存空间,并且minor GC失败时。
这题希望大家可以探讨一下。

第一个面经,借此给大家提供错误参考,也希望大家能给我解惑。如果能把五题都说得细致一点,自然是最好啦。

#网易##Java工程师##面经##秋招##内推#
全部评论
1.单例和多例的线程安全:单例不是线程安全,所有线程都操作同一个对象,比如servlet。多例是线程安全的,比如struts2的action,每个线程都有独立的action来维护值栈。 2.synchronized是关键字,jdk实现的,可以修饰方法以及代码块,不用自己释放锁,lock是类,代码实现的,只能修饰代码块,需要自己释放锁。往深层次挖可以从对象头说起,锁膨胀,monitor的contensionlist,enrtylist,waitset说。lock可以从aqs说起,讲源码。 3.crm线程安全hm不是,1.7通过分段锁形式减少锁的粒度来增加并发度 1.8通过cas+synchronized的形式来实现线程安全。 4.hashtable的父类是Dictionary,初始值11,2n+1扩容,所以index方法不会用位运算来优化,并且方法用synchronized修饰,太保守,多线程并发很差,crm的线程安全策略同上,并发程度比hashtable要好。 5.fullgc时机,minorgc还要分2种情况分析(是否开启内存担保),老年代空间不足,方法区空间不足,执行system.gc有可能执行fullgc。
点赞 回复
分享
发布于 2018-08-26 22:36
楼主辛苦了 第2点是个雷区,答得好会是个加分项 第4点我觉得结合应用场景说会更好,比如我用爬虫爬过xxx等等
点赞 回复
分享
发布于 2018-08-26 21:53
小红书
校招火热招聘中
官网直投
还有cms会在几次oldgc后开始一次fullgc
点赞 回复
分享
发布于 2018-08-26 22:40
请问楼主面的是什么岗位呢
点赞 回复
分享
发布于 2018-08-27 08:16
技术难点的问题,腾讯面试官问过我,我都不知道怎么答……因为做完后觉得没有难点……做之前可能有。
点赞 回复
分享
发布于 2018-08-27 15:28
没事儿,会有更好的的,加油,秋招才刚开始
点赞 回复
分享
发布于 2018-08-27 15:52

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务