来吧,终于到了今天,鸽了许久的Moka面经也是被我做出来了,哇哈哈哈哈。
面试官还是很有水平的,只不过我每次说完他都要开始蓄力了,然后发起gank,对我的回答抠细节。
挺好的,多来几次这样有水平的面试,我好喜欢面试呀!!!我面面面面面!
- 问一下你实习业务中怎么使用线程池的,如何复用线程池,如何让线程正常执行每个任务,
- 线程池的底层原理是什么。为什么要用阻塞队列,那关于每个单线程能不能调节优先级。
- 阻塞队列的作用是什么,能不能用其他数据结构来完成线程池
- 倘若在某个线程中执行任务你发现超时,如何解决,
- countdownlatch如何做的操作,在什么地方可以down,线程如何调用,局部的可以吗
- redis分布式锁的底层原理是什么,为什么可以实现分布式锁:红锁算法
- setnx的原理又是什么,为什么要用看门狗机制
- 为什么要保持这个订单操作一致性,
- 你说复用样式对象,你使用的是什么方案
- 那我设计一个类来作为修改单元格样式,你设置的是静态全局变量,作为一个统一修改导出表的模板,那么要是有人修改你的模板怎么办,静态变量也是可以被修改的,如何让别人不能修改,只能继承,这是一个架构设计的问题,你该怎么做
- 你讲到最近在用MQ,MQ的基础模型是怎么样的,MQ如何保证消息可靠性的
- MQ中是什么时候消息刷盘的,MQ中的死信队列是什么,延迟队列又是什么
- 你说用MQ做业务解耦,为啥要这样做,我别的架构设计可以吗
- Java中的数据类型有哪些
- 你用过那些常见的集合,LinkedList和arrayList的效率以及场景选取上怎么考虑,
- 你说创始人都不咋用LinkedList,那Java中也有数据结构会复用链表,你说说有哪些?
- 链表是随机IO,那我们可以设计一个链表支持二分查找吗,来快速的查询对应的区间胡总和元素
- 你常见哪些锁结构,和JUC工具类
- 什么是线程安全,什么情况下会发生线程安全性问题,线程安全问题如何防范
- Synchronized你平时是怎么用的,一般是锁住什么东西
- 锁也会有失效的场景,什么情况下失效,
- 再换个直白一点的问题,你锁住的是什么对象,锁住函数实际上是锁住什么
- 你锁住的对象要是发生变化该怎么办,锁住对象实例就一定不会变化嘛
- 如果不是锁住对象实例,我们该锁住什么来保证线程安全
- 用过ReentrantLock吗,他的底层数据结构和原理是什么
- ReentrantLock的公平锁和非公平锁是如何实现的,又是根据什么关键字来区分锁竞争的优先级
- 还有什么锁,信号量可以保证线程安全吗??
- MYSQL的隔离级别有哪些,mysql默认隔离级别
- 索引创建有哪些条件,索引创建有什么原则
- 联合索引什么时候会失效,访问>的时候会失效吗,
- 什么是索引下推,日常开发中索引的创建遵循什么原则
- 写个sql题吧
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
registration_date DATE NOT NULL
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE NOT NULL,
total_amount DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 列出订单总金额最高的前 5 个用户
- 写个力扣题吧
删除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
#软件开发笔面经#
#秋招##面试##Java#