200+ Java常见面试题总结《最少必要面试题》
Posted JavaPub-rodert
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了200+ Java常见面试题总结《最少必要面试题》相关的知识,希望对你有一定的参考价值。
答案解析见文末
这份【Java常见面试题总结】我想准备很久了,前面做面试官,后来自己也面了很多一线二线互联网公司,希望通过当下真实经历做一份面试题总结,助力金九银十,喜提心仪 Offer。
pub哥刚开始找工作时,觉得看面试题再找是作弊行为,不屑于刷题,干看技术教程。其实不然:
- 经过多年的工作看,面试中问到的,大多都是我们在实际工作中用到的一些硬知识或软知识;
- 每一次面试都是技术人之间的技术切磋,就和练武一样,都有助于技术和认知的提升;
- 知道的知识更多肯定不是一件坏事;
- 注意:最重要一点事,网络上大多数答案属于ctrlCV,有一些错误答案也被大量传播,致力于纠正一些错误。
适合人群
- 准备有面试/晋升的程序员;
- 希望夯实Java基础的程序员;
- 团队Leader;
- 准面试官。
面试题模块
目前打算从如下几个模块开始,包含 Java 基础,JVM,容器,注解,多线程,反射,异常,网络,对象拷贝,JavaWeb,设计模式,Spring-Spring MVC,Spring Boot / Spring Cloud,Mybatis / Hibernate,Kafka,RocketMQ,Zookeeper,MySQL,Redis,Elasticsearch,Lucene
面试题
下面一起来看看有哪些具体内容
Java基础
- instanceof 关键字的作用
- Java自动装箱和拆箱
- 重载和重写区别
- equals与==区别
- 谈谈NIO和BIO区别
- String、StringBuffer、StringBuilder 的区别是什么?
- 泛型是什么,有什么特点
- final 有哪些用法
- 说一下Java注解
- Java创建对象有几种方式
JVM
- 说一说JVM的主要组成部分
- 说一下 JVM 的作用?
- 说一下堆栈的区别?
- Java内存泄漏
- JVM 有哪些垃圾回收算法?
- 说一下 JVM 有哪些垃圾回收器?
- 说一下类加载的执行过程?
- 什么是双亲委派模型?为什么要使用双亲委派模型?
- CMS垃圾清理的过程
- 常用的 JVM 调优的参数都有哪些?
容器
异常
注解
多线程
- start()方法和run()方法的区别
- volatile关键字的作用
- sleep方法和wait方法有什么区别
- 如何停止一个正在运行的线程?
- java如何实现多线程之间的通讯和协作?(如何在两个线程间共享数据?)
- 什么是ThreadLocal?
- Java 中 CountDownLatch 和 CyclicBarrier 有什么不同?
- 如何避免死锁?
- Java 中 synchronized 和 ReentrantLock 有什么不同?
- 有三个线程 T1,T2,T3,怎么确保它们按顺序执行?
JavaWeb
- Cookie,Session的区别
- 什么是 jsp,什么是 Servlet? jsp 和 Servlet 有什么区别?
Spring
- 什么是 Spring 框架?Spring 框架有哪些主要模块?
- Spring IOC、AOP举例说明
- 什么是控制反转(IOC)?什么是依赖注入(DI)?
- 描述一下 Spring Bean 的生命周期?
- Spring Bean 的作用域之间有什么区别?
- Spring中都应用了哪些设计模式
- Spring AOP里面的几个名词的概念
- BeanFactory和ApplicationContext有什么区别?
- Spring如何解决循环依赖问题:
- Spring事务的实现方式和实现原理:
mysql
- mysql有哪几种log
- MySQL的复制原理以及流程
- 事物的4种隔离级别
- 相关概念
- MySQL数据库几个基本的索引类型
- drop、delete与truncate的区
- 数据库的乐观锁和悲观锁是什么?
- SQL优化方式
- 从锁的类别上分MySQL都有哪些锁呢?
Docker
- 什么是 Docker 容器?
- Docker 和虚拟机有什么不同?
- 什么是 DockerFile?
- 使用Docker Compose时如何保证容器A先于容器B运行?
- 一个完整的Docker由哪些部分组成?
- docker常用命令
- 描述 Docker 容器的生命周期。
- docker容器之间怎么隔离?
Lucene
- Lucene 的数据结构是什么样的?
Elasticsearch
- 说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
- elasticsearch 的倒排索引是什么
- elasticsearch 是如何实现 master 选举的
- 描述一下 Elasticsearch 索引文档的过程
- 详细描述一下 Elasticsearch 搜索的过程?
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
- Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?
- 客户端在和集群连接时,如何选择特定的节点执行请求的?
- 详细描述一下 Elasticsearch 更新和删除文档的过程。
- Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
- 在并发情况下,Elasticsearch 如果保证读写一致?
- 介绍一下你们的个性化搜索方案?
Redis
- Redis是什么?
- 你在哪些场景使用redis
- 为什么Redis是单线程的?
- Redis持久化有几种方式?
- 什么是缓存穿透?怎么解决?
- 什么是缓存雪崩?
- Redis使用上如何做内存优化?
- 你们redis使用哪种部署方式?
- redis实现分布式锁要注意什么?
kafka
- kafka 是什么?有什么作用?
- kafka 的架构是怎么样的?
- Kafka Replicas是怎么管理的?
- 如何确定当前能读到哪一条消息?
- 发送消息的分区策略有哪些?
- Kafka 的可靠性是怎么保证的?
- 分区再分配是做什么的?解决了什么问题?
- Kafka Partition 副本 leader 是怎么选举的?
- 分区数越多越好吗?吞吐量就会越高吗?
- kafka 为什么这么快?
算法题
- 最长公共子串
- 反转链表
查看更多面试题及答案:
JavaPub回复:pdf
以上是关于200+ Java常见面试题总结《最少必要面试题》的主要内容,如果未能解决你的问题,请参考以下文章