首页 > 杭州端点网络提前批一面面经
头像
peonyX
编辑于 2021-07-03 21:07
+ 关注

杭州端点网络提前批一面面经

22届本科在找工作

项目:

  1. 项目难点
  2. 定时任务的技术点
  3. 单机部署的项目,如果部署两个节点会有什么问题(他就想问多节点执行定时任务用什么框架)
  4. 网页上两个账号同时登录,怎么做到第二个账号把第一个顶下去?

基础:

多线程

  1. 线程池参数
  2. FixedThreadpool有什么问题,用了linkedBlockingQueue,会oom?(问我拒绝策略是什么,我说抛出异常,源码确实是这样,但是他是linked Blocking Queue,根本不能执行拒绝策略)

Mysql

  1. 查询慢是什么原因
  2. 怎么知道索引哪里慢,怎么知道哪里索引没用上(explain)

Redis

  1. redis和MySQL数据一致性
  2. redis用过吗,我说知道某些场景怎么解决,他直接猜出来我要说缓存雪崩,击穿什么的了,直接跳过

Spring

  1. 动态代理
  2. 循环依赖怎么办

Java

ArrayList和LinkedList介绍
Hashmap介绍
Concurrentmap介绍
线程安全用哪个?

cas问题?

CAS的缺点有如ABA问题,自旋锁消耗问题、多变量共享一致性问题.
1.ABA:
问题描述:线程t1将它的值从A变为B,再从B变为A。同时有线程t2要将值从A变为C。但CAS检查的时候会发现没有改变,但是实质上它已经发生了改变 。可能会造成数据的缺失。
解决方法:CAS还是类似于乐观锁,同数据乐观锁的方式给它加一个版本号或者时间戳,如AtomicStampedReference
2.自旋消耗资源:
问题描述:多个线程争夺同一个资源时,如果自旋一直不成功,将会一直占用CPU。
解决方法:破坏掉for死循环,当超过一定时间或者一定次数时,return退出。JDK8新增的LongAddr,和ConcurrentHashMap类似的方法。当多个线程竞争时,将粒度变小,将一个变量拆分为多个变量,达到多个线程访问多个资源的效果,最后再调用sum把它合起来。
虽然base和cells都是volatile修饰的,但感觉这个sum操作没有加锁,可能sum的结果不是那么精确。
2.多变量共享一致性问题:
解决方法: CAS操作是针对一个变量的,如果对多个变量操作,
1)可以加锁来解决。
2)封装成对象类解决。

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