Java开发工程师
约 476 字大约 2 分钟
Java开发工程师
岗位年限:
1
面试时间:
2023年12月19日9点30
面试方式:
线上
面试问题:
序号 | 问题 | 解答 | 备注 |
---|---|---|---|
1 | hashmap是不是线程安全,为什么 | 不是,底层是数组+链表+红黑树 | |
2 | 项目用过的注解,启动类用什么注解 | Bean,Configuration,Service,Controller,RestController,RequestBody,ResponseBody,RequestMapping,Autowired,Component,不会 | |
3 | jdk和jre | jdk开发工具包,jre运行环境,jdk包括jre | |
4 | 用什么引擎,InnoDB和MyISAM | InnoDB,InnoDB支持事务、外键、B+树是聚集索引,支持行、表级锁,不能统计行数,必须唯一主键;MyISAM不支持事务、外键、B+树是非聚集索引,支持行级锁,有统计行数字段,可以没有唯一主键 | |
5 | 设计模式,用过没 | 工厂、单例、代理、装饰器、观察者、策略,用过 | |
6 | 缓存问题及其解决方式 | 穿透是查询不存在的key,解决是给key为空设一个缓存,执行时间短,insert时就清理缓存,把可能存在的key放在Bigmap里,过滤不存在的key;雪崩是同一时间大量key过期,解决可以加锁或队列,二级缓存,将过期时间设置成不同的 | |
7 | Redis数据类型 | 字符串,hash,list,set,zset | |
8 | AOP,IOC | IOC,控制反转,把设计好的对象放入容器,实现对象间解耦,通过依赖注入让一个对象调取需要的另一个对象;AOP面向切面编程,用于日志,权限,事务 | |
13 | 知道哪些索引 | 主键、唯一、普通、联合 | |
9 | RabbitMQ用过吗,怎么保证不重复 | 不会 | |
10 | 路由跳转失败返回什么,404、500页面还是说明问题 | 404或500 | |
11 | mybatis#{}和${} | #{}有单引号,防止sql注入,${}没有单引号,能用#{}就不用${} | |
12 | MySQL的聚合函数 | count,sum,avg,max,min |