记录一次2020Java后端面试题
程序员文章站
2022-05-22 20:01:34
...
2020Java后端面试题
1 自我介绍
一上来都是自我介绍 我: blablabla。。。。
2 项目的实现
问了项目的数据库的表,包含各个表之间的关系,个人所负责的业务,等等
反正就问的特别的详细
3 悲观锁乐观锁的区别
简单的来说就是悲观锁每次拿数据都要上锁,
乐观锁不上锁,而是反过头了对比数据是否被更改了
4 MySQL 数据库的内连接,外连接,区别等
5 MySQL 在使用内连接的时候先使用where和后使用where条件进行查询的区别
这里可以多理解理解MySQL的子查询
6 实现线程的几种方法
不多说了吧 基本都会,Runable , Thread , Callable, 线程池 ,说了一些区别
7 详细问了 线程池的七个参数
/* *
* @Author: WN
* @Description:
* @Date: 20:50 2020/6/7
* @param: corePoolSize 核心线程数
* maximumPoolSize 最大线程数
* keepAliveTime 时间长度 过了多久超出corePoolSize的线程回收
* TimeUnit.SECONDS 时间单位
* Queue 队列
* 默认工厂
* 拒绝策略(四种)
* @Version: 1.0
*/
ThreadPoolExecutor executor = new ThreadPoolExecutor(
4,
5,
4L,
TimeUnit.SECONDS,
new LinkedBlockingQueue<>(3),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy()
);
8 线程池中线程满了怎么办
没有理解他什么意思
是哪个满了
如果是corePoolSize满,就加线程但是大小不大于maxCorePoolSize
如果大小大于maxCorePoolSize 就放入队列
如果还大于队列长度,就启动拒绝策略
9 Redis的基本数据结构
String, Hash, Set, ZSet, List, 说了布隆过滤器
这一块建议不要光说关键词, 一定要说出来区别, 以及他们适用的场景
10 分布式锁
说了用Redis的setnx 命令, 包括设置过期时间失败的时候怎么办
利用 set命令里面有NX参数 就可以了
11 问了场景题: 如何从一本红楼梦中找出贾宝玉的名字的个数
不知道 我胡说的用最小堆,我也没搜到答案,有会的大佬请解答!!!
12 如何设计购物车
说了要考虑并发等
13 购物车如何设计数据库表
14 反问环节
问了一些实习时间等等。。。
就这么多了大概,还有一些可能想不起来了, 以后再有面试, 还会发布
== 最后希望各位小伙伴尽快找到心仪的工作 ==
推荐阅读
-
2020Java后端开发面试题总结(春招+秋招+社招)
-
一次踩坑记录(使用rpc前后端分离服务总是注册不上)
-
【记录一次坑经历】axios使用x-www-form-urlencoded 服务器报400(错误的请求。 )(后端.Net MVC5 WebApi OAuth,前端Electron-Vue)
-
记录一次高级JAVA开发面试题目
-
记录一次2020Java后端面试题
-
2020Java后端开发面试题总结(春招+秋招+社招)
-
【记录一次坑经历】axios使用x-www-form-urlencoded 服务器报400(错误的请求。 )(后端.Net MVC5 WebApi OAuth,前端Electron-Vue)
-
一次踩坑记录(使用rpc前后端分离服务总是注册不上)