前言
提到插件,相信大家都知道,插件的存在主要是用来改变或者增强原有的功能,MyBatis中也一样。然而如果我们对MyBatis的工作原理不是很清楚的话,最好不要轻易使用插件,否则的话如果因为使用插件导致了底层工作逻辑被改变,很可能会出现很多意料之外的问题。
本文主要会介绍MyBatis插件的使用及其实现原理,相信读完本文,我们也可以写出自己的PageHelper分页插件了。
支付宝一面
- 介绍一下自己。
- 项目参与的核心设计有哪些
- ArrayList和LinkedList底层
- HashMap及线程安全的ConcurrentHashMap,以及各自优劣势
- Java如何实现线程安全
- Synchronized和Lock哪个更好?
- HashMap中的get()方法是如何实现的?
- HashMap可以用在哪些场景?
- JVM,垃圾回收机制,内存划分等
- SQL优化,常用的索引?
- 还有什么问题需要问的。
02 支付宝二面
- 没有自我介绍,直接问做过哪些Java开发相关的项目。
- 对哪些技术比较熟悉?
- 多线程状态图,状态如何流转?
- 死锁,死锁原因
- 页锁、乐观锁、悲观锁?
- 乐观锁如何保证线程安全?
- 用过线程池吗,对应的好处,如何用?
- 两个10G的文件,里面是一些url,内存只有1G,如何将这两个文件合并,找到相同的url?
- 1000个多并发线程,10台机器,每台机器4核的,设计线程池大小。
- 代码题:两个有序数组,数组中存在重复数字,合并成一个有序数组,去除重复数字。
- 说一下自己的优点。
支付宝三面
- jvm性能调优都做了什么
- 数据库性能调优如何做
- 分布式系统原理:CAP,最终一致性,幂等操作等
- 高并发情况下,我们系统是如何支撑大量的请求的
- 集群如何同步会话状态
- 常用NOSQL,有做过比较?
- 什么情况会出现雪崩,以及如何应对?
- 负载均衡的原理
- 数据库事务属性
- 与同事沟通的时候,如果遇到冲突了如何解决?
- 工作中觉得哪方面欠缺?
- 有问题要问么?
- 期望薪水?
- 为什么要离开现在的公司?
美团四面
美团点评高级Java一面(技术,电话面试,约40分钟)
- 自我介绍。
- 项目介绍。
- 了解过redis源码及redis集群么?
- 分布式下redis如何保证线程安全?
- Hashmap的原理,源码?
- Hashmap增删的情况后端数据结构如何位移?
- hashmap容量为什么是2的幂次?
- object类你知道的方法?
- 你重写过hashcode和equals么,要注意什么?
- jvm内存分区,为什么要有新生代和老年代?
- 有做个JVM内存优化吗?
- 数据库索引 主键和唯一索引有什么区别?
- 聚集索引和非聚集索引的区别?
- MySQL存储引擎innoDB和MyISAM的区别?
- 讲一下稳定的排序算法和不稳定的排序算法?
- 讲一下快速排序的思想?
美团点评高级Java二面**(技术,现场面试,约60分钟)**
- 几种线程池区别?
- aio,nio,bio的了解,NIO的核心概念有哪些?
- 常用的NIO框架有哪些,优劣势?
- 事务的四大隔离级别?
- jvm场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题?
- MySQL innodb的b+树索引,主键索引,聚簇索引有什么区别?
- 数据库四大特性?
- MySQL里有哪些锁,行锁表锁,乐观锁呢?
- MySQL的死锁怎么产生的,举了两个例子。
- dubbo里的zookeeper是做什么的?
- 表锁 行锁 乐观锁 悲观锁的特点和区别?
- 并发工具包有哪些,具体怎么用?
- Docker平时怎么使用的?
- Kafka如何解决数据堆积?
- kafka消息的存储机制?
- 如何用kafka保证消息的有序性?
- kafka如何保证并发情况下消息只被消费一次?
美团点评高级Java三面题目**(技术,现场面试,约60分钟)**
- 项目介绍。
- 最有技术难度的项目,介绍下相关核心设计流程。
- 分布式下redis如何保证线程安全?
- redis持久化的方式以及区别?
- zookeeper如何实现分布式锁、其他分布式锁怎么实现?
- kafka的架构,如何用kafka保证消息的有序性?
- 数据库的优化包含哪些?MySQL的优化,谈两个你优化的例子。
- redis用的哪个版本?
- 如何搭建redis集群?
- redis如何主从同步?
- redis分布式锁注意事项?
- redis持久化的方式以及区别?
- redis持久化方式及区别?
- my sql数据量多大的时候需要分表?
- my sql常用的存储引擎及区别?
- zookeeper的作用:分布式锁、注册服务中心?
- zookeeper如何实现分布式锁、其他分布式锁怎么实现?
- 分布式事务的解决方案?
- 单点登录怎么实现?
- 秒杀系统怎么来实现?
- 工作中,遇见了技术瓶颈无法解决,你的解决思路?
- 技术选型方面,一个新技术和一个稳定的旧技术,你会如何选择,会考虑哪些因素?
美团点评高级Java四面题目(HR,现场面试,约30分钟)
- 自我介绍下。
- 自己的优点和缺点。
- 为啥想来美团,对美团了解多少?
- 心中的互联网公司排序。
- 工作中遇见暂时无法解决的问题,你是怎么应对的?
- 最近在学什么新技术
- 你是通过什么路径与方法,去学习和接触一门新技术的?
- 未来的职业规划是什么?
拼多多Java研发岗4面试经过及面试题
一面
- 线程池由哪些组件组成,有哪些线程池,分别怎么使用,以及拒绝策略有哪些
- 写一题算法,层次遍历树并输出每层的层级
- 写一道题,二叉树的后序遍历,非递归算法。
- 什么时候多线程会发生死锁,写一个例子
- 说一说jdk1.8中,对hashMap的优化,对concurrentHashMap的优化
- 如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值
- 有1000个数据存在hashmap中,实际的数量是多少,考虑负载因子和扩容
- 常见的RPC有哪些?对应的区别和性能比较?
- 操作系统的用户态和核心态切换条件以及为什么要切换
- 线程间的通信方式,异步队列,消息延迟获取
二面
- MySQL的主从复制怎么做
- MySQL的索引,使用B+树索引的好处
- MySQL性能查看以及如何优化
- Redis是怎么做缓存的
- Redis的持久化操作
- 如何利用redis处理热点数据
- TCP三次握手的过程,如果没有第三次握手有什么问题。
- 分布式锁怎么实现
三面
- cap了解么,分别指什么
- 网络编程nio和netty相关,netty的线程模型,零拷贝实现
- Redis是单线程还是多线程?Redis的分布式集群怎么做?
- 分布式消息队列有哪些(Kafka等)?有使用过哪些?具体应用在什么场景?
- 负载均衡怎么做的呢,为什么这么做,了解过集群雪崩么。
- 谈谈高并发场景下削峰,限流的实现?
四面(HR)
- 为什么跳槽?
- 期望的薪资是多少?
- 如何看待加班问题?
- 平时自己是怎么学习技术的,除了Java相关,还会去了解其他什么技术?
- 未来几年有什么规划?
最后
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
想获取个人高清面试题的可以戳这里免费领取及个人也准备了很多面试题含答案的资料供你刷!
- Java核心知识整理
Java核心知识
- Spring全家桶(实战系列)
- 其他电子书资料
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
92616)]
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
[外链图片转存中…(img-AYG18b8t-1618318092617)]