
广东某上市公司初级Java开发面试分享-25届双非
前言
感谢鱼皮,跟着做项目近半年,确实是学进去了,面试鸭也时不时刷一下,算是知识掌握的不错。lz25双非0实习,艰难寻找实习和投校招,结果颗粒无收,没想到最后柳暗花明又一村。两周后简历被HR捞起来了,然后就是光速一面二面hr面,一天面一个,两个面试的时间原本都是半小时,结果一面聊着聊着一个多小时过去了,问题基本都答出来,基本全是在面试鸭上面刷过的,三个小时后通知进行二面。二面是技术总监面,疯狂拷打api项目,又是聊着聊着起来了,还是因为他有事才中止了,仅仅半个小时就通过让HR面。
一面
某个技术人员面,上来问了一些基本情况,然后就是经典八股文,不过记得不是很清楚了
1.HashMap的原理,红黑树什么时候转,jdk1.7和1.8有什么区别 2.synchronized的一些原理,当时不是很清楚他想问什么,就讲了是根据jvm监视器和对象头,锁升级之类的 3.spring的IOC、AOP是什么?AOP怎么实现?怎么使用AOP,哪些场景?讲了讲切点和动态代理 4.上面提了动态代理,他就问我有哪些,我以为是proxy哪些类,但是问的是jdk和CGLIB,就讲了一下需要接口和没接口,提了一下从面试鸭看到的那个CGLIB取代JDK可能的原因,面试官好像觉得挺有意思的 5.Bean是单例的吗?是不是线程安全的?这里我提到了避免使用共享变量。两个注入注解的区别? 6.spring事务传播机制?我脑子一抽,说了mysql的隔离性,被面试官提醒了一下,然后又转回来了。嵌套事务了解吗?用过,没深入 7.知道spring容器吗?Applicationcontext的原理?我以为是说tomcat然后他说不是,我也不是很熟(感觉面试鸭可以增加一些这部分的题目) 8.如果想线程有自己使用的变量怎么办?我就讲了下使用线程安全的类,使用redis,现在感觉应该想问的是ThreadLocal 9.线程池的状态?我还以为问错了,面试官说就是线程池的,不懂,我就讲了讲参数,怎么工作的。 10.线程池怎么设置核心线程数和最大线程数?分CPU和IO 11.线程池有哪些拒绝策略? 12.线程的状态?这次就是线程了 13.知道线程本地变量吗?ThreadLocal?这个是真听岔了,上面刚说完线程池的参数,我还以为是指线程的参数,然后直接说不了解,后面复盘才反应过来问的是ThreadLocal,不过好在没有影响后续 14.我做了OJ和API两个项目,面试官问在项目怎么使用多线程?我是懵的,没想起在哪用了,就说了在早期时候为了让用户能及时知道提交是否成功,使用了多线程来进行异步操作,后面改用了MQ。面试官就说,嗯做异步,MQ也能实现。 15.假设你在网页上查询要很久,你要怎么排查?先看是否是网络问题,然后看后端对应代码,确认问题出在哪,再看是不是SQL语句有问题,有没有使用索引?还是错误使用索引 16.你刚才提到了索引失效,什么情况会失效? 17.你说有一定微服务经验,你知道哪些组件? 18.Nacos除了做注册中心还能干什么?配置中心。能否热部署?能,但没用过
反问 工作地点?广州 多久结果?很快,三个小时后发通知说过了
大概就是这些,spring cloud和spring boot没怎么提,redis没提,mysql也没提,多线程并发相关的问了很多,公司的业务好像也是并发量比较高的。
二面
二面是技术总监面,上来先让我发个简历,然后对着我的简历就开始拷打项目,感觉是真的有实力的,问了一些我想不到的问题,搞得开头我很紧张
1.做了OJ和API项目,介绍一下这两个项目?oj没问,重点问了api 2.为什么用Dubbo?好像Dubbo不是很流行,还是Spring cloud那一套?这个我是真的不会答,一直在那重复简单,像依赖注入一样直接使用,负载均衡这些 3.讲讲这个SDK怎么做的吧?引入了哪些库?这个我就讲了讲设置bean,怎么让spring自动装配,后面库就说了xml引入的那些,但是我感觉他想问跟我想的不是一个东西,我现在也没想明白,这可能是眼界不一样吧 4.SDK有没有使用spring boot?我还在想怎么跟springboot扯上了,但是其实他问的是这个sdk是基于spring boot开发的,那么有没有考虑过适配性的问题?别人的jdk版本不一样?语言不一样呢?这个是真没想过,就当场思考了一下说了下思路 5.gateway网关是怎么工作的?讲了讲过滤器,然后开始被疯狂拷打了,他以为sdk和dubbo都是通过gateway的,然后我说dubbo是内部服务,sdk是用户使用走网关 6.既然你使用了dubbo,那么你是又开发了接口来使用吗?这个其实我没理解,不知道是他没用过dubbo还是我理解错了,我就说有公共接口,他就哦 7.如果用户调用sdk,网关没法调用服务怎么办?重试,返回一些有用的错误信息
反问 技术栈?spring boot、spring cloud
好像不止这些问题,但是我想不起来,他没有问很多的具体技术细节,而是很多设计思想,解决方案,关于gateway问了很多问题,都是跟实际的业务有关,面着面着又是半个小时变一个小时,他有事才突然中断了,半个小时后通知HR面。
总结
整体体验还是不错的,过程有些紧张答不出来,面试官语气也很好,会给我提示一。,一面是八股文却又不完全是,面试官应该是实际的技术人员,会结合他碰到的情况来问。二面的技术总监是真让我感觉到眼界的不同,我想的技术细节,他却问是解决方案、设计思想,不过也没关系,经验是可以慢慢积累的。心情从七八月的好好准备到十十一月的摆摆烂,再到十二月的3k单休我也干,这下算是有着落了,直接就是校招岗,毕业就能入职,再一次感谢鱼皮,感谢面试鸭,这一次面试真是筋疲力尽了,却也让我感觉到我的技术还是足够的,我确实是学到了东西的。
后续
入职快两周了,965,七小时,双休,除了工资相对来说低一点,其他我都很满意,氛围轻松,九点上班,我八点半到,九点05才有人来,九点半吃完早餐,令人不禁感叹,技术栈用的也很新,公司规模也大,开发流程很正规,jenkins+k8s+docker自动化,还有jira做项目管理,业务也比较广,不过主要方向是外贸,跟zf和大企业对接,不算出名,我目前负责的这个,一张表有七十亿个数据,刚来的时候人都昏了,不过还是前辈写的好,出错的只有几十条,处理起来还算简单
