小姐姐做平安的职位有4年,接触过N多人选,以下内容是呕心沥血,日积月累整理,希望对大家的面试有帮助。
面试流程:
先说说面试流程,一般至少有3轮,2轮技术+HR面,各个子公司不一样,部份技术会3轮,技术一轮一般问基础和项目实现,技术基础过了,会侧重聊项目和业务,技术复试主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。
HR面主要就是跟你聊聊天,看看你的个人稳定性、价值观、主动性之类的, 一般HR是不会挂人的,注意谦逊,礼貌之类的,表现出踏实,积极向上,不要飘就行了,表达沟通能力要好。
要注意的点:
1、简历要清晰,1-3页为最佳,项目经历写3-5比较适合,项目需要有代表性,并表述简洁,体现出个人贡献和技术要点。
2、平安有背调, 不要合并或省略一些比较短的工作经历,一定可以调出来。
3、对于面试官的问题,想清楚再回答,如果觉得需要的时间可能比较长,可以跟面试官说我思考下、我整理下思路之类的遇到不会的问题直接说不会, 不要不懂装懂。
4、被问到为什么想跳槽的时候, 因该从自身发展等角度出发,而不是吐槽前公司或上司。 碰到面试官一上来就一副很不屑的语气,话没说两句开始diss你的项目,心太也要放平,表现出自信,从容。
平安普惠:
spring事务的底层原理,
32位操作系统和64位操作系统底层差异,
集合的原理,
数据库中的游标要注意哪些东西,
索引的原理,
微服务,多线程,高并发,都有问的,
缓存和分布式方面,
高并发缓存的设计应用,
spring,过滤器拦截器,
索引什么时候比较慢 in和exist底层的区别 优化手段,
熔断器 eureka 容灾,
技术方面问redis用来干嘛,怎么保证不重复扣款,
spring的启动过程,为啥map是线程不安全的,
需要对spring原理有清晰的认识,
springboot与springmvc的区别,
问了spring源码,aop原理,事务注解的注意事项,
空白期多长会有风险,
redis synchronize和lock的区别 ,
Kafka的分区,然后问了下我现在做的项目的结构我简单讲解了下 ,
数据库性能相关的多一些,主要是表结构方面的,再就是微服务方面的问题,还有中件间,
主要问的rabbit 消息持久化,消息丢失,ioc 和aop相关,然后最近看哪些非技术类书籍,AI大数据这块的了解等。
平安科技:
泛型的理解;
Java容器一个个说下、Arraylist(底层是一个对象数组,所以不能存基本类型,而只能存其包装类对象) 、Linkedlist底层实现、线程安全的集合concurrenthashmap等;
单例模式 代理模式 适配器模式等常用设计模式代码实现;
各种锁;
分布式系统怎么保证某个节点挂了,系统仍然正常运行?
jvm内存、jvm垃圾回收机制、jvm对String类型对象的特殊处理(加载时、垃圾回收时);
说一说往线程池里提交一个任务会发生什么?
线程池的几个参数如何设置?
线程池的非核心线程什么时候会被释放?
平安养老险:
你们现在的项目,是微服务吗?你怎么理解微服务的?(我回答不是,我们的模块粒度还是比较大应该是一个SOA)
各模块之间的调用有没有做认证(回答了下白名单,了解到有一个shiro框架,但是没有使用到)
用到的技术栈(ssm+vue+oracle等)
前端访问后端有没有用https,和http有什么区别,用到了哪些加密算法,对称非对称的加密算法有那些?(使用了证书的加密解密)
https用到了什么加密算法,加密过程?(aes、base64剩下不记得了)
解释一下Spring使用的IoC是什么?spirng的生命周期和作用域。(回答到了ioc本质上是一个hashmap,把对象bean放到里面管理,负责bean的实例化与依赖注入,作用域有sington和prototype以及他们之间的区别)
java常用的锁机制有哪些?有什么区别?(有synchronized和trylock,trylock应该是要手动解锁,具体的记不太清了)
java创建线程有哪些方式?(实现Runnable和实现Thread类,区别不记得了)
java的面向对象的概念多态、函数重载(解释了重载是编译时多态,继承(重写)是运行时多态)
jvm的内存模型(java虚拟机栈、常量池、堆、程序技术器这些)
数据库
Decode函数有了解吗?(类似一个if的判断,之前用过,现在记不太清了,然后项目中用到比较多的存储过程,说了下我们的项目在流程结束之后会调用存储过程来转存表)
存储过程怎么实现捕捉异常,怎么处理异常、怎么获取异常信息? (回答用到了savepoint,并且把异常信息写到表里,他追问怎么知道是异常,我说和java是一样的一个exception,具体是什么参数的不记得了)
java的事物怎么回滚?(回答了spring里如果给service配置了事务,只要抛出异常就会回滚当前service的事务,接着我补充了下项目中用到了自定义异常,以及通过@ExceptionHandler来统一捕捉的异常并处理)
平安重金所:
Java主要是基础,spring,springMVC,springboot,sql优化,还要项目能说清楚,覆盖面要广,
一面问些项目中的设计方案,
二面聊分布式架构设计,过程中会问用到的中间件原理,
堆外内存如何被回收?
spring中bean的生命周期是怎样的?
有做过哪些GC调优?
java NIO与BIO的区别?
Dubbo如何做负载均衡?
RocketMq如何保证高可用的?
平安租赁:
Mongledb的底层,数据库的底层,高并发的部分,
springcloud也问了,
双亲委派机制的作用?
Tomcat的classloader结构
如何自己实现一个classloader打破双亲委派
软引用什么时候会被释放
弱引用什么时候会被释放
适用ThreadLocal时要注意什么?比如说内存泄漏?
redis如何持久化数据?
CopyOnWriteArrayList是如何保证线程安全的?
平安壹账通:
数据库方面问的比较多,可能跟这个项目组有关系吧,
数据库方面:数据库索引,数据库隔离怎么实现的(原理)。数据库优化相关,数据库如何应对高并发等。
数据库事务,锁相关,
java工具类:java集合用到了哪些?hashMap是线程安全的嘛。concurrentHashMap的原理等。
nio相关,nio和bio的区别,nio的原理,
redis相关:redis怎么设置超时,
redis是单线程的吗等,
高并发相关:
如何解决高并发问题,集群节点挂了怎么发现等,
技术上,hashMap get ,set方法怎么实现的。 springAop 原理,
平安产险:
不太难 基本的框架 还有一些性能优化 也有讲一些新的技术,
问了个aop和过滤器的区别 然后讲了讲springcloud组件,
问了个静态变量在内存的位置,
还有现有系统改造成微服务架构思路,
Sql优化,
没有GitHub 怎么怎么完善技术栈,
现有系统改造成微服务架构思路 ,
jvm内存区域划分是怎样的?
mysql的行锁、表锁、间隙锁、意向锁分别是做什么的?
如何用redis实现分布式锁?
平安金服:
Redis存储有几种方式,
Redis都有哪些存储类型,
JDK动态代理,
Spring bean如何解决循环依赖,
Spring Boot有哪些优点,Spring boot 如何引入properties文件,引用的配置文件参数除了@Value还有哪些方式可以获取,
Activiti用户组是如何实现流程流转,
数据库有哪些索引类型,原理,
concurrent包用过哪些类,concurrentHashMap怎么解决并发问题,
写个sql,统计单个表的平均成绩,如果需要过滤90分以上的需要怎么改,
画一下系统的交互图,应该画一下之前微服务的交互图,
Spring如何管理实务的,
Spring如何管理对象的,BeanFactory和FactoryBean有什么区别,
出现记账错误的时候是如何处理的。
总结:
总的来说,平安的面试不太难,和大部分互联网公司考察点差不多,一般情况下,不会问算法,以基础为主,涉及JVM,线程、并发、引用、存储、数据库等知识,以上希望对大家有所帮助。