腾讯面试题(五面腾讯斩获offer定级T3-2)
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。
但说实话,想进大厂还真没那么容易。我的一个朋友在入职腾讯之前,大大小小的面试经历了十几次,最后终于在 4 轮技术面+1 轮 HR面之后成功收到 Offer,40k*16 薪!
第一轮主要考察 Java 基础,比如:
hashmap的实现
Java中的垃圾回收
除了代码之外你还学习了什么技术,框架
死锁是怎么产生的
线程和进程的区别
二、三轮注重对应⽤技术的掌握:
MySQL的索引,B+树性质
Redis的持久化方式
TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办
对于socket编程,accept方法是干什么的,在三次握手中属于第几次
..........
四面则是关于参与过的项目和对业务的理解。
如果这些问题你回答不出来,那么我建议你刷一遍题库。我这里有一份1000+道大厂面试真题!
内容涵盖: Java基础、 MyBatis、ZK、Dubbo、分布式、Redis、MySQL、Spring、 Spring Boot、Spring Cloud、微服务等技术栈
面试题汇总由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,感兴趣的文末查看获取方式!
什么是Mybatis?
Mybatis的优点:
Mybatis框架的缺点:
Mybatis框架适用场合:
MyBatis与Hibernate有哪些不同?
#{}和${}的区别是什么?
当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
模糊查询like语句该怎么写?
通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理
是什么?Dao接口里的方法,参数不同时,方法能重载吗?
Mybatis是如何进行分页的?分页插件的原理是什么?
Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
如何执行批量插入?
如何获取自动生成的(主)键值?
Mybatis动态sql有什么用?执行原理?有哪些动态sql?
Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
MyBatis实现一对一有几种方式?具体怎么操作的?
MyBatis实现一对多有几种方式,怎么操作的?
Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis的一级、二级缓存:
什么是MyBatis的接口绑定?有哪些实现方式?
使用MyBatis的mapper接口调用时有哪些要求?
简述Mybatis的插件运行原理,以及如何编写一个插件。
zookeeper 负载均衡和 nginx 负载均衡区别
Zookeeper Watcher 机制--数据变更通知
客户端注册 Watcher 实现
zookeeper 是如何保证事务的顺序一致性的?
Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
zk 节点宕机如何处理?
为什么要用 Dubbo?
默认使用的是什么通信框架,还有别的选择吗?
服务调用是阻塞的吗?
一般使用什么注册中心?还有别的选择吗?
默认使用什么序列化框架,你知道的还有哪些?
Dubbo 的整体架构设计有哪些分层?
elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
elasticsearch 索引数据多了怎么办,如何调优,部署
elasticsearch 是如何实现 master 选举的
Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
详细描述一下 Elasticsearch 更新和删除文档的过程。
Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
使用 Redis 有哪些好处?
Redis 是单进程单线程的?
Redis 的持久化机制是什么?各自的优缺点?
Redis 常见异常问题和解决方案(雪崩,穿透...)
redis 过期键的删除策略?
为什么 redis 需要把所有数据放到内存中?
Redis 集群的主从复制模型是怎样的?
Redis key 的过期时间和永久有效分别怎么设置?
L 相关存储引擎。
MySQL 索引实现原理。
MySQL 数据库锁。
MySQL 的 SQL 调优。
MySQL 分表分库全局 ID。
Mysql的技术特点是什么?
Heap表是什么?
Mysql服务器默认端口是什么?
如何区分FLOAT和DOUBLE?
区分CHAR_LENGTH和LENGTH?
请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
在Mysql中ENUM的用法是什么?
如何定义REGEXP?
CHAR和VARCHAR的区别?
Mysql查询是否区分大小写?
Mysql中有哪些不同的表格?
什么样的对象可以使用CREATE语句创建?
什么是通用SQL函数?
MYSQL支持事务吗?
mysql里记录货币用什么字段类型好
Mysql中有哪几种锁?
MYSQL数据库服务器性能分析的方法命令有哪些?
在 java 中守护线程和本地线程区别?
什么是多线程中的上下文切换?
Java 中用到的线程调度算法是什么?
什么是线程组,为什么在 Java 中不推荐使用?
在 Java 中 Executor 和 Executors 的区别?
并发编程三要素?
什么是线程池?有哪几种创建方式?
谈谈你对spring IOC 和 DI 的理解,它们有什么区别?
BeanFactory接口和 ApplicationContext 接口有什么区
Spring配置 bean 实例化有哪些方式?
简单地说一下 spring 的生命周期?
请介绍一下 Spring 框架中 Bean 的生命周期和作用域
Bean 注入属性有哪几种方式?
什么是 AOP,AOP 的作用是什么?
Spring的核心类有哪些,各有什么作用?
Spring里面如何配置数据库驱动?
Spring里面 applicationContext.xml 文件能不能改成其他 文件名?
Spring里面如何定义 hibernate mapping?
Spring如何处理线程并发问题?
为什么要有事物传播行为?
介 绍 一 下Spring的 事物管理
解释一下Spring AOP里面的几个名词
通知有哪些类型?
Kafka 与传统 MQ 消息系统之间有三个关键区别?
讲一讲 kafka 的 ack 的三种机制?
消费者故障,出现活锁问题如何解决?
kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?
kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。
基本数据类型的长度
反射
ACID
MVC
RPC和RMI
常见的RPC框架Dubbo
JSWDL开发包的介绍
WEB容器功能
深拷贝和浅拷贝
值传递和引用传递
Ajax
HTTP
HTTP1和HTTP2
常见的编程协议
TCP
3TCP (传输控制协议)和UDP (用户数据报协议)
TCP/IP
Socket
线程的处理流程
阻塞I/O通讯模型
NIO(new 10)
java NIO的工作原理
java.nio.中提供了
10和NIO的区别
NIO的优点
创建线程有几种不同的方式?你喜欢哪-种?为什么?
线程池
静态条件
概括的解释下线程的几种可用状态
用什么关键字修饰同步方法?
stop()和suspend0方法为何不推荐使用?
什么是ThreadLocal?
run()和start()区别
sleep()和wait()有什么区别?
当一个线程进入-一个对象的- -个synchronized方法后,其它线程是否可进入此对象的其它方法?
请说出你所知道的线程同步的方法
线程调度和线程控制
JMM
同步和异步有何异同,在什么情况下分别使用他们?举例说明
什么是线程饿死,什么是活锁?
多线程中的忙循环是什么?
简述synchronized和java.util. concurrent.locks.Lock的异同?
同步方法和同步代码块区别:
如何确保N个线程可以访问N个资源同时又不导致死锁?
什么是原子操作
volatile变量是什么? volatile 变量和atomic变量有什么不同
volatile类型变量提供什么保证?能使得一个非原 子操作变成原子操作吗
能创建volatile数组吗?
-张表,里面有ID自增主键,当insert了 17条记录之后,删除了第15,16,17条记录,再把Mysql .
重启,再insert- 条记录,这条记录的ID是18还是15?
Heap表是什么?
Mysq|服务器默认端口是什么?
与Oracle相比,Mysq|有什么 优势?
区分CHAR_ LENGTH和LENGTH?
请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
在Mysq|中ENUM的用法是什么?
如何定义REGEXP?
CHAR和VARCHAR的区别?
列的字符串类型可以是什么?
如何获取当前的Mysql版本?
Mysql中使用什么存储引擎?
TIMEST TAMP在UPDATE CURRENT_ _TIMESTAMP数据类型上做什么?
主键和候选键有什么区别?
如何使用Unix shell登录Mysq|?
myisamchk是用来做什么的?
MYSQL数据库服务器性能分析的方法命令有哪些?
如何控制HEAP表的最大尺寸?
MyISAM Static和MyISAM Dynamic有什么区别?
federated表是什么?
如果-个表有- -列定义为TIMESTAMP,将发生什么?
列设置为AUTO INCREMENT时,如果在表中达到最大值,会发生什么情况?
怎样才能找出最后- -次插入时分配了哪个自动增量?
你怎么看到为表格定义的所有索引?
LIKE声明中的%和_是什么意思?
如何在Unix和Mysq|时间戳之间进行转换?
列对比运算符是什么?
我们如何得到受查询影响的行数?
Mysq查询是否区分大小写?
LIKE和REGEXP操作有什么区别?
BLOB和TEXT有什么区别?
mysql fetch. array和mysql _fetch. _object的区别是什么?
数据库的三范式?
我们如何在mysq|中运行批处理模式?
MyISAM表格将在哪里存储,并且还提供其存储格式?
Mysq|中有哪些不同的表格?
ISAM是什么?
InnoDB是什么?
Mysq|如何优化DISTINCT?
如何显示前50行?
可以使用多少列创建索引?
NOW ()和CURRENT_ DATE ()有什么区别?
什么样的对象可以使用CREATE语句创建?
Mysq|表中允许有多少个TRIGGERS?
什么是非标准字符串类型?
什么是通用SQL函数?
解释访问控制列表
MYSQL支持事务吗?
mysq|里记录货币用什么字段类型好
MYSQL数据表在什么情况下容易损坏?
mysq|有关权限的表都有哪几个?
Mysq|中有哪几种锁?
Mysq|数据优化
MySQL的关键字
存储引擎
数据库备份
如何显示创表语句以及给表中添加字段
SQL语言分类
truncate delete drop的区别:
说出ArrayList,Vector, LinkedL ist的存储性能和特性
HashMap和Hashtable的区别
快速失败(ail-fast)和安全失败(fail-safe)的区别是什么?
hashmap的数据结构
HashMap的工作原理是什么?
Hashmap什么时候进行扩容呢?
CorrentHashMap的工作原理?
Java集合类框架的基本接口有哪些?
HashSet和TreeSet有什么区别?
HashSet的底层实现是什么?
LinkedHashMap的实现原理?
为什么集合类没有实现Cloneable和Serializable接口?
什么是迭代器(terator)?
Iterator和Listlterator的区别是什么?
数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
Java集合类框架的最佳实践有哪些?
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals(?它们有何区别