浩鲸科技一面凉经
📍面试公司:浩鲸科技
👜面试岗位:java实习
📖面试问题:
- 介绍了一下项目
- xxl-job路由策略(就记得一个轮询当时,常用的还有故障转移、分片广播等)
- java的有序集合有哪些(list下的ArrayList、LinkedList map下的hashmap)
- hashmap的常用方法(get、put),hashmap的扩容机制(添加元素或初始化时调用resize方法扩容,第一次添加数据初始化数组长度为16,之后每次达到扩容阈值(数组长度*负载因子(默认0.75))时扩容为原来的两倍,扩容后会创建新数组用来存储老数组中的元素,没有hash冲突的节点,直接使用e.hash&(newCap-1)计算新数组的位置,如果是红黑树,走红黑树的添加,如果是链表,则需要遍历链表,可能需要拆分链表,判断e.hash&oldCap是否为0,该元素要么停留在原位置要么移动的原始位置+增加的数组大小则换个位置上
- 问了下用的jdk版本(感觉可能是想问jdk8的新特性(Lambda表达式、Stream API、函数式接口等)我回的17就下一个问题了)
- 堆和栈的区别(管理方式:堆由垃圾回收器管理,栈由编译器自动管理 内存空间:堆空间大且不连续,栈空间小且连续 存储数据类型:堆存储对象实例和数组,栈存储基本数据类型、对象引用和函数调用信息 访问速度:堆快栈慢 生命周期: 堆由对象引用决定,栈随函数结束释放)
- java变量存储在哪个区(栈内存:存储局部变量和方法调用的上下文 堆内存:存储所有创建的对象和数组 常量池:存储常量值)
- java的基本数据类型(int long short byte double float boolean char)
- byte占几个字节,可以传中文吗(一个字节,不能)
- 悲观锁和乐观锁的区别
- 聊聊volatile、final关键字
- 线程池怎么实现
- 介绍下Threadlocal
- 线程的生命周期
- 怎么创建线程
- 重写接口和继承Thread类的区别
- java中Bean相比于其他new的对象特点
- 单例模式如何实现
- #{}和${}的区别
- Mybatis中常用标签,ResultMap和ResultType区别
- Mybatis二级缓存如何开启,一级缓存有什么用
- AOP的应用场景
- Redis的基本数据类型,存储json用哪个数据类型
- Mysql默认隔离级别
- Spring事务注解失效场景
- mysql索引类型
- 创建索引的sql怎么写
- 连表查询时需要创建临时表怎么写sql
- 其他
🙌面试体验:面试官还可以会给提示,不过我答得不咋地,八股不熟,太菜了还是