【每日3分钟技术干货 | 面试题+答案 | SpringCloud篇(一)】
1. 什么是 spring cloud? spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。 2. spring cloud 断路器的作用是什么? 在分布式架构中,断路器模式的作用也
【每日3分钟技术干货 | 面试题+答案 | SpringBoot篇(一)】
1、什么是 Spring Boot?Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式处理方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 2、为什么要用 Spring Boot?Spring Boot 优点非常多,如: 独立运行 简化配置 自动配置 无代码生成和XML配置 应用监控 上手容易
【每日3分钟技术干货 | 面试题+答案 | Spring&SpringMVC篇(一)】
1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制
【每日3分钟技术干货 | 面试题+答案 | Zookeeper篇(一)】
1. zookeeper 是什么? zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 2. zookeeper 都有哪些功能? 集群管理:监控节点存活状态、运行请求等。 主节点选
【每日3分钟技术干货 | 面试题+答案 | RabbitMQ篇(一)】
1. RabbitMQ 的使用场景有哪些? 抢购活动,削峰填谷,防止系统崩塌。 延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。 解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可。
【每日3分钟技术干货 | 面试题+答案 | Mysql篇(一)】
1. 数据库的三范式是什么? 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。 第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。 第三范式:任何非主属性不依赖于其它非主属性。 2. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?
【每日3分钟技术干货 | 面试题+答案 | Redis篇(一)】
1. Redis 是什么?**都有哪些使用场景?** 我们先来理解经典的CAP理论: 一致性:是指从数据层面来看的一致性。 可用性:是指从系统层面的可用性。 容错性:是指从网络层面的的容错性。 数据库逐渐从关系数据库向不同领域不同层次分化。随着读多写少场景的出现,导致需要读取数据的时间变慢,为了提升性能,出现了数据库缓存技术,对数据库的读取进行分离。web2.0时代,网民的生产力大增,存
【每日3分钟技术干货 | 面试题+答案 | jvm篇(二)】
1. 说一下 JVM 的主要组成部分?**及其作用?** 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 组件的作用: 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再
【每日3分钟技术干货 | 面试题+答案 | jvm篇(一)】
1. 说一下 JVM 有哪些垃圾回收算法? 标记-清除算法:标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。 标记-整理算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。 复制算法:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,只有原来的一半。
【每日3分钟技术干货 | 面试题+答案 |多线程篇(一)】
1.为什么要使用线程池 避免频繁地创建和销毁线程,达到线程对象的重用。另外,使用线程池还可以根据项目灵活地控制并发的数目。 2.java中如何获取到线程dump文件 死循环、死锁、阻塞、页面打开慢等问题,打线程dump是最好的解决问题的途径。所谓线程dump也就是线程堆栈,获取到线程堆栈有两步: 1)获取到线程的pid,可以通过使用jps命令,在Linux环境下还可以使用ps -ef |
【每日3分钟技术干货 | 面试题+答案 | 分布式锁篇(一)】 为什么要使用分布式锁
【每日3分钟技术干货 | 面试题+答案 | 分布式锁篇(一)】为什么要使用分布式锁?为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLcok或synchronized)进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式系统后,由于分布式系统多线程、多进程并且分布在不同机器
【每日3分钟技术干货 | 面试题+答案 | MyBatis篇(一)】
1. MyBatis 中 #{}和 ${}的区别是什么? #{}是预编译处理,${}是字符替换。在使用 #{}时,MyBatis 会将 SQL 中的 #{}替换成“?”,配合 PreparedStatement 的 set 方法赋值,这样可以有效的防止 SQL 注入,保证程序的运行安全。 2. MyBatis 有几种分页方式? 分页方式:逻辑分页和物理分页。 逻辑分页:使用 MyBatis