您的位置 首页 java

Java自动化测试,必备知识梳理及面试题分享

点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍,小窗口回复“资源”、“测试工具包”领取测试资源。

本文3440字,阅读约需7分钟

Hi,大家好。在此之前投送过 Python 知识梳理:8张 思维导图 ,梳理Python知识体系。以及 Java 知识梳理:28张思维导图,梳理Java知识体系

今天附上Java 面试题 ,包括Java基础、并发、 JVM Redis MySQL 、分布式、微服务、性能优化,面试前来康康,对照问题查漏补缺,Offer妥妥的!

Java并发

(面试题)

Synchronized 相关问题:

1. Synchronized 用过吗,其原理是什么?

2. 获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

3. 乐观锁 一定就是好的吗?

可重入锁 ReentrantLock 及其他显式锁相关问题:

1. 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具?

2. CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?

Java 线程池 相关问题:

1. Java 中的线程池是如何实现的?

2. 如何在 Java 线程池中提交 线程

Java 内存模型 相关问题:

1. 请对比下 volatile 对比 Synchronized 的异同。

2. 请谈谈 ThreadLocal 是怎么解决并发安全的?

3. 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?

4. 你在 多线程 环境中遇到的常见的问题是什么?你是怎么解决它的?

JVM和性能优化

我们所有的程序都运行在 Java虚拟机 上,只有对Java虚拟机底层原理进行深入的学习,全面理解JVM的运行机制、运行时数据区、垃圾收集算法等,还有事务及 Spring MVC 整个流程、AQS等。

(面试题)

1. 什么情况下会发生栈内存溢出?

2. JVM的内存结构,Eden和Survivor比例?

3. JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor?

4. JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数?

5. 你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms 和G1,包括原理,流程,优缺点?

6. 垃圾回收算法的实现原理?

7. 当出现内存溢出,你怎么排错?

Spring

Spring作为现在最流行Java开发技术,其内部源码设计非常优秀, MyBatis 阿里 等大厂十分流行,BAT等一线互联网公司面试也一定会涉及源码解析的问题。

(面试题)

1. 使用 Spring框架 能带来哪些好处?

2. 什么是控制反转(IOC)?什么是依赖注入?

3. 请解释Spring bean 的生命周期?

4. 你知道spring的生命周期初始化 回调 方法有几种方法实现?实现原理是什么?或者说他们的执行时机和在bean的生命周期哪里体现了?

5. 你平常工作中有做过一些spring的二次开发吗?或者你有没有针对spring去实现过扩展?

6. MyBatis源码中用了哪些设计模式?为什么要用这些设计模式?

7. 什么是缓存雪崩?如何解决?

微服务

(面试题)

1. Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

2. Dubbo超时时间怎样设置?

3. Dubbo集群的负载均衡有哪些策略

4. Dubbo的主要应用场景?

5. Dubbo的核心功能?

6. springboot启动机制?

数据库相关

(面试题)

MySQL:

1. 索引 的工作原理及其种类?

2. 与 Oracle 相比,MySQL有什么优势?

3. 为什么 B+树 相对于 B树 在查询上会更加优秀吗?

4. 一张表,里面有ID自增主键,当insert 了17条记录之后,删除了第15,16,17 条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?

5. 主键、 超键 、候选键 、 外键 ,谈谈你的理解?

6. 数据库事务 的四个特性及含义?

Redis:

1.Redis相比 memcached 有哪些优势?

2.Redis常见性能问题和解决方案

3.MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?

4.Memcache与Redis的区别都有哪些?

5. Redis最适合的场景?

6. 是否使用过Redis集群,集群的原理是什么?

MongoDB:

1. MongoDB的优势有哪些?

2. 在MongoDB中如何创建一个新的数据库?

分布式

(面试题)

1. zookeeper 有哪些应用场景?

2. zk的分布式锁?

3. 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?

4. 使用“反向代理服务器”的优点是什么?

5. 请列举Nginx服务器的最佳用途?

Docker

(面试题)

1.谈谈你对Docker的理解?

2.Docker 有什么优势?

3. Docker 容器 有几种在状态?

4.有什么常用的 Docker 命令?

5.如何让容器随着 Docker 服务启动而自动启动?

6.什么是仓库?

7.什么是镜像?

8.什么是容器?

9.仓库、镜像、容器的关系是?

10.如何指定容器的 端口映射

11.如何修改容器的目录映射?

12.如何查看官方镜像服务的默认端口是什么?

Git

(面试题)

1.在 Git 中提交的命令是什么?

2.什么是 Git 中的“裸存储库”?

3.如何在Git中创建存储库?

4.怎样将 N 次提交压缩成一次提交?

5.什么是 Git 复刻( Fork )?、

6.分支(branch)和克隆(clone)之间有什么区别?

7.“拉取请求(pull request )”和“分支(branch)”之间有什么区别?

8.如何Git 恢复先前的提交?

性能优化

(面试题)

1.双11高并发大促场景下,为什么只能够下订单, 而不能够退款?(服务降级等)

2. 支付宝 系统可以从哪些角度优化提升性能?(缓存、异步、分布式等)

3. 天猫 上亿商品数据如何完成快速统计?(Fork/Join任务拆分等)

4.支付宝转账提现功能应该如何优化?(一致性、高吞吐方案等)

5.淘宝网络抖动,如何避免用户重复下订单?

如果想要获取以上 xmind 版思维导图,可以在ITester软件测试小栈微信公众号后台回复“Java复盘”领取(含百度网盘链接、阿里云盘链接)。

更多系列文章

敬请期待


ITester软件测试小栈(ID:ITestingA),专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。

想获取更多最新干货内容

快来 星标 置顶 关注

文章来源:智云一二三科技

文章标题:Java自动化测试,必备知识梳理及面试题分享

文章地址:https://www.zhihuclub.com/194436.shtml

关于作者: 智云科技

热门文章

网站地图