欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录一次2020Java后端面试题

程序员文章站 2022-05-22 20:01:34
...

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 反问环节

问了一些实习时间等等。。。

就这么多了大概,还有一些可能想不起来了, 以后再有面试, 还会发布
== 最后希望各位小伙伴尽快找到心仪的工作 ==