Java面试大全
文章平均质量分 86
高性能、高并发、高可用性分布式系统设;需求分析和系统设计;RPC、缓存、消息队列、负载均衡、Nginx等;系统调优;JVM,包括内存模型、类加载机制以及性能优化;SpringBoot/SpringCloud/Mybatis等主流框架技术;Nginx/Redis/Kafka/ES等常用中间件等
南方淮竹
一见如故,再见倾心
展开
-
Spring AOP底层原理、注解和代码样例
连接点(Join Point)表示“在哪里干”;只支持方法执行作为连接点;所有类的所有方法均可以作为连接点。切点(Pointcut)“在哪里干”的集合;支持perl5正则表达式和AspectJ切入点模式,Spring默认使用AspectJ语法。增强(Advice)表示“干什么”,在切点指定的连接点上执行的动作;包括前置、后置、环绕、异常抛出后和返回后增强;包含两方面,一是执行的时机,二是要干什么。方面/切面(Aspect)原创 2024-03-07 00:25:53 · 89748 阅读 · 0 评论 -
一文搞懂HashMap面试
HashMap的底层数据结构是一种高效的散列结构,通过数组、链表和红黑树的结合使用,以及动态扩容机制,实现了快速的数据存取和高效的空间利用。原创 2024-03-07 00:01:41 · 90123 阅读 · 0 评论 -
Spring事务和MySQL事务详解面试
文章目录数据库事务事务是什么事务的四大特性MySQL事务隔离级别查看MySQL当前事务隔离级别MySQL默认操作模式为自动提交模式JDBC处理事务Spring事务Spring的事务传播PROPAGATION_REQUIREDPROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NOT_SUPPORTEDPROPAGATION_NEVERPROPAGATION_NESTEDSpring事务的隔离级别Spring原创 2020-09-10 23:56:36 · 207214 阅读 · 15 评论 -
Java多线程面试题
1、sleep()和wait()的区别?sleep 方法: 是 Thread 类的静态方法,当前线程将睡眠 n 毫秒,线程进入阻塞状态。当睡眠时间到了,会解除阻塞,进行可运行状态,等待 CPU 的到来。睡眠不释放锁(如果有的话);wait 方法: 是 Object 的方法,必须与 synchronized 关键字一起使用,线程进入阻塞状态,当 notify 或者 notifyall 被调用后,会解除阻塞。但是,只有重新占用互斥锁之后才会进入可运行状态。睡眠时,释放互斥锁。2、sy...原创 2020-10-25 15:56:40 · 167006 阅读 · 4 评论 -
Dubbo面试题
1、dubbo和dubbox之间的区别?Dubbox 和Dubbo本质上没有区别,名字的含义扩展了Dubbo而已,以下扩展出来的功能 支持REST风格远程调用(HTTP + JSON/XML); 支持基于Kryo和FST的Java高效序列化实现; 支持基于Jackson的JSON序列化; 支持基于嵌入式Tomcat的HTTP remoting体系; 升级Spring至3.x; 升级ZooKeeper客户端; 支持完全基于Java代码的Dubbo配置;一般使用什么注册中心?还有别的选择吗?原创 2020-10-25 15:55:49 · 160398 阅读 · 1 评论 -
Java面试题大全
数据库&事务1.什么样的场景会产生数据库死锁,如何解决?2.SQL如何优化3.Oracle和mysql分页的实现原理4.唯一索引能否插入空5.数据库索引的算法原理6.乐观锁,悲观锁7.SQL怎样判断字段是否为空WEB1.post和get区别是什么?2.cookie/session有什么区别?3.web集群中登录态如何共享?4.xss、csrf等如何防范?5.sql注入如何防范?6.浏览器缓存策略7.Ajax如何解决跨域问题?8.什.原创 2020-10-25 15:53:37 · 160873 阅读 · 1 评论 -
Redis面试题(哨兵、复制、事务、集群、持久化)
Redis主要有哪些功能?1、哨兵(Sentinel)和复制(Replication)Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。Sentinel可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能,Replication则是负责让一个Redis服务器可以配备多个备份的服务器。Redis也是利用这两个功能来保证Redis的高可用的2、事务很多情况下我们需要一次执行不止一个命令,而且需要其..原创 2020-10-15 23:44:27 · 162376 阅读 · 1 评论 -
Redis常见40道面试题
1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。(3)Redis 支持数据的备份,即 master-slave .原创 2020-10-15 23:43:48 · 162363 阅读 · 0 评论 -
缓存之memcached 面试题
文章目录1、memcached是怎么工作的?2、memcached最大的优势是什么?3、memcached和MySQL的querycache相比有什么优缺点?4、memcached和服务器的localcache(比如PHP的APC、mmap文件等)相比,有什么优缺点?5、memcached的cache机制是怎样的?6、memcached如何实现冗余机制?7、memcached如何处理容错的?8、如何将memcached中item批量导入导出?9、我需要把memcached中的item批量导出导入,怎么办?1原创 2020-10-11 12:44:17 · 164934 阅读 · 0 评论 -
数据库之MongoDB面试题
文章目录1、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?2、NoSQL数据库有哪些类型?3、MySQL与MongoDB之间最基本的差别是什么?4、你怎么比较MongoDB、CouchDB及CouchBase?5、MongoDB成为最好NoSQL数据库的原因是什么?6、32位系统上有什么细微差别?7、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?8、分析器在MongoD原创 2020-10-11 12:43:21 · 169271 阅读 · 0 评论 -
缓存之redis面试题
文章目录1、redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的memcached效率要高?2、redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?3、使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?4、知道redis的持久化吗?底层如何实现的?有什么优点缺点?5、redis过期策略都有哪些?LRU算法知道吗?写一下java代码实现?6、缓存穿透、缓存击穿、缓存雪崩解决方案?7、在选择缓存时原创 2020-10-11 12:42:41 · 166023 阅读 · 1 评论 -
分布式面试之ActiveMQ面试题
文章目录1、什么是ActiveMQ?2、ActiveMQ服务器宕机怎么办?3、丢消息怎么办?4.持久化消息非常慢。5、消息的不均匀消费。6、死信队列。7、ActiveMQ中的消息重发时间间隔和重发次数吗?1、什么是ActiveMQ?activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信2、ActiveMQ服务器宕机怎么办?这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化原创 2020-10-11 12:42:13 · 164782 阅读 · 0 评论 -
分布式面试之Kafka面试题
文章目录1、Kafka的设计是什么样的?2、数据传输的事物定义有哪三种?3、Kafka判断一个节点是否还活着有那两个条件?4、producer是否直接将数据发送到broker的leader(主节点)?5、Kafa consumer是否可以消费指定分区消息?6、Kafka消息是采用Pull模式,还是Push模式?7、Kafka存储在硬盘上的消息格式是什么?8、Kafka高效文件存储设计特点9、Kafka与传统消息系统之间有三个关键区别10、Kafka创建Topic时如何将分区放置到不同的Broker中11、K原创 2020-10-11 12:41:38 · 165120 阅读 · 0 评论 -
分布式面试之RabbitMQ面试题
文章目录1、RabbitMQ中的broker是指什么?cluster又是指什么?2、什么是元数据?元数据分为哪些类型?包括哪些内容?与cluster相关的元数据有哪些?元数据是如何保存的?元数据在cluster中是如何分布的?3、RAM node 和 disk node 的区别?4、RabbitMQ上的一个queue中存放的message是否有数量限制?5、vhost是什么?起什么作用?6、在单node系统和多node构成的cluster系统中声明queue、exchange,以及进行binding会有什么原创 2020-10-09 23:16:15 · 166523 阅读 · 1 评论 -
分布式面试之nginx面试题
文章目录1、请解释一下什么是Nginx?2、请列举Nginx的一些特性。3、请解释Nginx如何处理HTTP请求。4、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?5、使用“反向代理服务器”的优点是什么?6、请列举Nginx服务器的最佳用途。7、请解释Nginx服务器上的Master和Worker进程分别是什么? Master进程:读取及评估配置和维持8、请解释你如何通过不同于80的端口开启Nginx?9、请解释是否有可能将Nginx的错误替换为502错误、503?10、在Nginx中,解释如何转载 2020-10-07 23:51:16 · 93601 阅读 · 1 评论 -
分布式面试之ZooKeeper面试题
文章目录1、ZooKeeper 是什么?2、ZooKeeper 提供了什么?3、Zookeeper文件系统4、四种类型的znode5、Zookeeper通知机制6、Zookeeper 做了什么?7、zk的命名服务(文件系统)8、zk的配置管理(文件系统、通知机制)9、Zookeeper集群管理(文件系统、通知机制)10、Zookeeper分布式锁(文件系统、通知机制)11.获取分布式锁的流程12、Zookeeper队列管理(文件系统、通知机制)13、Zookeeper数据复制14、Zookeeper工作原理原创 2020-10-05 23:38:37 · 95033 阅读 · 0 评论 -
开源框架面试之MyBatis面试题
文章目录1、什么是 MyBatis?2、讲下MyBatis的缓存3、Mybatis是如何进行分页的?分页插件的原理是什么?4、简述Mybatis的插件运行原理,以及如何编写一个插件?5、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql 的执行原理吗?6、#{}和${}的区别是什么?7、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?8、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?9、MyBatis 与 Hibernate 有哪些不同?10、原创 2020-10-05 23:38:07 · 94415 阅读 · 0 评论 -
开源框架面试之Spring MVC面试题目
文章目录1、什么是 SpringMvc?2、Spring MVC 的优点:3、SpringMVC工作原理?4、SpringMVC 流程?5、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?6、如果你也用过struts2.简单介绍下springMVC和struts2的区别有哪 些?7、SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?8、@RequestMapping注解用在类上面有什么作用?9、怎么样把某个请求映射到特定的方法上面?10、如果在拦截请求中,我想拦截g原创 2020-10-05 23:37:29 · 92309 阅读 · 1 评论 -
开源框架面试之Spring面试题
文章目录1、什么是Spring框架?Spring框架有哪些主要模块?2、使用Spring框架能带来哪些好处?3、什么是控制反转(IOC)?什么是依赖注入?4. 请解释下Spring框架中的IOC?5、BeanFactory 和 Applicationcontext 有什么区别?6、Spring有几种配置方式?7、如何用基于XML配置的方式配置Spring?8、如何用基于Java配置的方式配置Spring?9、怎样用注解的方式配置Spring?10、请解释Spring Bean的生命周期?11、Spring原创 2020-10-04 23:45:06 · 92652 阅读 · 0 评论 -
java并发编程面试题
文章目录1、Synchronized用过吗,其原理是什么?2、你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的 锁?3、什么是可重入性,为什么说Synchronized是可重入锁?4、JVM对Java的原生锁做了哪些优化?5、为什么说Synchronized是非公平锁?6、什么是锁消除和锁粗化?7、为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有什么特性?8、乐观锁一定就是好的吗?9、跟Synchronized相比,可重入锁ReentrantLock其实原创 2020-09-28 23:25:46 · 97052 阅读 · 0 评论 -
开源框架面试之Dubbo面试题
文章目录1、Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布 者和订阅者之间还能通信么?2、dubbo服务负载均衡策略?3、Dubbo在安全机制方面是如何解决的4、dubbo连接注册中心和直连的区别1、Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布 者和订阅者之间还能通信么?可以通信的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接 口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用;注 册中心对等集群,任意一台宕机后,将会切换到另一台;原创 2020-09-28 00:15:42 · 95640 阅读 · 0 评论 -
开源框架面试之SpringCloud面试题
文章目录1、什么是 Spring Cloud?2、使用Spring Cloud有什么优势?3、服务注册和发现是什么意思? Spring Cloud如何实现?4、负载平衡的意义什么?5、什么是Hystrix?它如何实现容错?6、什么是Hystrix断路器?我们需要它吗?7、什么是Netflix Feign ?它的优点是什么?8、什么是Spring Cloud Bus?我们需要它吗?1、什么是 Spring Cloud?Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应原创 2020-09-28 00:15:11 · 95417 阅读 · 0 评论 -
开源框架面试之Spring Boot面试题
文章目录1、什么是 Spring Boot?2、Spring Boot有哪些优点?3、什么是 JavaConfig?4、如何重新加载Spring Boot上的更改,而无需重新启动服务器?5、Spring Boot中的监视器是什么?6、如何在Spring Boot中禁用Actuator端点安全性?7、如何在自定义端口上运行Spring Boot应用程序?8、什么是YAML?9、如何实现Spring Boot应用程序的安全性?10、如何集成 Spring Boot 和 ActiveMQ?11、如何使用Sprin原创 2020-09-28 00:14:31 · 94695 阅读 · 0 评论 -
java面试之JVM性能优化
文章目录1、Java类加载过程2、java内存分配3、JVM加载Class文件的原理机制?4、GC是什么?为什么要有GC?5、简述Java垃圾回收机制。6、如何判断一个对象是否存活?(或者GC对象的判定方法)7、 垃圾回收的优点和原理。并考虑2种回收机制。8、 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?9、 Java中会存在内存泄漏吗,请简单描述。10、深拷贝和浅拷贝。11、System.gc()和 Runtime.gc()会做什么事情?12、final原创 2020-09-27 23:38:28 · 95745 阅读 · 1 评论 -
java面试之tomcat性能优化
文章目录1、你怎样给tomcat调优2、如何加大comcat连接数3、怎样加大tomcat的内存4、异常处理5、Tomcat4种部署方式6、Tomcat的优化经验1、你怎样给tomcat调优JVM参数调优-Xms<size>表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据需要进行设 置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出, 并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大 值的80%。在原创 2020-09-27 16:20:43 · 94778 阅读 · 0 评论 -
阿里一面面试题整理集合
文章目录数据结构算法题(剑指 Offer 上原题不少)Java 基础Java 高级三大框架数据库操作系统计算机网络分布式/集群等高级主题技术开放题数据结构HashMap的原理,内部数据结构?底层使用哈希表(数组 + 链表),当链表过长会将链表转成 红黑树以实现 O(logn) 时间复杂度内查找讲一下 HashMap 中 put 方法过程?对 Key 求 Hash 值,然后再计算 下标。如果没有碰撞,直接放入桶中,如果碰撞了,以链表的方式链接到后面,如果链表长度超过阀值(TREEIF原创 2020-09-24 23:18:18 · 97339 阅读 · 2 评论