我整理了一些一线互联网公司的面试题,希望能在面试的时候帮助到大家
mybatis常见面试题
- #{}和${}的区别是什么?
- Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
- 最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
- Mybatis是如何进行分页的?分页插件的原理是什么?
- 简述Mybatis的插件运行原理,以及如何编写一个插件
- Mybatis执行批量插入,能返回数据库主键列表吗?
- Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
- Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
- Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别。
- Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
- Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
- Mybatis中如何执行批处理?
- Mybatis都有哪些Executor执行器?它们之间的区别是什么?
- Mybatis中如何指定使用哪一种Executor执行器?
- Mybatis是否可以映射Enum枚举类?
- Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?
- 简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?
- 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
Maven常见面试题
- Maven有哪些优点和缺点?
- Maven常见的依赖范围有哪些?
- Maven的生命周期
- 我们经常使用“Mvn Clean Package”命令进行项目打包,请问该命令执行了哪些动作来完成该任务?
- 为什么要使用Maven?
- 什么是Maven?
- maven相关命令
Redis常见的面试题
- 缓存穿透可以介绍一下么?你认为应该如何解决这个问题?
- 你是怎么触发缓存更新的?(比如设置超时时间(被动方式), 比如更新的时候主动update)?如果是被动的方式如何控制多个入口同时触发某个缓存更新?
- 你们用Redis来做什么?为什么不用其他的KV存储例例如Memcached,Cassandra等?
- 你们用什么Redis客户端? Redis高性能的原因大概可以讲一些?
- 你熟悉哪些Redis的数据结构? zset是干什么的? 和set有什么区别?
- Redis的hash, 存储和获取的具体命令叫什么名字?
- LPOP和BLPOP的区别?
- Redis的有一些包含SCAN关键字的命令是干嘛的? SCAN返回的数据量是固定的吗?
- Redis中的Lua有没有使用过? 可以用来做什么? 为什么可以这么用?
- Redis的Pipeline是用来干什么的?
- Redis持久化大概有几种方式? aof和rdb的区别是什么? AOF有什么优缺点吗?
- Redis Replication的大致流程是什么? bgsave这个命令的执行过程?
- 如果有很多 KV数据要存储到Redis, 但是内存不足, 通过什么方式可以缩减内存? 为什么这样可以缩小内存?
- Redis中List, HashTable都用到了ZipList, 为什么会选择它?
JVM
- 你知道哪些或者你们线上使用什么GC策略? 它有什么优势,适用于什么场景?
- JAVA类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
- 如何自定义一个类加载器?你使用过哪些或者你在什么场景下需要一个自定义的类加载器吗?
- 堆内存设置的参数是什么?
- Perm Space中保存什么数据? 会引起OutOfMemory吗?
- 做gc时,一个对象在内存各个Space中被移动的顺序是什么?
- 你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理过程中有哪些收获?
- 1.8之后Perm Space有哪些变动?MetaSpace大小默认是无限的么? 还是你们会通过什么方式来指定大小?
- Jstack是干什么的? Jstat呢? 如果线上程序周期性地出现卡顿,你怀疑可能是gc导致的,你会怎么来排查这个问题?线程日志一般你会看其中的什么部分?
- StackOverFlow异常有没有遇到过?一般你猜测会在什么情况下被触发?如何指定一个线程的堆栈大小?一般你们写多少?
Spring
- 你有没有⽤用过Spring的AOP? 是用来干嘛的? 大概会怎么使用?
- 如果⼀一个接口有2个不同的实现, 那么怎么来Autowire一个指定的实现?
- Spring的声明式事务 @Transaction注解一般写在什么位置? 抛出了异常会自动回滚吗?有没有办法控制不触发回滚?
- 如果想在某个Bean生成并装配完毕后执行自己的逻辑,可以什么方式实现?
- SpringBoot没有放到web容器里为什么能跑HTTP服务?
- SpringBoot中如果你想使用自定义的配置文件而不仅仅是application.properties,应该怎么弄?
- SpringMVC中RequestMapping可以指定GET, POST方法么?怎么指定?
- SpringMVC如果希望把输出的Object(例如
- XXResult或者XXResponse)这种包装为JSON输出, 应该怎么处理?
- 怎样拦截SpringMVC的异常,然后做自定义的处理,比如打日志或者包装成JSON
以上是我整理的一些java程序员面试经常会遇到的问题,我总结出了互联网公司java程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料)
资料领取方式:加群714526711即可领取