零 注意
1 少说内个,然后
2 录音,复查不足
一 自我介绍
xx你好,我是xx。前年我在xx参与了xx微服务模块开发,测试,用到了sc框架。之后在xx参与xx开发。去年在xx负责xx开发,用的xx框架。
二 问题
*2019/12/03
1 保全流程
2 事务传播7种
3 服务调用feign、注册中心eureka原理
4 lambda——匿名函数 Xx x = a->{方法体}; 循环xx.foreach(x->{方法体}); 流 xx.stream().filter()...sort();
5 restful
6 写sql
*2020/1/9
1 springcloud用过哪些组件?——网关zuul,注册中心eureka,服务调用feign,负载均衡ribbon,熔断器hystrix,配置中心apollo(其它例如中间件mq,缓存redis,分布式事务lcn)。
2 开发中遇到的问题?——(分布式事务不常用,按面试听到的说法连阿里都不敢用);循环微服务调用时会出现调用失败,原因为调用次数超过熔断器线程隔离的线程池数量,调大配置解决(hystrix.threadpool.default.coreSize:50)。sql关联查询保单表时速度较慢,给保单表保单号添加索引解决。
3 中台的理解?——介于前后台之间建立一个中台,区别于传统的前后端在一起的项目,中台前后端分离,对外提供的是接口,web前端框架、移动端以及其它第三方都可以对接这个中台,中台再定期与核心做数据同步,可避免一套系统开发一套后台的冗余工作。
4 feign用法/原理?——建立接口类,注解服务名,接口方法与被调用方法保持一致。本地调用feign方法,feign动态代理中的负载均衡ribbon会根据服务名从注册中心拉取的地址列表中,根据算法确定一条地址,拼接feign接口方法注解的地址得到最终调用路径,再由熔断器hystrix调用,若失败并重试达到配置次数后进入熔断方法降级处理。
5 配置中心用法?——微服务设置自己的id,启动时从配置中心拉取id对应的配置内容,方便管理不用重复配置application.properties/yml。
6 注册中心用法/原理?——注册中心接受微服务的注册,缓存地址,监听微服务的心跳,向微服务提供地址列表,注销下线的微服务;微服务注册、拉取地址,定时发送心跳说明自己在线。
7 mq队列特点(选型/区别)?——kafka吞吐量大,无确认机制,不能持久化;rabbitmq有确认机制,更安全,效率低些;activemq资源消耗大,只有两种模式;zeromq已不维护。
8 rabbitmq的模式?——1一对一生产消费2一对多队列3订阅发布4发布到交换机绑定的所有队列5发布到通配符匹配的队列。
9 配置中心与mq?——配置中心用到订阅发布模式,配置中心为发布者,拉取配置的微服务为订阅者/消费者。
10 mq会重复消费、漏消费?——可能。订阅同一队列的消费者若确认机制不完善可能重复消费、漏消费。
11 mq着急的任务可以先消费?——创建优先队列。
12 mq确认机制?——生产消费都有确认机制。
13 mq批量确认——相比每条都确认一次效率更高,可优化。
14 mybatis一级缓存、二级缓存作用域?——一级会话,二级应用。一级缓存本次会话内相同sql只首次查库;二级缓存所有相同sql只首次查库,直到更新。
15 mybatis二级缓存更新条件?——到期、本namespace中发生增删改。
16 mybatis清除缓存机制?——一级缓存随sqlsession销毁;二级缓存在namespace发生增删改时清空。
17 mybatis三种执行器?——1简单执行SIMPLE,每次执行都创建断开连接;2预处理REUSE,连接不断开;3批量BATCH,批量执行sql,代码中的执行不会立即生效。
18 设计数据库相关。
19 oracle、mysql区别——分页、单引号双引号、函数、提交、默认隔离等级。
20 sql优化——表顺序、关联条件索引、模糊查询、不用*、or和in换成union。
21 oracle的from子句从右到左执行,数量少的基准表应在右侧。10g之后自动优化表顺序。
*2020/1/14
1 你的简历偏向业务啊。——bb
2 数据库熟悉哪个?——oracle/mysql
3 oracle存储过程写过没,如何调用?——select子句中 过程名(参数),java调用,用到CallableStatement包
CallableStatement pstm = connection.prepareCal("{xxx(?,?)}");
pstm.setObject(1,2);
pstm.registerOutParameter(2,OracleTypes.NUMBER);
pstm.execute();
Out out = pstm.getObject(2);
pstm.close();
4 存储过程定义字符串?——declare xxx varchar2(n);
5 sql优化?——上部分
6 mysql的索引类型?——全文索引FULLTEXT用于文本模糊查询、HASH键值对用于=查询不适合范围排序组合查询、树形BTREE默认、RTREE少用比btree范围查找快。普通索引、唯一索引(可null)、主键索引(不可null)、组合索引、全文索引。
7 微服务常用注解?——SpringBootApplication、controller、restcontroller、service、requestmapping、requestparam、transcation、mapping
8 事务场景举例
9 做过运维,上线,发版?sz rz命令、winscp可视化、get、ps -ef线程、kill -9杀进程、java -jar 启动
10 linux系统熟悉么?如何查看日志?——命令tail -f实时查看、more vim查看内容、下载查看
11 介绍项目
12 api的json格式不同,有无requestid、jsonid,中台如何接受参数?——requestid用于日志跟踪,入参有则可以用,无则生成
13 写sql,表(id,name,uperid)——...where id=(select uperid ),还有in、自连表
14 mybatis赋值方式?区别?——${}#{},${}占位符防止注入
15 设计模式?单例有几种?懒汉饱汉区别?代理模式哪里用到?——单例工厂代理外观。spring切面、注解
16 写过算法?数据结构?排序算法?冒泡排序?——mini-max算法(棋盘)、回溯算法(机场)、贪心算法
17 stringbuffer、stringbuilder区别?——线程安全、效率,都是可变长
18 线程实现方式?区别?用过哪个?——实现Runnable、继承Thread、Callable。Thread只能单继承,不好扩展;Runnable没有返回值;Callable有返回值。RC底层有T。
19 加班多不多?--
20 python熟悉么?——三方库、flask
*2020/5/11
1 自我介绍
2 用的jdk版本——(要了解你是否接触过此公司使用的版本)
3 mvc各层使用的技术——控制层spring等,持久层hibernate、mybatis、jpa等
4 java8新特性的流常用方法——filter、sort、collectors、forEach、map、limit、统计
5 用到的设计模式举例,好处——例如工厂模式,用在xxx,方便增改维护,不需改变原有代码
6 毕业年份,学校在哪,是几本,大学学过什么,重点学了什么,培训过没,谁组织的培训,交过钱没——。
7 有跳槽想法么——。
8 线程有哪些了解——继承Thread,实现Runnable接口,实现Callable接口,LocalThread通信等
9 mq有哪些了解——确认机制,持久,集群,对比,用处
10 数据库同义词,复杂sql哪些方面用的比较多——同义词是建立的表别名,查别名等同查原表名。连接查询,存储过程等
11 哪里用到过存储过程——xx业务
12 熟悉哪些保全项(业务)涉及到钱的如何处理——例如xx流程要计算本年费用,然后处理后几年费用,修改状态,再存入给付表,由财务提档处理
13 有什么想了解的——。
14 新契约了解什么(业务)有人核么,流程都参与过么——介绍新契约流程
15 接口并发量大,有哪些优化方法,接触过哪些——数据库建立索引,优化sql;持久层优化查询,减少连接次数;业务层优化逻辑,避免3层以上循环嵌套,去除冗余逻辑,微服务调用设置合适的参数;使用缓存、队列,一些业务可解耦异步处理;提升硬件配置,分布式架构增设更多微服务等
16 后端查询sql倾向写一句复杂sql还是写多个简单sql——倾向写一个复杂sql,减少连接数据库次数,提升效率