2020年高级Java程序员面试题汇总,含答案总结

文章目录

  • JDK
  • Dubbo
  • Zookeeper
  • Spring系列
  • Redis系列
  • Mysql系列
  • Java多线程
  • 消息中间件
  • 线程池
  • JVM
  • 设计模式
  • 其他
  • 程序设计
  • 基础知识
  • 算法题
  • 面试技术外的问题
  • 面试答案

引言:
随着金九银十的面试跳槽,回首在经历了两周的跳槽求职路后,终于成功拿到offer,距今已经入职快一个月了,因此,这几天抽空将之前的面试题做了个汇总,一方面自己以后回顾学习用,一方面为大家奉送上一份秋收的福利。

下面的文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,需要的朋友可以:点击这里领取!!!暗号:CSDN
2020年高级Java程序员面试题汇总,含答案总结_第1张图片

JDK

jdk1.8版本后的新特性有哪些?
如何避免空指针异常?

Dubbo

Dubbo是什么?
Dubbo 和 Spring Cloud 有什么区别?
dubbo都支持什么协议,推荐用哪种?
Dubbo需要 Web 容器吗?
Dubbo内置了哪几种服务容器?
Dubbo里面有哪几种节点角色?
Dubbo的服务注册与发现的流程图是怎样的?
Dubbo默认使用什么注册中心,还有别的选择吗?
Dubbo有哪几种配置方式?
Dubbo 核心的配置有哪些?
Dubbo启动时如果依赖的服务不可用会怎样?
Dubbo推荐使用什么序列化框架,你知道的还有哪些?
Dubbo默认使用的是什么通信框架,还有别的选择吗?
Dubbo有哪几种负载均衡策略,默认是哪种?
Dubbo支持服务多协议吗?
Dubbo可以对结果进行缓存吗?
Dubbo服务之间的调用是阻塞的吗?
Dubbo支持分布式事务吗?
Dubbo支持服务降级吗?
Dubbo的通信采用什么?
服务提供者能实现失效踢出是什么原理?
Dubbo的管理控制台能做什么?
是否看过Dubbo的代码底层原理?具体有哪些?
Dobbo的调用流程是什么?
Dobbo支持动态添加服务吗?

Zookeeper

zookeeper是什么?
zookeeper都有哪些功能?
zookeeper有哪几种部署方式?
zookeeper使用什么协议?
zookeeper的通知机制是怎样的?
zookeeper是如何实现分布式锁的?
zookeeper的选举机制及流程是什么?
zookeeper集群是如何搭建的?
zookeeper集群最少要几台机器,集群规则是怎样的?
zookeeper集群中有几种角色?
zookeeper集群支持动态添加机器吗?
zookeeper集群中怎么保证主从节点的状态同步?
zookeeper集群中中为什么要有主节点?
zookeeper集群如果有3台机器,挂掉一台集群还能工作吗?挂掉两台呢?
zookeeper的java客户端都有哪些?
zookeeper常用的命令有哪些?

Spring系列

spring的IOC和AOP原理是什么?
spring的启动加载流程是怎样的?
springMVC的底层执行流程是怎样的?重要的类有哪些?
springboot支持的日志有哪些?默认的是什么?怎么配置
springboot的数据源有哪些?怎么配置?
springcloud的常用开发框架有哪些?
springcloud的熔断是怎么实现的?原理是什么?
springcloud的eureka和zoopeeker的区别是什么?
springcloud的网管的主要做了哪些?
springcloud里bus的底层通信是用的什么?

Redis系列

Redis你们用的是单机还是集群?集群如何搭建?
Redis是什么?都有哪些使用场景?
Redis的基本数据类型都有哪些?
Redis在开发中常用到哪些数据类型?
Redis中hash的数据结构是什么?
Redis集群数据不同步有可能是什么原因?
请实现用Redis做登录,错误次数为最多五次,时间为60秒
Redis的哨兵机制原理是什么?
Redis的持久化方法有哪些?
Redis的缓存穿透是什么?怎么解决?
Redis怎么实现分布式锁?
Redis分布式锁有什么缺陷?
Redis如何做内存优化?
Redis淘汰策略有哪些?
Redis常见的性能问题有哪些?该如何解决?
Redis支持的 java 客户端都有哪些?
Redis为什么是单线程的?
Redis的管道是什么?你们什么时候用?怎么使用的?

Mysql系列

MySQL设计表的三大范式是什么?
MySQL的selete * 和selte 全字段的区别?
MySQL的selete *除了是全字段扫描外为什么慢?
MySQL如何做优化?
MySQL的常用SQL语句优化有哪些?
MySQL索引的作用?和它的优点缺点是什么?
MySQL有哪些索引(或者说索引类型有哪些)?
MySQL的主键和索引有什么区别?
MySQL创建索引的原则是什么?
MySQL的索引在哪些情况下会失效?
MySQL的索引原理是什么?
MySQL的存储引擎有哪些?
MySQL的最左原则是什么?
MySQL的乐观锁和悲观锁?
如果在a、b、c三个字段上建立复合索引,那么有几个索引?a、c、b、c两个索引会生效吗?
MySQL的聚簇索引和非聚簇索引是什么?
MySQL的是传递性是什么?如何来保证?
如何判断SQL语句是否索引用上了?
MySQL调优时用什么方法或命令进行排查?命令的回显结果集中哪些子弹是需要重点关注的?
MySQL进行全表扫描是会触发表锁吗?
MySQL如何做分表?
已知现在有一个一千万数据的日志记录表,每天会向里面新增5000条记录,如何优化?
如何做大数据量表的查询和拆分?如果拆分怎么拆?有哪些方式?
跨表查询有哪些方式?你最多做过几表联查?
事物的隔离级别有哪些?
你们每天的数据量大概有多少?
你们最大的一张表多大?
mysql中如何查看执行计划?如何做sql优化?

