2020-2021面试题

还有很多没有记录。
支付宝
1.jvm的内存模型 一般jvm分为哪几块
2.jvm怎么GC
3.Mysql数据的存储引擎
4.mysql数据库搜索引擎的结构 b+树
5.RPC的原理
6.有用过RPC框架吗?如dubbo这些。
7.加密算法分为哪几种 可逆和不可逆
8.单机服务如何优化,有用过哪些优化方式 代码优化,虚拟机参数调整
9.AOP是啥 你用过吗?

医慧科技
1.Redis本身有多少个线程
2.怎么利用Redis实现分布式锁 超时设置+延长超时策略+另外一个原子变量(setnx)记录持有锁的线程。
3.分布式缓存一致性 双删策略 要考虑主从redis节点问题 脏读问题
4.Mybatis怎么实现批量更新,有几种方式
5.怎么运用spring的事务
6.平常怎么创建线程 平常怎么实现并发
7.数据库有一个联合索引 A,B,C, 如果有一个查询条件A=1,C=3,那索引有效吗?
8.哪些场景会使索引无效

亿咖通
1.常用设计模式 代理模式和装饰模式的差别
2.Spring 事务怎么实现的

海康威视
1.如何实现rabbitmq的高可用高负载
2.如果一个rabbitmq节点挂掉了 怎么实现数据不丢失
3.一般怎么创建线程
4. 自带的线程池有哪些问题
5.一般怎么实现并发
6.使用锁的话 一般用哪些锁 Lock接口的实现类
7.自己说那个的一些策略

涂鸦智能
1.介绍项目中授权的实现
2.Spring的两大特性IOC,AOP的理解
3. Spring的生命周期
4.Spring的事务有哪些
5.Spring如何解决循环依赖
6.Mysql的 不可重复读,可重复读的理解,可重复读如何实现的 行锁
7.Current包,AQS的使用,
8. CurrentHashMap put的时候,怎么实现的 。引申到CAS+同步块(1.8),1.7之前采用分段锁。
9. CurrentHashMap 的key能为空吗?不能,直接抛空指针异常
10.RPC用过吗?Dubbo该怎么处理。
11.JVM的分块 类,新建一个对象分别位于哪个区
12.垃圾收集算法,各个算法的特性

微医
JVM内存模型
对象存储在哪 常量存储在哪
mysql的存储引擎
RabbitMQ和Kafka之间的区别
分布式环境中的分布式事务怎么实现
怎么用消息中间件实现 分布式事务

恒生电子
1.静态方法能访问非静态方法吗?为啥?
2. 对象A等于字符串“A”,对象B也等于字符串常量“A”,A==B是true还是false?
3.HashMap的数据结构,HashCode是怎么生成的 key能重复吗?
4.CPU达到100%怎么排查问题?在Windows环境呢?
5.平常代码中是怎么样实现认证和授权的,如何处理越权。
6.什么时候索引失效。

数梦工场
1.HashMap是什么结构
2.CurrentHashMap 是怎样put的 ,如何获取它的size。
3.synchronized的原理是啥
4.volatitle的原理是啥,你用过吗?能保持原子性吗?一般在什么时候用。
5.ReentrantLock 和Synchronized有什么区别, ReentrantLock怎么实现公平性,是绝对公平吗?
6.偏向锁->轻量级锁->重量级锁,重量级锁能后 能降级吗?自旋锁是啥?自旋是怎么实现的?
7.为啥新生代eden区和survivor区是8:1:1,而不是8:2?复制算法是怎么实现的?
8.有没有用过JVM变量
9.String,StringBuilder, StringBuffer的区别。
10.一个对象中的本地方法创建一个字符串,字符串存储在哪。
11.怎么知道单向链表有没有环。
12.10万个数字,怎么找出最大的前10个?堆。
13.联合索引什么时候失效?

