阿里橙狮体育JAVA实习
时间:2024.8.15 线上
时长:40min
- 自我介绍
- 简单八股
- 线程的几种状态:(1).新建(new) (2).就绪(runnable)(3).运行(running)(4).阻塞(block)1)等待阻塞 2)同步阻塞3)其他阻塞 (5).死亡(dead)
- 创建线程的方式3种:继承Thread类,实现Runable接口,实现Callable接口
- ThreadLocal的理解:线程的变量副本,每个线程隔离
- 线程池的核心参数有哪些:corePoolSize 线程池核心线程大小、maximumPoolSize 线程池最大线程数量、keepAliveTime 空闲线程存活时间、unit 空闲线程存活时间单位、workQueue 工作队列、threadFactory 线程工厂、handler 拒绝策略
- MySQL索引的类型有哪些:主键、普通、全文、空间、唯一、前缀、组合
- MySQL索引的存储结构有哪些:b树,b+树,二叉查找树,平衡二叉树
- 覆盖索引和回表的理解
- SQL执行计划主要看哪些信息
- SQL优化:主键顺序插入
- 为什么主键顺序插入会提高效率
- select count(*) 和 select count(id)的区别
- where后有两个条件,两个条件都分别创建了索引,优先使用哪个索引进行查询:哪个索引区分度大,筛选更快就使用哪个
- Redis了解哪些
- redis的穿透、击穿
- redis是单线程的,为什么还快呢:(1).redis是基于内存的,内存的读写速度非常快;(2).redis是单线程的,省去了很多上下文切换线程的时间;(3).redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。
- 项目中你觉得做的最好的点
- 如何保证redis和MySQL的数据一致性
- 使用redis的需要注意哪些:控制key的长度、避免存储bigkey、value的大小也要关注、string的大小控制在10kb以下,list、hash、set、zset也要控制、合理的选择数据类型、把redis尽可能的当成缓存使用、避免集中过期key等
- 空间换时间,项目中的体现
- 实现中两个项目上个项目和后边的项目在做的过程中有什么不一样的体会
- 消息队列的理解
- 设计模式用过哪些
- 反问:问的答得如何(前半部分基础达标了,后边深入原理的地方需要加强)