Java多线程

线程安全的数组有哪些?
线程安全的集合有哪些?
hashMap为什么不是线程安全的?底层原理是什么?
请用代码实现同时开启一个线程打印1~52,开启另一个线程打印A~Z,最终交替打印1A2B3C…这样的数据
Java里实现线程的方式有哪些?各自的优缺点是什么?
你如何理解同步、异步、阻塞、非阻塞?
你的程序中用到了哪些锁?是如何实现的?

消息中间件

ActiveMQ是什么?
ActiveMQ的应用场景有哪些?
ActiveMQ有哪些优缺点?
ActiveMQ在应用中可以保证分布式事物吗?是怎么是实现的?有哪些优缺点?
常用的MQ的对比了解吗?
kufaka原理是什么?为什么快?

线程池

Java里线程池常用的有哪些?
线程池在你的生产开发中有哪些应用场景?是如何使用的?
线程池的原理是什么?
事物
数据库事务的四大特性是什么?
分布式事物如何保证?
springcloud的分布式事物如何保证?
可以用Redis来实现分布式事物吗?
什么是事物的传导性?有哪些问题?
事务的CAP理论是什么?
你们在生成中用到了哪种方式来保证事务一致性?

JVM

JVM的内存模型是什么?每个区的作用是什么?
如何进行JVM调优?
如何对线程服务进行JVM排查和优化?
JVM有几种算法?

设计模式

常用的设计模式有哪些?
请写出一个单例模式(要求是线程安全的)
单例模式的双重检查机制如何实现?(DCL)

其他

Nginx可以做哪些事情?
Nginx有几种负载均衡?
Nginx的轮询里一致性哈希算法的底层原理是什么?
Nginx如何避免缓存雪崩
服务器的CUP超负荷了,如何排查是哪个项目的?
如何根据CPU的负载情况定位代码和线程所在?
Java程序里如果有无限for循环的代码导致CPU负载超高,如何排查?
在爬虫里如何实现用户登录?
你是如何让你的爬虫项目避过一些网站的防爬机制的?
solr的原理是什么?是怎么保证排序的?
solr在你的项目中起到了什么作用?
MyBatis里KaTeX parse error: Expected 'EOF', got '#' at position 4: {}和#̲{}的区别是什么?发生SQL注…{}符号?
常用的linux命令,并阐述作用
当你请求了一个url地址后,它的后面都发生了什么?
maven的生命周期有哪些?
前端的标签选择器有哪些?
常见的页面状态有哪些?

程序设计

已知现在要在首页上添加一个日打赏榜的功能,请说以下该如何实现?
已知你现在有一个定时任务,如何保证高可用?
如果为了保证高可用,有多个定时任务,如何做到只有一个定时任务正常执行?
如果定时任务挂了,如何让其他定时任务继续执行?
如何让你设计一个可以抗住大数据高并发的项目,你怎么设计?
设计和实现一个支持挂接多个子系统的单点登录系统。
要求挂接多个域名的站点思路
一次登录,在多系统使用思路
防跨站攻击思路

基础知识

==和 equals 的区别?
string、stringBuilder、SrtingBuffer的区别?
Object作为父类,它里面有哪些方法?
HashMap和HashTable的区别?
map集合的底层数据结构是什么?原理是什么?
HashMap最大可以存储多少数据?
ArrayList 和 LinkedList 的区别是什么?
ArrayList 和 Vector 的区别是什么?
Array 和 ArrayList 有何区别?
说一下 HashMap 的实现原理?
说一下 HashSet 的实现原理?
如何决定使用 HashMap 还是 TreeMap?
List、Set、Map 之间的区别是什么?
java.util.concurrent包下使用过哪些?
HashMap的工作原理是什么?还有什么处理哈希冲突的方法?

算法题

已知现有两个常量数组,请将他们变为一个有序的数组
如何用一次遍历的方式,将数组内的数字(重复)进行有序排序
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
给定一个整数sum,从有n个有序元素的数组中寻找元素a,b 使得a+b的结果最接近sum,最快的平均时间复杂度是?

面试技术外的问题

你们公司是做什么的?
你们现在用的框架是什么?
你在你们公司主要负责做什么?
你为什么离职?
你求职会优先考虑哪些?
你期望薪资是多少?
你目前的薪资多少?
你们的五险一金是怎么交的?
你了解我们公司吗?
你最快能什么时间入职?
你还有哪些问的吗?
你有哪些是你做的Java项目中你感觉最有自豪感的?因为什么?技术难度有哪些?

面试答案

由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析,但是整理成了一份详细的PDF文档可分享给大家,需要的朋友可以:点击这里领取!!!暗号:CSDN
2020年高级Java程序员面试题汇总,含答案总结_第2张图片

你可能感兴趣的:(分布式,redis,面试,java,编程语言)