学历背景:重庆邮电大学(信息安全专业)
工作经历:主要业务在柬埔寨做移动支付钱包(聚合支付的项目,让柬埔寨当地华人能使用微信、支付宝支付)
注意:以下内容均为真实面经分享,大家可以认真阅读完,看下这些面试题你是否能答的让面试官满意,同时我也会分享一些面试的小技巧给大家,主要告诉你如何准备简历,如何准备面试,2021大厂面试真题分享(含答案),哪些学习资料值得看。
话不多说,下面一起跟着这位粉丝朋友面试经历来看看他的面试之旅吧,另外,下文中涉及到的面试题答案、复习资料:
面试官:自我介绍一下吧
程序员:你好,我毕业于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效率过低…吧啦吧啦
注意:由于内容过多,避免影响到阅读体验,下面的面试环节我就不码字了,全以截图代替了!
面试官:我看你基本上都是待了一年就离职了,你能说一下你离职的原因吗?
程序员:…
面试官:你对自己职业规划大概是什么样的?
程序员:往互联网金融行业走
面试官:你有什么想问我的?
程序员:问了一些之前没太懂的
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/d93cac2bbc07a319a1311a7d734d9ca2.jpeg)
那么如何才能正确的掌握Redis呢?
为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题
-
并发编程面试题汇总
-
JVM面试题汇总
-
Netty常被问到的那些面试题汇总
-
Tomcat面试题整理汇总
-
Mysql面试题汇总
-
Spring源码深度解析
-
Mybatis常见面试题汇总
-
Nginx那些面试题汇总
-
Zookeeper面试题汇总
-
RabbitMQ常见面试题汇总
JVM常频面试:
Mysql面试题汇总(一)
Mysql面试题汇总(二)
Redis常见面试题汇总(300+题)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
91611271)]
Mysql面试题汇总(二)
[外链图片转存中…(img-lwQOT9sq-1713291611271)]
Redis常见面试题汇总(300+题)
[外链图片转存中…(img-DfI5JiuU-1713291611271)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!