Java 一面基本上都是基础题,同样是 CURD 的活,谁更熟练要谁,比如下面这些面试题,八股文越熟练越容易通过 Java 面试。
下面会给大家详解的介绍一下每个技术点的必问问题!
一、Java 基础
-
1.JDK动态代理和CGLIB动态代理的区别
-
2.静态代理和动态代理的区别
-
3.ArrayList和LinkedList有什么区别?
-
4.重写和重载的区别
-
5.Java 8的接口新增了哪些特性?
-
6.抽象类和接口(Java7)的区别
-
7.为什么要有 hashCode
-
8.hashCode()介绍
-
9.hashCode 与 equals (重要)
-
10.Java中异常分为哪些种类?
-
11.内部类的分类有哪些
-
12.什么是内部类?
-
13.什么是方法的返回值?返回值的作用是什么?
-
14.静态方法和实例方法有何不同?
-
15.静态变量和实例变量区别
-
16.构造方法有哪些特性?
-
17.在Java中定义一个不做事且没有参数的构造方法的作用
-
18.break ,continue ,return 的区别及作用
-
19.static注意事项
-
20.static应用场景
-
21.static的独特之处
-
22.static存在的主要意义
-
23.this与super的区别
-
24.super关键字的用法
-
25.String类的常用方法有哪些?
-
26.char型变量中能否能不能存储一个中文汉字,为什么?
-
27.是否可以继承String类?
-
28.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对 不对?
-
29.构造器(constructor)是否可被重写(override)?
-
30.谈谈你对多态的理解?
-
31.Java中实现多态的机制是什么?
-
32.new一个对象的过程和clone一个对象的区别?
-
33.深克隆和浅克隆?
-
34.Java中为什么要用 clone?
-
35.Java 中操作字符串都有哪些类?它们之间有什么区别?
-
36.String str = “i” 和String str = new String(“1”)一样吗?
-
37.final finally finalize的区别
-
38.final 有什么用?
-
39.Java有哪些数据类型
-
40.什么是Java注释
-
41.用最有效率的方法计算2乘以8?
-
42.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
-
43.&和&&的区别?
-
44.Java有没有goto?
-
45.float f=3.4;是否正确?
-
46.访问修饰符public,private,protected,以及不写(默认)时的区别?
-
47.Java语言有哪些特点
-
48.什么是Java程序的主类?应用程序和小程序的主类有何不同?
-
49.说下面向对象四大特性
特意整理了这些面试题,涵盖 Java 基础、集合、并发、MySQL、Kafka 等高频知识点,第一版有 16 万字,并且还在持续完善中,每个月都会更新一版。
给大家看一下目录。
二、Java IO
-
1.IO多路复用的底层原理
-
2.缓冲区是什么意思?
-
3.通道是个什么意思?
-
4.同步、异步、阻塞、非堵塞
-
5.阻塞与非阻塞
-
6.同步与异步
-
7.什么是AIO
-
8.什么是NIO
-
9.什么是BIO
-
10.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?
-
11.什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征?
-
12.PrintStream、BufferedWriter、PrintWriter的比较?
-
13.字节流和字符流的区别?
-
14.如何实现 java 序列化?
-
15.什么是 java序列化?
-
16.Java 中有几种类型的流?
三、Java虚拟机
-
1.如何判断一个常量是废弃常量 ?
-
2.程序计数器为什么是私有的?
-
3.JRE、JDK、JVM 及 JIT 之间有什么不同?
-
4.JVM调优命令有哪些?
-
5.说一下 JVM 调优的工具?
-
6.介绍一下类文件结构吧!
-
7.如何判断一个类是无用的类?
-
8.Java会存在内存泄漏吗?请简单描述。
-
9.Minor Gc和Full GC 有什么不同呢?
-
10.说一下堆内存中对象的分配的基本策略
-
11.对象的访问定位有哪几种方式?
-
12.说一下Java对象的创建过程
-
13.Java 8 为什么要将永久代(PermGen)替换为元空间(MetaSpace)呢?
-
14.说一下堆和栈的区别
-
15.怎么打破双亲委派模型?
-
16.为什么需要双亲委派模式?
-
17.怎么打出线程栈信息?
-
18.说说你知道的几种主要的JVM参数
-
19.什么是happen-before原则?
-
20.什么是内存屏障?
-
21.什么是指令重排序?
-
22.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代?
-
23.JVM新生代中为什么要分为Eden和Survivor?
-
24.什么情况下会发生栈内存溢出?
-
25.Java对象的布局了解过吗?
-
26.Tomcat是怎么打破双亲委派机制的呢?
-
27.什么是双亲委派机制?
-
28.说下有哪些类加载器?
-
29.说说类加载的过程
-
30.ZGC收集器中的染色指针有什么用?
-
31.说说ZGC垃圾收集器的工作原理
-
32.说说G1垃圾收集器的工作原理
-
33.说说CMS垃圾收集器的工作原理
-
34.你了解过哪些垃圾收集器?
-
35.对象都是优先分配在年轻代上的吗?
-
36.GC Roots有哪些?
-
37.JVM怎么判断一个对象是不是要回收?
-
38.Java里有哪些引用类型?
-
39.你熟悉哪些垃圾收集算法?
-
40.字符串常量存放在哪个区域?
-
41.程序计数器有什么作用?
-
42.栈帧里面包含哪些东西?
四、Kafka
-
1.简述Follower副本消息同步的完整流程
-
2.JavaConsumer为什么采用单线程来获取消息?
-
3.Controller发生网络分区(NetworkPartitioning)时,Kafka会怎么样?
-
4.Kafka的哪些场景中使用了零拷贝(ZeroCopy)?
-
5.分区Leader选举策略有几种?
-
6.consumer_offsets是做什么用的?
-
7.Kafka能手动删除消息吗?
-
8.LEO、LSO、AR、ISR、HW都表示什么含义?
-
9.Leader总是-1,怎么破?
-
10.如何估算Kafka集群的机器数量?
-
11.Broker的HeapSize如何设置?
-
12.监控Kafka的框架都有哪些?
-
13.如何设置Kafka能接收的最大消息的大小?
-
14.阐述下Kafka中的领导者副本(LeaderReplica)和追随者副本(FollowerReplica)的区别
-
15.解释下Kafka中位移(offset)的作用
-
16.什么是消费者组?
-
17.kafka如何实现延迟队列?
-
18.Kafka中是怎么体现消息顺序性的?
-
19.为什么Kafka不支持读写分离?
-
20.Kafka中的消息是否会丢失和重复消费?
-
21.kafka的message格式是什么样的?
-
22.如果leadercrash时,ISR为空怎么办?
-
23.kafkaunclean配置代表啥?会对sparkstreaming消费有什么影响?
-
24.kafkaproducer打数据,ack为0,1,-1的时候代表啥,设置-1的时候,什么情况下,leader会认为一条消息commit了
-
25.kafkaproducer如何优化打入速度?
-
26.kafka为什么那么快?
-
27.什么情况下一个broker会从ISR中被踢出去?
-
28.kafkafollower如何与leader同步数据?
-
29.kafka中的zookeeper起到什么作用?可以不用zookeeper么?
-
30.kafka中的broker是干什么的?
-
31.Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?
-
32.为什么要使用kafka?为什么要使用消息队列?
五、MySQL
-
1.解释MySQL外连接、内连接与自连接的区别
-
2.Mysql如何优化DISTINCT?
-
3.自增主键最大ID记录,MyISAM和InnoDB分别是如何存储的
-
4.MySQL主从复制原理流程
-
5.delete、truncate、drop区别
-
6.key和index的区别
-
7.MySQL优化
-
8.行级锁定的缺点
-
9.行级锁定的优点
-
10.在MVCC并发控制中,读操作可以分成哪几类?
-
11.MVVC了解过吗
-
12.表分区有什么好处?
-
13.表分区与分表的区别
-
14.什么是表分区?
-
15.什么情况下应不建或少建索引
-
16.说一说三个范式
-
17.什么是存储过程?有哪些优缺点?
-
18.关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
-
19.超大分页怎么处理?
-
20.MySQL的binlog有有几种录入格式?分别有什么区别?
-
21.varchar(10)和int(10)代表什么含义?
-
22.如果要存储用户的密码散列,应该使用什么字段进行存储?
-
23.字段为什么要求定义为notnull?
-
24.主键使用自增ID还是UUID?
-
25.为什么要尽量设定一个主键?
-
26.在哪些情况下会发生针对该列创建了索引但是在查询的时候并没有使用呢?
-
27.MySQL有哪些日志,分别是什么用处?
-
28.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
-
29.MySQL的redo日志的刷盘时机
-
30.MySQL的redo日志和undo日志分别有什么用?
-
31.为什么InnoDB一定会生成主键?
-
32.InnoDB如果没有设置主键的话,它内部会怎么处理?
-
33.InnoDB删除某条记录后,内部会怎么处理?
-
34.InnoDB主键索引跟非主键索引在数据存储上的差异
-
35.InnoDB的数据是怎么存储的?
-
36.MyIsam的数据是怎么存储的?
-
37.InnoDB有聚簇索引吗?MyIsam呢?
-
38.什么是聚簇索引?
-
39.MySQL索引的类型
-
40.有了解过“回表”的概念吗?什么情况下会出现“回表”?
-
41.事务的隔离级别了解过吗?
-
42.说一下什么是事务的ACID属性吧
-
43.了解过哪些存储引擎?各有什么优缺点?
-
44.在建立索引的时候,都有哪些需要考虑的因素呢?
-
45.Hash索引和B+树索引有什么区别或者说优劣呢?
-
46.索引是个什么样的数据结构呢?
-
47.什么是索引?
八、Netty
-
1.Netty高性能体现在哪些方面?
-
2.说说Netty的执行流程?
-
3.Netty 支持哪些心跳类型设置?
-
4.Netty 发送消息有几种方式?
-
5.Netty 中有哪些重要组件?
-
6.Netty 的心跳机制了解么?
-
7.Netty 的零拷贝了解么?
-
8.Netty 的应用场景了解么?
-
9.为什么要用 Netty?
-
10.Netty 是什么?
-
11.UDP协议会有粘包拆包的问题吗?为什么?
-
12.了解过粘包拆包吗?为什么会出现粘包拆包?怎么处理粘包拆包?
-
13.什么是Reactor模型?Reactor的3种版本都知道吗?
九、RabbitMQ
-
1.vhost 是什么?起什么作用?
-
2.RabbitMQ 有几种广播类型?
-
3.要保证消息持久化成功的条件有哪些?
-
4.如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
-
5.RabbitMQ有哪些重要的角色?
-
6.RabbitMQ的使用场景有哪些?
-
7.RabbitMQ 怎么避免消息丢失?
-
8.RabbitMQ 的消息是怎么发送的?
-
9.若cluster中拥有某个queue的owner node失效了,且该queue 被声明具有 durable属性,是否能够成功从其他node上重新声明该 queue ?
-
10.客户端连接到cluster中的任意node上是否都能正常工作?
-
11.在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行 binding会有什么不同?
-
12.什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪 些?元数据是如何保存的?元数据在cluster中是如何分布的?
-
13.RabbitMQ有什么优缺点?
-
14.什么是RabbitMQ?为什么使用RabbitMQ?
-
15.死信队列和延迟队列的使用
-
16.如何避免消息重复投递或重复消费?
-
17.如何确保消息接收方消费了消息?
-
18.消息怎么路由?
-
19.消息如何分发?
-
20.消息基于什么传输?
十、Redis
-
1.Redis如何做内存优化?
-
2.Redis中的管道有什么用?
-
3.Redis和Redisson有什么关系?
-
4.Redis有哪些适合的场景?
-
5.MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都 是热点数据?
-
6.Redis 集群方案什么情况下会导致整个集群不可用?
-
7.Redis 集群方案应该怎么做?都有哪些方案?
-
8.Redis String的内部编码有哪些?
-
9.用Redis做延时队列,具体应该怎么实现?
-
10.Redis在集群种查找key的时候,是怎么定位到具体节点的?
-
11.Redis的持久化了解过吗?
-
12.Redis在什么情况下会触发key的回收?
-
13.Redis key的淘汰策略有哪些?
-
14.Redis事务机制了解过吗?
-
15.使用Redis统计网站的UV,应该怎么做?
-
16.Redis中的大key怎么处理?
-
17.Redis中的热key怎么处理?
-
18.缓存失效?缓存穿透?缓存雪崩?缓存并发?
-
19.Redis集群如何选择数据库?
-
20.Redis如何设置密码及验证密码?
-
21.为什么 Redis 需要把所有数据放到内存中?
-
22.Redis 官方为什么不提供 Windows 版本?
-
23.Redis是单线程还是多线程?
-
24.Redis为什么那么快?
-
25.一个字符串类型的值能存储最大容量是多少?
-
26.Redis的全称是什么?
-
27.Redis主要消耗什么物理资源?
-
28.Redis有哪些数据结构?
-
29.Redis相比memcached有哪些优势?
-
30.什么是Redis?简述它的优缺点?
十一、Spring
-
1.@Component和@Bean的区别是什么?
-
2.Spring框架中用到了哪些设计模式?
-
3.Spring MVC的工作原理了解嘛?
-
4.Spring中的bean生命周期了解过吗?
-
5.Bean 工厂和 Application contexts 有什么区别?
-
6.ApplicationContext通常的实现是什么?
-
7.Spring AOP 实现原理
-
8.有哪些不同类型的IOC(依赖注入)?
-
9.解释自动装配的各种模式?
-
10.Resource 是如何被查找、加载的?
-
11.BeanFactory和ApplicationContext有什么区别?
-
12.Spring 事务底层原理
-
13.Spring事务中有哪几种事务传播行为?
-
14.Spring事务中的隔离级别有哪几种?
-
15.Spring事务管理的方式有几种?
-
16.将一个类声明为Spring的bean的注解有哪些?
-
17.Spring中的单例bean的线程安全问题了解吗?
-
18.Spring中的bean的作用域有哪些?
-
19.谈谈自己对于Spring AOP的理解
-
20.Spring AOP和AspectJ AOP有什么区别?
-
21.谈谈自己对于Spring IOC的理解
-
22.Spring Boot手动装配有哪几种方式?
-
23.Spring是怎么解决循环依赖的?
-
24.Spring由哪些模块组成?
-
25.使用Spring框架的好处是什么?
-
26.什么是spring?
十二、Spring Boot
-
1.SpringBoot 2.X有哪些新特性?与1.X有什么区别?
-
2.保护SpringBoot应用有哪些方法?
-
3.Spring Boot的核心注解是哪些?他由哪几个注解组成的?
-
4.Spring Boot中如何解决跨域问题?
-
5.比较一下Spring Security和Shiro各自的优缺点?
-
6.如何实现Spring Boot应用程序的安全性?
-
7.什么是Swagger?你用Spring Boot实现了吗?
-
8.如何使用配置文件通过 Spring Boot 配置特定环境的配置?
-
9.如何使用 Spring Boot 部署到不同的服务器?
-
10.如何在 Spring Boot 中添加通用的 JS 代码?
-
11.什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
-
12.为什么我们需要 spring-boot-maven-plugin?
-
13.Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?
-
14.怎么使用 Maven 来构建一个 SpringBoot 程序?
-
15.如何在 Spring Boot 中禁用 Actuator 端点安全性?
-
16.Spring Boot 中的监视器是什么?
-
17.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
-
18.Spring 和 SpringBoot 有什么不同?
-
19.创建一个 Spring Boot Project 的最简单的方法是什么?
-
20.Spring Boot 有哪些优点?
-
21.什么是springboot
十三、Spring Cloud
-
1.Eureka和zookeeper都可以提供服务注册与发现的功能,两者的区别
-
2.SpringCloud Config可以实现实时刷新吗?
-
3.什么是 Spring Cloud Bus?
-
4.如何实现动态Zuul网关路由转发?
-
5.ZuulFilter有哪些常用方法?
-
6.什么是服务雪崩效应?
-
7.什么是服务熔断?什么是服务降级?
-
8.什么是zuul?
-
9.说说Eureka的自我保护机制?
-
10.Eureka的工作原理?
-
11.什么是Netflix Feign?它的优点是什么?
-
12.什么是Hystrix断路器?我们需要它吗?
-
13.什么是Hystrix?它如何实现容错?
-
14.Spring Cloud由哪些组件组成?
-
15.服务注册和发现是什么意思?Spring Cloud如何实现?
-
16.使用Spring Cloud有什么优势?
-
17.什么是 Spring Cloud?
十四、Zookeeper
-
1.zookeeper负载均衡和nginx负载均衡区别
-
2.Zookeeper 和 Dubbo 的关系?
-
3.Zookeeper的典型应用场景
-
4.ZAB和Paxos算法的联系与区别?
-
5.Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?
-
6.集群支持动态添加机器吗?
-
7.集群最少要几台机器,集群规则是怎样的?
-
8.Zookeeper有哪几种部署模式?
-
9.zk节点宕机如何处理?
-
10.分布式集群中为什么会有Master?
-
11.zookeeper是如何保证事务的顺序一致性的?
-
12.数据同步
-
13.Zookeeper 下 Server工作状态
-
14.服务器角色
-
15.ACL权限控制机制
-
16.服务端处理Watcher实现
-
17.客户端注册Watcher实现
-
18.Zookeeper Watcher 机制
-
19.Zookeeper文件系统
-
20.ZooKeeper提供了什么?
-
21.ZooKeeper是什么?
-
22.Zookeeper怎么实现服务注册?
-
23.Zookeeper Leader选举过程是怎样的?
-
24.Zookeeper是怎么保证数据一致性的?
-
25.Zookeeper怎么实现分布式锁?
-
26.了解过Zookeeper的ZAB协议吗?
-
27.Zookeeper有哪些节点类型?
十五、多线程
-
1.你将如何使用thread dump?你将如何分析Thread dump?
-
2.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存, 它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现 它?
-
3.高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务 怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
-
4.同步方法和同步块,哪个是更好的选择?
-
5.Hashtable的size()方法中明明只有一条语句”return count”,为什么还要做同步?
-
6.Semaphore有什么作用?
-
7.单例模式的线程安全性
-
8.Java中用到的线程调度算法是什么?
-
9.Java中如何获取到线程dump文件
-
10.什么是线程安全?
-
11.线程池都有哪几种工作队列?
-
12.说一说几种常见的线程池及适用场景?
-
13.synchronized 关键字和 volatile 关键字的区别
-
14.什么是线程的阻塞问题?如何解决?
-
15.什么是线程的饥饿问题?如何解决?
-
16.什么是活锁?
-
17.什么是线程安全问题?如何解决?
-
18.为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
-
19.什么是线程死锁?如何避免死锁?
-
20.并发与并行的区别?
-
21.虚拟机栈和本地方法栈为什么是私有的?
-
22.程序计数器为什么是私有的?
-
23.什么是线程和进程?
-
24.什么是多线程的上下文切换?
-
25.什么是自旋锁?
-
26.AQS支持几种同步方式?
-
27.什么是AQS?
-
28.CAS的问题
-
29.什么是CAS?
-
30.CyclicBarrier和CountDownLatch的区别
-
31.线程池的优点?
-
32.创建线程有哪些方式?
-
33.并发编程三要素?
-
34.什么是悲观锁?什么是乐观锁?
-
35.Java里的线程有哪些状态?
-
36.如何避免“伪共享”?
-
37.“伪共享”出现的原因是什么?
-
38.了解过什么是“伪共享”吗?
-
39.说一下synchronized锁升级过程
-
40.ReentrantLock与synchronized的区别
-
41.说说synchronized的实现原理
-
42.sleep() 方法和 wait() 方法的区别和共同点?
-
43.Thread.sleep(0)的作用是什么?
十六、分布式
-
1.SOA和微服务架构有哪些区别?
-
2.BASE理论了解过吗?
-
3.如何保障请求执行顺序
-
4.分布式系统的接口幂等性设计
-
5.如何设计一个秒杀系统?
-
6.如何防止表单重复提交?
-
7.分布式 Session了解过吗?如何实现?
-
8.正向代理和反向代理的区别
-
9.负载均衡的实现方案有哪些?
-
10.了解过哪些负载均衡算法?
-
11.TCC了解过吗?
-
12.什么是二阶段提交(2PC)?什么是三阶段提交(3PC)?
-
13.分布式事务了解过吗?
-
14.什么是CAP定理?
-
15.雪花算法了解过吗?
十七、计算机网络
-
1.HTTP协议包括哪些请求?
-
2.在浏览器中输入url地址到显示主页的过程
-
3.拥塞控制
-
4.滑动窗口和流量控制
-
5.TCP为什么要四次挥手
-
6.TCP建立连接时为什么要传回 SYN
-
7.为什么TCP要三次握手
-
8.说一说TCP的三次握手
-
9.简述ICMP、TFTP、HTTP、NAT、DHCP协议
-
10.简述ARP地址解析协议工作原理
-
11.简述IP地址的分类?
-
12.说一说TCP、IP四层模型
-
13.你能说一说OSI七层模型?
-
14.有哪些私有(保留)地址?
-
15.TCP对应的协议和UDP对应的协议
-
16.请简述TCP和UDP的区别
十八、设计模式
-
1.Spring 当中用到了哪些设计模式?
-
2.Dubbo 源码使用了哪些设计模式?
-
3.举出一个例子,在这种情况你会更倾向于使用抽象类,而不是接口?
-
4.工厂模式与抽象工厂模式的区别?
-
5.给我一个符合开闭原则的设计模式的例子?
-
6.OOP中的组合、聚合和关联有什么区别?
-
7.适配器模式和代理模式之间有什么不同?
-
8.适配器模式与装饰器模式有什么区别?
-
9.适配器模式是什么?什么时候使用?
-
10.简述一下你了解的 Java 设计模式(总结)
-
11.说说你所熟悉或听说过的 j2ee 中的几种常用模式?
-
12.设计模式的类型
-
13.Java怎么实现单例模式?
-
14.设计模式六大原则?
-
15.接口是什么?为什么要使用接口而不是直接使用具体类?
十九、数据结构与算法
-
1.谈一谈,id全局唯一且自增,如何实现?
-
2.什么是B+树?
-
3.什么是B树?
-
4.为什么要设计后缀表达式,有什么好处?
-
5.请你讲讲LRU算法的实现原理?
-
6.如何在一个1到100的整数数组中找到丢失的数字?
-
7.二分查找了解过吗?
-
8.数组和链表的区别
-
9.介绍一下,堆排序的原理是什么?
-
10.如何知道二叉树的深度?
-
11.TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何 比较元素?
-
12.什么是算法?
二十、微服务
-
1.作为服务注册中心,Eureka比Zookeeper好在哪里?
-
2.Eureka的基本架构是什么?
-
3.什么是 Eureka服务注册与发现?
-
4.你所知道的微服务技术栈有哪些?
-
5.什么是服务熔断,什么是服务降级
-
6.请谈谈对SpringBoot 和SpringCloud的理解
-
7.微服务之间是如何通讯的?
-
8.什么是微服务?
-
9.Spring Cloud 和dubbo的区别?
-
10.服务注册和发现是什么意思?Spring Cloud 如何实现?
-
11.Spring Cloud 解决了哪些问题?
-
12.单片,SOA 和微服务架构有什么区别?
-
13.微服务有哪些特点?
-
14.微服务有哪些优缺点?
二十一、消息队列
-
1.为什么使用消息队列?
-
2.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万 消息持续积压几小时怎么解决?
-
3.各种MQ的比较
-
4.消息队列积压怎么办
-
5.消息如何保证幂等性
-
6.Kafka的消息是有序的吗?如果保证Kafka消息的顺序性?
-
7.使用消息队列,如果处理重复消息?
-
8.使用消息队列,怎么确保消息不丢失?
-
9.消息队列的弊端有哪些?
-
10.消息队列有哪些应用场景?
二十五、Java8
-
1.Lambda表达式的参数列表与Lambda箭头运算符有何不同?
-
2.是什么使JavaSE8优于其他?
-
3.什么是Java8中的MetaSpace?它与PermGen Space有何不同?
-
4.Lambda函数的优点
-
5.什么是Lambda表达式?
-
6.解释Java8中间操作与终端操作?
-
7.hashMap原理,java8做的改变
-
8.Java8中的可选项是什么?
-
9.Java8支持函数编程是什么意思?
-
10.抽象类和接口的异同?
-
11.Java 8 新特性简介
二十六、Java高并发
-
1.ForkJoin框架
-
2.Java里的阻塞队列
-
3.AQS
-
4.CopyOnWriteArrayList
-
5.Nginx多进程模型是如何实现高并发的?
-
6.常见的同步工具类?
-
7.常见的并发容器?
-
8.死锁的避免与诊断?
-
9.什么是锁顺序死锁?
-
10.数据库死锁?
-
11.什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?
-
12.有三个线程T1,T2,T3,怎么确保它们按顺序执行?
-
13.如何测试并发量?
-
14.Java中Unsafe类详解
-
15.进程调度算法
-
16.同步和异步有何不同,在什么情况下分别使用它们?举例说明
-
17.线程间如何通讯
-
18.进程间如何通讯
-
19.什么是线程
-
20.什么是进程
二十七、Java集合
-
1.Iterator是什么?
-
2.为何Map接口不继承Collection接口?
-
3.为何Collection不从Cloneable和Serializable接口继承?
-
4.集合框架中的泛型有什么优点?
-
5.Java集合框架是什么?说出一些集合框架的优点?
-
6.谈谈对HashMap 构造方法中初始容量、加载因子的理解
-
7.HashMap 默认的初始化长度是多少?
-
8.ArrayList和LinkedList的区别?
-
9.ArrayList 和 Vector 的区别?
-
10.ConcurrentHashMap实现原理
-
11.ConcurrentHashMap和Hashtable的区别?
-
12.HashMap与HashTable的区别?
-
13.常见的集合底层实现
-
14.常见的集合有哪些?
-
15.Comparable和Comparator接口有何区别?
-
16.Collections类是什么?
-
17.队列和栈是什么,列出它们的区别?
-
18.BlockingQueue是什么?
-
19.哪些集合类提供对元素的随机访问?
-
20.如何决定选用HashMap还是TreeMap?
-
21.我们能否使用任何类作为Map的key?
-
22.hashCode()和equals()方法有何重要性?
-
23.fail-fast与fail-safe有什么区别?
-
24.Iterater和ListIterator之间有什么区别?
-
25.Enumeration和Iterator接口的区别?
八股文,YYDS!
我花了半个月的时间,特意整理了这些面试题,涵盖 Java 基础、集合、并发、MySQL、Kafka 等高频知识点,第一版有 16 万字,并且还在持续完善中!
文中资料已整理打包存放网盘,有需要的朋友可以点击下方的名片自取!