数梦工厂现场面试
自我介绍
印象最深的项目,项目主要干什么的·
OAuth2.0是怎么用的 重点关注怎么相信对方是合法的、加密
有没有了解过CAS认证
三方调用接口 用HTTPs 怎么实现的,有加密吗?
rabbitMq用在哪些地方 怎么用的 ,说了邮件的问题,以及工单。举例邮件后,多实例部署为啥要多个实例同时发件
Websocket是啥,为啥用Redis做广播
邮件优化你是怎么优化的
数据迁移你是怎么迁移的
公司内部消息中间件没有统一吗?
对ticket优化是怎么优化的
对Asset优化是怎么优化的

为什么要离职
springboot和spring的差别
RabbitMq和Kafka的差别
系统去除Redis是不是也可以用
公安平安指数平台是怎么实现的 能解释一下吗?
eBI中应该用了很多框架

微医视频面试
JVM内存模型 怎么实现原子性
说一下Java线程池 你知道Java默认的线程池有什么问题吗?
用过Concurrent包下哪些东西 ConcurrentHashMap,AtomicInteger
AtomicInteger怎么实现的,没用过Concurrent包下的List吗?
说一下ReentrantLock,你用过它的读写锁吗?哪些场景用到。
eBI主要干嘛的
对数据进行查询的时候 如果数据打千万级,怎么查询
Springboot的starter怎么实现的,自己实现一个jar需要引入进来如何引入?主要是类加载器
eBI项目中自定义SQL怎么实现的
ticket优化怎优化,Asset优化怎优化,只是从逻辑吗?
哪些场景不适合使用消息中间件

微医现场面试
1.如何实现线程安全
实现并发就要求线程安全,线程安全控制可以由同步块,同步方法,重入锁(ReentrantLock)来实现。
2.如何知道索引生效了
可以使用explain查看执行情况
具体参考:
https://www.cnblogs.com/wdss/p/11186411.html
https://segmentfault.com/a/1190000008131735
执行流程:
show index from table
3.为什么要使用微服务,服务之间是怎么调用的
微服务解耦,方便扩容,部署无需重启服务器
但是要解决服务拆分粒度,服务依赖问题,数据传输和内部接口问题
服务之间的通讯方式:
参考地址:https://blog.csdn.net/weixin_34109408/article/details/92613486
比如Product和Order两个服务
首先需要在服务启动类中添加@EnableEurekaClient,启动项目后使之注册至Eureka.

a.可以直接用RestTemplate固定地址。
b. 可以通过负载均衡 LoadBalancerClient 或者 @LoadBalanced 获取服务IP与端口信息用于RestTemplate。
注意,负载均衡器Ribbon,添加负载均衡配置
c.使用Feign,它是一个动态代理,采用伪RPC方式,内部仍然采用Ribbon做负载均衡。Product服务用@FeignClient(“Product”)将服务导出,Order服务中启动类中使用注解@EnableFeignClients(basePackages=“org.zero.example.product.client”)添加Product依赖

有盾电话面试
1.自我介绍
2.项目部署在云端上,S3有什么好处,有了解过其他文件存储系统的原理吗?
3.项目中用的中间件redis,rabbitMq用来干嘛的,用于哪些1场景
4.主动介绍到Redis分布式锁,锁超时但是任务没完成怎么处理。
5.Redis的缓存雪崩,缓存穿透分别是啥?怎么解决。
6.Redis的缓存失效策略
7.HashMap的是怎么实现的,是线程安全的吗?场景put(2,A),put(2,B)是怎样的?put(2,B),put(3,B)是怎样的?
8.了解AQS吗?是怎样的结构?哪些类用到了AQS?
9.ThreadLocal是怎么个原理?是Map的话它的key,value分别是什么类型?用在哪些场景?
10.ThreadLocal用于中间件的哪些场景?
11.ReentrantLock和Synchronized有什么区别。
12.JDK1.6对Synchonized做了哪些优化。
13.项目中用的JDK几?JDK11,有什么新特性。
14.项目用的哪个垃圾收集器?默认应该是G1,G1和其他收集器有什么不同?
15.了解JVM的锁机制吗?偏向锁和重量级锁的过程?自旋锁怎么个用法?
16.Mysql有哪些存储引擎?主要说的是InnoDB和MyISAM,两者有什么区别?我会的索引和事务不同,不知是否正确?索引有哪些不同。
17.了解TCP的三次握手,四次挥手吗?
18.从浏览器出入一个网址到界面显示数据整个流程是怎样的?我说请求->ELB->代理->服务端?ELB是一个IP,怎么映射到域名的?

