面试公司:度小满金融
面试岗位:Java后端开发
面试问题:
1.介绍一下自己吧?为什么非本专业的要来做这个
2.手写一个单例吧
3.集合遍历时元素时删除元素的方法
4.讲一下ConcurrentHashMap,知道啥讲啥
5.讲一讲volatile和synchronized 的区别
6.讲一下乐观锁和悲观锁
7.mysql左外连接的形式
8.联合索引abc,如果条件中只有ac,可以用到索引吗
9.如果一个sql出现在慢日志中,如何分析字段是哪个字段(面试官答案:explan,可以展示sql是如何查询的)
10.redis用过吧,现场想一个如何用redis实现分布式锁
11.#{}和${}的区别
12.一次性插入多条数据如何插入?(一下问懵了,我反复确认后得知是问)
13.@Requestbody 和@responesBody的区别
14.jquary的选择器id是什么,class是什么
15.linux命令有什么
16.docker镜像和docker容器有什么区别
17.linux查看日志命令是什么(答:cat)要是文件特别长怎么办?(我很讨巧的回答了,我们图省事就直接点开日志文件看的)
反问
1、对我有什么建议嘛?
感觉我有的明明都知道怎么回事,但是如果稍微问的深入一点点就不会了,回答的太浮于表面了。如果想长时间的呆在这个行业里,并发问题一定是跳不开的,可以在多深入学习一下,使用tomcat作为应用容器不应该作为对多线程不理解的借口,如果写代码的时候就糊里糊涂的,上线了可能会有更多的问题。要多了解sql,很多时候如果不知道自己sql的问题在哪里,就很有可能一条sql语句就把数据库写崩了。
2、能推荐两本书吗?
《深入理解java虚拟机》、《java并发编程实战》还给我介绍了一下这两本,前一本是中国人编写的,后一本是翻译的。前一本很有条理讲了jvm虚拟机的事情,后一本写的很好。



