最近技术交流群里面很多群友在最近面试完之后,有的还将面试题带出来了,都将面试题都发到群里一起讨论,还是比较火热的,都将答案讨论出来了,但是面试题都比较零散,所以小编把自己搜集的面试题统一总结了下,整理成pdf,将近500页有1000多题,共大家学习,内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈。
Java基础23题
- HashMap的源码,实现原理, JDK8中对HashMap做了怎样的优化。
- HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
- HashMap,HashTable , ConcurrentHashMap的区别。
- 极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
- HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
- java中四种修饰符的限制范围。
- Object类中的方法。
- 接口和抽象类的区别,注意JDK8的接口可以有实现。
- 动态代理的两种方式,以及区别。
- Java序列化的方式。
- 传值和传引用的区别, Java是怎么样的,有没有传值引用。
- 一个ArrayList在循环过程中删除,会不会出问题,为什么。
- @transactional注解在什么情况下会失效,为什么。
- Java集合类框架的基本接口有哪些?
- HashSet和TreeSet有什么区别?
- HashSet的底层实现是什么?
- LinkedHashMap的实现原理?
- 为什么集合类没有实现Cloneable和Serializable接口?
- 数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayLlist ?
- Java集合类框架的最佳实践有哪些?
- Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals0 ?它们有何别?
- Comparable和Comparator接口是干什么的?列出它们的区别
- Collection和Collections的区别。
JVM与优化20题
- JVM的内存结构。
- JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
- JVM的栈中引用如何和堆中的对象产生关联。
- 可以了解一-下逃逸分析技术。
- GC的常见算法
- CMS以及G1的垃圾回收过程, CMS的各个阶段哪两个是Stop the world的, CMS会不会产生碎片, G1的优势。
- 双亲委派模型的过程以及优势。
- 常用的JVM调优参数。
- 对象什么时候进入老年代?
- 什么是内存溢出,内存泄露?他们的区别是什么?
- 引起类加载操作的行为有哪些?
- 介绍一-下JVM提供的常用工具
- Full GC、Major GC、Minor GC之间区别?
- 什么时候触发Full GC ?
- 什么情况下会出现栈溢出
- 说一下强引用、软引用、弱引用、虚引用以及他们之间和gc的关系
- Eden和Survivor的比例分配是什么情况?为什么?
- 什么是分布式垃圾回收( DGC ) ?它是如何工作的?
- 串行( serial )收集器和吞吐星( throughput )收集器的区别是什么?
- 在Java中,对象什么时候可以被垃圾回收?
Redis缓存11题
- 在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?
- Redis 和Memcached有什么区别? Redis的线程模型是什么?为什么单线程的Redis比多线程的-Memcached效率要高得多?
- Redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
- Redis 的过期策略都有哪些?手写-下LRU代码实现?
- 如何保证Redis高并发、高可用? Redis的主从复制原理能介绍一下么? Redis的哨兵原理能介绍一下么?
- Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
- Redis 集群模式的工作原理能说-下么?在集群模式下, Redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗?如何动态增加和删除一个节点?
- 了解什么是redis的雪崩、穿透和击穿? Redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理Redis的穿透?
- 如何保证缓存与数据库的双写一致性?
- Redis 的并发竞争问题是什么?如何解决这个问题?了解Redis事务的CAS方案吗?
- 生产环境中的Redis是怎么部署的?
Spring20题
- 谈谈对Spring loC的理解?
- 谈谈对Spring DI的理解?
- BeanFactory接口和ApplicationContext接口不同点是什么?
- 请介绍你熟悉的Spring核心类,并说明有什么作用?
- 介绍一下Spring的事务的了解?
- 介绍一下Spring的事务实现方式?
- Spring配置Bean实例化有哪些方式?
- Bean注入属性有哪几种方式
- 在Spring中如何实现时间处理?
- Spring中如何更高效的使用JDBC ?
- 请介绍一下设计模式在Spring框架中的使用?
- IoC控制反转设计原理?
- Spring的生命周期?
- Spring如何处理线程并发问题?
- 核心容器(应用上下文)模块的理解?
- 为什么说Spring是一个容器?
- Spring的优点?
- Spring框架中的单例Beans是线程安全的么?
- Spring框架中有哪些不同类型的事件?
- loC的优点是什么?
SpringBoot,SpringCloud25题
- 什么是Spring Boot ?
- Spring Boot自动配置的原理?
- Spring Boot读取配置文件的方式?
- 什么是微服务架构?
- Ribbon和Feign的区别?
- Spring Cloud断路器的作用?
- 为什么要用Spring Boot ?
- Spring Boot的核心配置文件有哪几个?它们的区别是什么?
- Spring Boot的配置文件有哪几种格式?它们有什么区别?
- Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?
- 开启Spring Boot特性有哪几种方式?
- Spring Boot需要独立的容器运行吗?
- 运行Spring Boot有哪几种方式?
- 你如何理解Spring Boot中的Starters ?
- 如何在Spring Boot启动的时候运行一些特定的代码 ?
- Spring Boot有哪几种读取配置的方式?
- Spring Boot实现热部署有哪几种方式?
- Spring Boot多套不同环境如何配置?
- Spring Boot可以兼容老Spring项目吗,如何做?
- 什么是Spring Cloud ?
- 介绍一下Spring Cloud常用的组件?
- Spring Cloud如何实现服务注册的?
- 什么是负载均衡?有什么作用?
- 什么是服务熔断?
- 请介绍一下Ribbon的主要作用?
消息队列(Kafka,MQ)7题
- 为什么使用消息队列?消息队列有什么优点和缺点? Kafka, ActiveMQ、RabbitMQ、RocketMQ都有什么优点和缺点?
- 如何保证消息队列的高可用?
- 如何保证消息不被重复消费? ( 如何保证消息消费的幂等性)
- 如何保证消息的可靠性传输? (如何处理消息丢失的问题)
- 如何保证消息的顺序性?
- 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时.说说怎么解决?
- 如果让你写一一个消息队列,该如何进行架构设计啊?说一下你的思路。
分布式架构与Dubbo13题
- 分布式事务的控制
- 分布式锁如何设计
- 分布式session如何设计
- dubbo的组件有哪些,各有什么作用。
- zookeeper的负载均衡算法有哪些。
- dubbo是如何利用接口就可以通信的。
说一下Dubbo的工作原理?注册中心挂了可以继续通信吗? - Dubbo支持哪些序列化协议?说- -下Hessian的数据结构? PB知道吗?为什么PB的效率是最高的?
- Dubbo负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
- Dubbo的spi思想是什么?
- 如何基于Dubbo进行服务治理、服务降级、失败重试以及超时重试?
- 分布式服务接口的幂等性如何设计(比如不能重复扣款) ?
- 分布式服务接口请求的顺序性如何保证?
- 如何自己设计一个类似Dubbo的RPC框架?
高可用架构11题
- Hystrix介绍
- 电商网站详情页系统架构
- Hystrix线程池技术实现资源隔离
- Hystrix信号量机制实现资源隔离
- Hystrix隔离策略细粒度控制
- 深入Hystrix执行时内部原理
- 基于request cache请求缓存技术优化批量商品数据查询接口
- 基于本地缓存的fallback降级机制
- 深入Hystrix断路器执行原理
- 深入Hystrix线程池隔离与接口限流
- 基于timeout机制为服务接口调用超时提供安全保护
分库分表4题
- 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计) ?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
- 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
- 如何设计可以动态扩容缩容的分库分表方案?
- 分库分表之后, id主键如何处理?
注意:为了不影响阅读,整理了解析成文档给大家复习参考!有需要这2份“面试跳槽宝典:互联网大厂Java高级工程师核心面试1080题解析”和“Java高级架构面试知识点整理”,可以免费分享给大家一起学习,转发关注我私信关键词 “资料” 即可免费获取资料免费领取方式!!!
Java高级工程师核心面试1000题解析
Java高级架构面试知识点问题解析整理
Java面试知识点笔记整理