Java|面试官:开口要25K,我就用了2成功力,把你问到怀疑人生(Java)
文章图片
文章图片
文章图片
【Java|面试官:开口要25K,我就用了2成功力,把你问到怀疑人生(Java)】
文章图片
文章图片
文章图片
导语
本文是一位粉丝朋友前段时间的真实面经经历 , 面的是蘑菇街 , 恰巧面试官就是敖丙 , 现在敖丙已经去腾讯就职了背景介绍:
工作经验:Java开发5年
学历背景:重庆邮电大学(信息安全专业)
工作经历:主要业务在柬埔寨做移动支付钱包(聚合支付的项目 , 让柬埔寨当地华人能使用微信、支付宝支付)
注意:以下内容均为真实面经分享 , 大家可以认真阅读完 , 看下这些面试题你是否能答的让面试官满意 , 同时我也会分享一些面试的小技巧给大家 , 主要告诉你如何准备简历 , 如何准备面试 , 2020大厂面试真题分享(含答案) , 哪些学习资料值得看 。
话不多说 , 下面一起跟着这位粉丝朋友面试经历来看看他的面试之旅吧 , 另外 , 下文中涉及到的面试题答案、复习资料 , 均有完整PDF版分享 , 关注+转发后私信我「666」即可~
面试官:自我介绍一下吧
程序员:你好 , 我毕业于XXX , 工作5年了 , 最近的工作主要是负责XXX(见以上背景介绍)
面试官:看到你写到熟练掌握Java语言的高级特性 , 简单介绍一下Bean SpringBean一个注入过程吧
程序员:Bean的注入过程......首先是从配置文件(注解)里面把它和对象.....额 , 我对这方面还是不太熟悉
面试官:没事没事....我们接着往下聊
程序员:尴尬一笑
面试官:我看大你写到你了解一些高级特性 , 你能给我简单的介绍一下Java8有哪些新特性吗 , 或者你比较擅长的新特性有哪些?
程序员:Java8主要就是在语法上就是lambda表达式 , 它可以用函数式进行那个函数式编程 , 函数式接口的意思就是它这个接口它只有一个方法.....
面试官:还有别的吗?
程序员:还有一些流的操作 , 比如:Stream API它可以简化编程语义 , 显得更清晰 , 比如在做一个filter功能 , 就可以绑定数据把不符合要求的数据过滤掉 , 就在以前的话写一个for循环 , 看起来就没那么好理解....然后对于数据结构进行了一些优化 , 像ConcurrentHashMap , 它底层实现改成了红黑树.....
面试官:你刚刚说的都是一些优化 , 我问的是它新加的一些高级特性
程序员:再次尴尬一笑.....
面试官:你刚刚提到它的流式处理 , 那对比像foreach或者基本的for循环 , 它有没有在效率上进行优化 , 还是说它更慢了?你有去了解过吗?
程序员:额...没有
面试官:我看你说对并发编程有些了解 , 你能跟我讲一下Synchronized和Lock锁它的底层实现原理吗?
程序员:啊....Synchronized是一个语义级的支持 , 它在一个对象头里面 , 它有一个Mark Word的标记去记录它的锁 , Lock显示锁是利用了它底层是一个AQS , 它式一个双向链表的先进先出的一个队列 , 它只有当前持有锁的线程就是一个对头 , 然后它释放出来之后 , 就会利用一个自旋的操作 , 让下一个线程作为队头这样子
面试官:那它们两个分别是什么层面的呢 , 是jdk层面还是JVM层面 , 还是?
程序员:Synchronized是JVM层面的 , Lock是jdk层面的
面试官:刚刚你说到了Synchronized , 你有去了解过它锁方法、锁对象和锁代码块分别是怎么去实现的吗?
程序员:额.....这个没有
面试官:那你了解Synchronized锁升级过程吗?
程序员:没有....
面试官:那刚刚提到了Lock , CAS你能给我简单的介绍一下吗?
程序员:CAS就是比较并交换
面试官:恩恩 , 提到这点就可以了 , 那你有在实际开发过程中有实际的一些应用吗?应用到乐观锁的一个过程
程序员:有的 , 就譬如 , 我在更新数据库的时候 , 如果一个数据库用的是乐观锁的话 , 我也用一个自旋的操作 , 就把他更新到成功为止
面试官:自旋的效率会不会很低?如果一直取不到这个锁的话 , 那可能会造成一些线程堵塞 , 或者在高并发场景下其他的会影响到很多效率 , 有考虑到这个问题吗?
程序员:也考虑到了.....如果并发高的时候确实不太适用用自旋 , 这个时候更适合用悲观锁
面试官:那跟我聊一下线程池吧
程序员:线程池是.....我还是先说一下它的工作流程 , 再变成先提交进来 , 它先进入核心吃里面 , 如果线程书大于coreSize , 就会进入一个阻塞队列 , 阻塞队列满了后就会新建一些线程 , 进入最大的池里面;当线程数 , 连maxSize的超出了之后 , 它就会执行一个拒绝策略 , JDK自带的拒绝策略有四种:一种是直接丢弃;一种是抛异常;一种是由调用者的线程执行;一种是丢弃阻塞队列里面等待时间最长的一个线程
面试官:我看你简历上还提到了熟练掌握JVM调优的知识 , 我能问一下你了解它调优的一些基本步骤吗?
程序员:啊....一口老血 , 调优的基本步骤....就譬如 , 我从...恩..我从OOM说起吧....如果生产上发生一个OOM异常 , 首先是要判断它是在堆里面发生的还是元空间里面 , 还有......它还有一种类型就是GC效率过低.....吧啦吧啦
推荐阅读
- 驾驶|LPL解说鼓鼓透露:进入联盟后被管理层“面试”8次,已经留下阴影
- lpl|LPL女解说陷入内卷!鼓鼓习惯衣服开口,骆歆无限裙子开叉
- t1|Teddy塞纳300层被动当奶妈?我现在去T1面试AD还赶得上夏季赛吗?
- 我的世界|我的世界:Java种子新出炉,内陆蘑菇岛算什么,这些种子它不香?
- switch|经典胡说八道,LPL观众再度被一笔姐支配,虽说许久没见,但一开口还是老味道
- 女主播|虎牙“在石250”重整公会,直播面试女主播过程,说自己是纯帮忙
- 碧蓝航线|碧蓝航线黑皇家方舟情报公开 一开口就是老狱友 驱逐舰末日到了
- 旭旭宝宝|DNF:号主狮子大开口!改9手炮要15W,旭旭宝宝坦言过于离谱
- theshy|IG为赢RNG拼了,苏小洛面试前TES教练,Theshy也扩展英雄池了
- 孙尚香|口袋试训QG,刺痛面试:你能给我们带来什么?口袋:我孙尚香能带飞!