一面(技术面,20min)
和普通一面类似,都是简历面。
自我介绍 balabala
开始问我实习的单位的情况。就是一个水水的有点国企性质的软件公司(学校安排的实训)。问我做了什么,其实我真没做什么,就胡乱说了一些,扯到了 Spring Boot。
Spring
开始问 Spring Boot 和 Spring 的区别,你觉得 Spring Boot 哪里好。
网络
访问一个网站,比如 www.baidu.com 的时候,是怎么个流程。这个问题我被问了两次,给同学整理要点的时候也整理进去了,可我TM就是没去看,该死。
HTTP 1.0/1.1 的区别。长连接是怎么实现的。
缓存数据库的一致性
MySQL的底层实现原理
接口幂等性
分布式事务的解决方案
集合的相关知识
索引优化
springboot的自动装配原理
银行驻场项目,面试开始前,面试官先说明了驻场银行内的各种限制条件:内网环境开发;上班打卡不能迟到,迟到一分钟也需要提交请假申请,忘记打卡没法补,上班时间出办公大楼不得超过30分钟;加班需要996,一年周期内前80小时只能调休,80小时以上才可以申请加班补助等等。然后面试官问一些基本的技术问题:主要问了一些springboot的基本执行流程,注解,@transaction的事务是怎么执行的,mysql优化sql查询。
面试官问的面试题: springboot如何加载第三方包?
我说,添加依赖到mvn或gradle配置文件中,在程序中引用三方类库的依赖。
如何用注解让springboot加载自定义的class类文件?
用@Bean声明一个方法,返回一个自定义class类对象。使用@commpent,@service,@Respository等注解。
springboot的@Transaction注解的本地事务是怎么执行的?
我懵圈了,不知道
面试官人很好,先介绍了整个面试流程
先写了一道算法
给一个字符串,求字符串第一个只出现一次的下标 空间复杂度On,时间复杂度On
算法题很简单,但是当时脑抽了一直在想怎么一次遍历做出来,实际上用hashmap两次遍历就OK
算法题写完感觉凉凉,后面问问题刚开始的答题也被算法影响了状态很差、后面倒是调整过来好转了
有哪些集合类
hashmap是在collection下面的吗 不是 是在map下面
ArrayList和LinkedList的区别
线程安全的集合
copyonwriteList如何保证的线程安全
hashmap底层原理
为什么从头插改为了尾插
concurrenthashmap底层原理
线程六大状态
线程有running这个状态吗 当时答的有 实际没有 Java里是runnable
怎么样变成等待状态
创建线程的方式
为什么推荐使用线程池创建
为什么不推荐使用Executors的静态方法去创建 这个问的其实就是为什么不推荐去创建单例线程池、缓存线程池等那四种,但是当时没听懂Executors的静态方法是什么意思,没答出来
数据库
事务四大特性
原子性怎么实现的
持久性怎么实现的
MVCC实现
redolog和binlog作用和区别
两阶段提交redolog和binlog
索引的底层
为什么要用b+树
索引失效的场景
sql慢查询优化
回表查询