面试题整理

132 阅读7分钟

面试题整理

自我介绍

自我介绍,项目介绍,自己做过的模块,哪些技术栈

项目介绍:讲自己做过的模块,讲都是什么功能,不能说的太简单。项目访问量。项目分工。项目架构。项目难点。业务逻辑

多线程

线程池原理;你用过哪个线程池?为什么用这个?基于什么设定的核心线程数?

threadlocal原理

实现线程的几种方式?哪种更好

线程状态转换,也可以从CPU角度分析

阻塞队列原理,自己实现一个怎么实现

vilotile功能,为什么dc单例一定要加这个

countdownlatch功能?和cyclebarrier区别

静态方法加synchronized是对什么对象加锁

aqs

synchronized和reentrantlock区别?乐观锁 悲观锁

如何加锁代码块中发生异常会释放锁吗?为什么?

数据库

怎么排查数据查询慢?你们怎么定位慢sql?

几种隔离级别?哪个是默认的?你们用的哪个?为什么用这个?

事务传播等级,spring中的事务是什么样的?怎么实现的事务管理,操作的哪个对象

事务中还有事务怎么办?

哪些事务问题?哪个隔离级别会有这个问题?mvcc怎么解决的?

mysql的锁?间隙锁怎么实现的?哪些情况会引发间隙锁?

什么情况下索引失效?怎么排查?怎么修改?

sql优化(用上索引的优点,最左前缀等等)

读写分离

分库分表

  • 用了什么软件?

为什么用b+tree,不用btree

聚簇和非聚簇有什么区别

哪几个常用执行引擎?什么区别?

慢日志查询?

哪些事务异常会导致事务回滚

select limit 0,10很快,但是limit 0,10000很慢?怎么解决?

sql关键字顺序

范围查询

left join和right join什么区别,和join什么区别

给个场景写sql,一般考groupby多

explain如何使用的?看哪几个列

mybatis

通过什么方式实现的数据库表和pojo的对应

interface中的方法和xml中的方法对应如何实现

拦截器,typehandler

如何防止sql注入?#和$区别

分页如何实现的

预编译

一级缓存和二级缓存

  • 高并发时会有异常

spring

springboot原理?重要注解

springcloud负载均衡,熔断,注册中心

哪些不能用代理模式?cglib和java代理什么区别?

aop,DI,IoC分别什么作用?怎么实现的?

springmvc中请求流程,底层怎么实现的

springboot和spring有什么区别?springboot有什么优点?

springboot如何实现自动化配置的,如果你自己写的starter怎么写?哪几个注解组成了那种重要注解

spring中事务如何实现的?哪种情况下事务注解异常?

有哪些设计模式?举几个例子?单例,工厂。还有其他的吗?

bean有哪些作用域

autowired resource

bean是单例的?还是原型的?懒加载

redis

为什么快?基于内存,网络io多路复用,数据结构设计的好;再深了epoll,poll区别什么的;

有哪些数据结构,底层是什么样的结构?ziplist 跳表等等;为什么用这些数据结构,底层什么样的;

Redis实现分布式锁的话怎么实现,如果锁超时呢?

Redis和数据库一致性怎么实现的,db成功了,Redis写失败了怎么办?Redis成功了,db失败了?

setex,setnx;

删除策略几种?底层实现?

缓存击穿,缓存穿透,缓存雪崩,解决方式?

为什么用Redis,多大数据量

如何实现Redis过期?Redis在操作系统中如何实现的过期,

elasticsearch

text keyword区别;哪些字段用text哪些用keyword;

用的什么分词器;为什么选这个分词器;为什么不选别的分词器;常用的分词器有哪些?

倒排索引;结构,为什么es选用倒排索引;

你们多少集群;多少分片;为什么设置这个数量的集群/分片

es搜索准确性多高?排序如何实现的?

基于什么原因用了es?

rpc

rpc原理

序列化,反序列化

motan如何实现rpc,dubbo,springcloudfeign

motanbean如何生成的

设计模式

工厂,单例,代理,策略等等,其他的

多种单例实现方式哪个好?为什么?

jvm

双亲委派

类加载流程

常用的jvm配置参数,jvm调优参数分析,jvm调优命令

几种回收算法,几种回收器,分别适用于那些类型的服务

cms g1的区别,怎么选用?cms内存模型,堆栈结构,JMM

CPU过高怎么排查

线上频繁fullgc,怎么解决?网上搜个案例

锁膨胀过程,自旋,轻量,重型 乐观悲观 可重入

内存分配流程

对象从创建到结束的过程

java基础

list set map 继承结构

arraylist扩容过程,arraylist linkedlist区别

hashmap原理?put和get流程。多线程使用有什么问题?有线程安全的map吗(引导到concurrenthashmap),1.7和1.8有什么区别?为什么用了红黑树?红黑树有哪些特性,为什么不用avl?

Collections.synchronized()方法有什么问题?

servlet底层?Tomcat怎么实现servlet的?

session和cookie区别?都有哪些值?session过期怎么解决?

request prehandler

网络

bio nio什么区别

netty

  • netty和Tomcat区别?

nginx

三次握手,四次挥手,

udp,tcp

平权入侵

Session和cookies区别

https

http

time wait

  • 2ms?

mq

为什么用了mq?几种常见mq各自优缺点?你们为什么选了这个mq?kafka,rocketmq,rabbitmq

幂等性如何实现的?顺序消费如何实现?发送失败怎么办?如何处理数据丢失?消费失败怎么办?

调研kafka,巴拉巴拉,啪啪打自己脸

mq分布式事务

分布式

分布式有什么优点?微服务有什么优点?

分布式锁怎么实现:数据库,Redis,zk;各自的优缺点;你们基于什么考虑选了哪个?

分布式锁如何设计过期时间?

分布式事务,cap?

springcloud熔断注册中心等等原理

kafka

  • 怎么做集群?
  • 为什么用zookeeper?有什么好处?

zookeeper

  • 选举机制
  • 实际使用中

OS

CPU过高怎么解决?qps过高怎么解决?

常用命令?

sed awk hc df

shell脚本

查看在线日志哪些命令

算法(不是每家公司都考)

链表

  • 链表翻转
  • 双向链表
  • 链表找环
  • 删除倒数第k个
  • 有序链表二合一

100万数据需要排序,怎么排序?从哪些方面考虑?时间复杂度?空间复杂度?内存是否够用?

排序

  • 快排
  • 堆排
  • 归并排序

手写单例

dp

裴波那契(青蛙跳台阶)

两数之和

二分查找

分治

括号匹配

二叉树水平遍历

旋转二维数组

最大子集和

贪婪算法 最优解

其他

压测

做过代码优化吗?怎么做的?

最大难度的工作是什么?怎么克服的?

你们的qps,用户量有多少?数据量有多大?

定时任务如何实现的

平时看什么:我上次说的算法和Java并发。这个应该回答能往下一步问题引领。要回答自己擅长的,肯定能答得上的

hr面试

职级多少?调薪几次?如何晋升?晋升几次?绩效如何评?分别几档绩效占比?考核周期?试用期多长?试用期工资?试用期年假?工资几号发?月薪几个月?

公司内部对员工的培养计划?职级序列?内部分享?导师制?

这个岗位,需要学什么?

自己的弱点,拐弯抹角把这点说成好的

XMind - Trial Version