大华电话面试
1.线程有哪几个状态
2.thread2中调用thread1的join方法,过程是怎样的
3.thread yield表示的是啥
4.你平常有用过线池或者并发吗?
5.你知道java的线程池吗?你原先有过相关的经验或者demo吗?他有哪些参数?
6.ReetrantLock和Synchronized的差别。
7.你知道ReentrentLock是怎么实现的吗?
8.你知道Synchronized的锁优化吗?答轻量级锁到重量级锁的过程。
9.你知道哪些Java集合,Map不算在集合里面?
10.HashMap的底层是怎么实现的?自定义的对象做key,你该怎么做?
11.你知道为啥HashMap的初始值是16?
12.mysql的索引?索引为啥不适用B树,而是适用B+树?你平常有对此的优化吗?
13.平常应用层面的优化。
13.你用过哪些设计模式?我提到了工厂模式,装饰模式,代理模式?追加·你说说你对装饰模式的理解?
14. 实现大流量的秒杀,你改怎么实现,你有过相关经验或者学习?我回答了数据预加载+限流+并发。

2021年4月9日:

涂鸦智能

  1. 项目中找一个实现比较难得具体说一下怎么实现的。

  2. 简历中有写常用的设计模式:工厂模式,代理模式,单例模式。
    代理模式分为几种?静态代理和动态代理。这两种代理具体怎么实现,一定要具体?想想怎么写。光说动态代理是反射态模糊。

  3. HashMap怎么初始化?如何put?一定要深入到代码?

  4. ConcurrentHashMap怎么初始化,怎么同步?同步步骤是啥?put中有一个锁升级的过程,从无锁到轻量级锁(CAS)到重量级锁(Synchronized),怎么个过程?
    红黑树一定哟啊了解。

  5. JVM的内存模型?方法区,堆,本地方法栈,虚拟机栈,程序计数器。
    方法区中存什么?堆中存什么?堆分为几个区?1.7分为新生代,老年代,新生代中分为Edian,Survivor1,Survivor2。在1.8之后,分为原空间。
    OOM分为哪几种,分别什么场景下会出现?说了栈内存溢出,堆内存溢出。此外还有线程创建过多导致的内存溢出。所以要设置各个区的大小。

  6. 是否有过JVM调优
    说没有,然后问道了线上问题。

  7. 线上问题排查。
    场景1:高CPU,内存正常。
    场景2:CPU正常,内存溢出。
    场景3:CPU正常,内存正常,界面点击报错或响应慢。
    场景1我回答:使用top命令。查看占用cpu过高的线程或进程,然后去堆栈日志中查找。查找的响应的事务。查看CPU飙高时间。
    正解:+使用工具分析+?
    场景2我回答:查看堆栈日志,然后用分析工具分析占用内存过多的对象线程等等。
    正解:导出dump日志使用内存分析工具
    场景3我回答:查看程序与前端连接是否正常,是否有过多watied。或查看数据库线程池是否正常。
    正解:应该差不多,具体百度?

  8. Mysql的覆盖索引有了解吗?
    答:没听过,面试官说叶子节点存数据。我说那不是聚簇索引和非聚簇索引,说了聚簇索引是啥。然后面试官说去了解了解。其实面试官想说的是索引覆盖。。。

  9. Mysql聚合索引是最左匹配?你知道为啥的最左匹配吗?
    我说是因为索引有顺序,他说是的,然后再说你知道mysql用的b+树,和也数据存储结构原理,去了解一下。

  10. 怎么实现秒杀器?
    我说了要注意秒杀时间,秒杀限流排队,加机器,预加载。
    面试官说主要关注两点:流量+超卖。参考天猫双十一。
    超卖用分布式锁控制,我说那不是单线程,要卖的多是不是达不到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值