200+ Java常见面试题总结《最少必要面试题》

Posted JavaPub-rodert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了200+ Java常见面试题总结《最少必要面试题》相关的知识,希望对你有一定的参考价值。

答案解析见文末

这份【Java常见面试题总结】我想准备很久了,前面做面试官,后来自己也面了很多一线二线互联网公司,希望通过当下真实经历做一份面试题总结,助力金九银十,喜提心仪 Offer。

pub哥刚开始找工作时,觉得看面试题再找是作弊行为,不屑于刷题,干看技术教程。其实不然:

  1. 经过多年的工作看,面试中问到的,大多都是我们在实际工作中用到的一些硬知识或软知识;
  2. 每一次面试都是技术人之间的技术切磋,就和练武一样,都有助于技术和认知的提升;
  3. 知道的知识更多肯定不是一件坏事;
  4. 注意:最重要一点事,网络上大多数答案属于ctrlCV,有一些错误答案也被大量传播,致力于纠正一些错误。

适合人群

  • 准备有面试/晋升的程序员
  • 希望夯实Java基础的程序员;
  • 团队Leader;
  • 准面试官。

面试题模块

目前打算从如下几个模块开始,包含 Java 基础,JVM,容器,注解,多线程,反射,异常,网络,对象拷贝,JavaWeb,设计模式,Spring-Spring MVC,Spring Boot / Spring Cloud,Mybatis / Hibernate,Kafka,RocketMQ,Zookeeper,MySQL,Redis,Elasticsearch,Lucene

面试题

下面一起来看看有哪些具体内容

Java基础

  1. instanceof 关键字的作用
  2. Java自动装箱和拆箱
  3. 重载和重写区别
  4. equals与==区别
  5. 谈谈NIO和BIO区别
  6. String、StringBuffer、StringBuilder 的区别是什么?
  7. 泛型是什么,有什么特点
  8. final 有哪些用法
  9. 说一下Java注解
  10. Java创建对象有几种方式

JVM

  1. 说一说JVM的主要组成部分
  2. 说一下 JVM 的作用?
  3. 说一下堆栈的区别?
  4. Java内存泄漏
  5. JVM 有哪些垃圾回收算法?
  6. 说一下 JVM 有哪些垃圾回收器?
  7. 说一下类加载的执行过程?
  8. 什么是双亲委派模型?为什么要使用双亲委派模型?
  9. CMS垃圾清理的过程
  10. 常用的 JVM 调优的参数都有哪些?

容器
异常
注解

多线程

  1. start()方法和run()方法的区别
  2. volatile关键字的作用
  3. sleep方法和wait方法有什么区别
  4. 如何停止一个正在运行的线程?
  5. java如何实现多线程之间的通讯和协作?(如何在两个线程间共享数据?)
  6. 什么是ThreadLocal?
  7. Java 中 CountDownLatch 和 CyclicBarrier 有什么不同?
  8. 如何避免死锁?
  9. Java 中 synchronized 和 ReentrantLock 有什么不同?
  10. 有三个线程 T1,T2,T3,怎么确保它们按顺序执行?

JavaWeb

  1. Cookie,Session的区别
  2. 什么是 jsp,什么是 Servlet? jsp 和 Servlet 有什么区别?

Spring

  1. 什么是 Spring 框架?Spring 框架有哪些主要模块?
  2. Spring IOC、AOP举例说明
  3. 什么是控制反转(IOC)?什么是依赖注入(DI)?
  4. 描述一下 Spring Bean 的生命周期?
  5. Spring Bean 的作用域之间有什么区别?
  6. Spring中都应用了哪些设计模式
  7. Spring AOP里面的几个名词的概念
  8. BeanFactory和ApplicationContext有什么区别?
  9. Spring如何解决循环依赖问题:
  10. Spring事务的实现方式和实现原理:

mysql

  1. mysql有哪几种log
  2. MySQL的复制原理以及流程
  3. 事物的4种隔离级别
  4. 相关概念
  5. MySQL数据库几个基本的索引类型
  6. drop、delete与truncate的区
  7. 数据库的乐观锁和悲观锁是什么?
  8. SQL优化方式
  9. 从锁的类别上分MySQL都有哪些锁呢?

Docker

  1. 什么是 Docker 容器?
  2. Docker 和虚拟机有什么不同?
  3. 什么是 DockerFile?
  4. 使用Docker Compose时如何保证容器A先于容器B运行?
  5. 一个完整的Docker由哪些部分组成?
  6. docker常用命令
  7. 描述 Docker 容器的生命周期。
  8. docker容器之间怎么隔离?

Lucene

  1. Lucene 的数据结构是什么样的?

Elasticsearch

  1. 说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
  2. elasticsearch 的倒排索引是什么
  3. elasticsearch 是如何实现 master 选举的
  4. 描述一下 Elasticsearch 索引文档的过程
  5. 详细描述一下 Elasticsearch 搜索的过程?
  6. Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
  7. Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?
  8. 客户端在和集群连接时,如何选择特定的节点执行请求的?
  9. 详细描述一下 Elasticsearch 更新和删除文档的过程。
  10. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
  11. 在并发情况下,Elasticsearch 如果保证读写一致?
  12. 介绍一下你们的个性化搜索方案?

Redis

  1. Redis是什么?
  2. 你在哪些场景使用redis
  3. 为什么Redis是单线程的?
  4. Redis持久化有几种方式?
  5. 什么是缓存穿透?怎么解决?
  6. 什么是缓存雪崩?
  7. Redis使用上如何做内存优化?
  8. 你们redis使用哪种部署方式?
  9. redis实现分布式锁要注意什么?

kafka

  1. kafka 是什么?有什么作用?
  2. kafka 的架构是怎么样的?
  3. Kafka Replicas是怎么管理的?
  4. 如何确定当前能读到哪一条消息?
  5. 发送消息的分区策略有哪些?
  6. Kafka 的可靠性是怎么保证的?
  7. 分区再分配是做什么的?解决了什么问题?
  8. Kafka Partition 副本 leader 是怎么选举的?
  9. 分区数越多越好吗?吞吐量就会越高吗?
  10. kafka 为什么这么快?

算法题

  1. 最长公共子串
  2. 反转链表

查看更多面试题及答案:
JavaPub回复:pdf

关注公众号,回复1024,获取Java学习路线思维导图、加入金九银十计划学习交流群

以上是关于200+ Java常见面试题总结《最少必要面试题》的主要内容,如果未能解决你的问题,请参考以下文章

我花了一周,总结了一份Java学习/面试自测指南!200+道Java最常见面试题!

面试题MySQL常见面试题合集

面试题Redis篇-常见面试题p1

面试题Redis篇-常见面试题p1

Java集合面试题看这篇就够了

Java集合面试题看这篇就够了