自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(239)
  • 收藏
  • 关注

原创 阿里巴巴技术官甩出的SpringCloud笔记,GitHub标星已突破82k

阿里巴巴,作为国内互联网公司的Top,算是业界的标杆,有阿里背景的程序员,也更具有权威性。作为程序员,都清楚阿里对于员工要求有多高,技术人员掌握的技术水平更是望尘莫及。所以,大厂程序员的很多经验也都值得我们借鉴和学习,在一定程度上确实能够帮助我们“走捷径”。今天,我们要分享的是,Alibaba技术官丢出来的SpringCloud微服务实战笔记,这份笔记让人看了不得不爱,目前在GitHub的热度已经标星82k了,由此可见同行们对这份文档的认可程度,这也意味着对我们的学习和技术提升有很大的帮助。

2022-09-19 10:41:13 3767 2

原创 12张图告诉你MySQL的主键查询为什么这么快

正文开始!注:我们接下来的所有描述,针对的都是InnoDB存储引擎,如果涉及到其他存储引擎,将会特殊说明。

2022-09-03 09:32:50 938

原创 Redis的持久化方式各有什么优点?

当开启了混合持久化时,在 AOF 重写日志时,fork 出来的重写子进程会先将与主线程共享的内存数据以 RDB 方式写入到 AOF 文件,然后主线程处理的操作命令会被记录在重写缓冲区里,重写缓冲区里的增量命令会以 AOF 方式写入到 AOF 文件,写入完成后通知主进程将新的含有 RDB 格式和 AOF 格式的 AOF 文件替换旧的的 AOF 文件。所以,RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据,而 AOF 文件记录的是命令操作的日志,而不是实际的数据。

2022-09-25 13:33:42 650 1

原创 20道经典Redis面试题,你值得拥有

整理了20道经典Redis面试题,希望对大家有帮助。Redis,英文全称是(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

2022-09-25 13:30:03 386

原创 Redis常见的应用场景解析

Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用,这里介绍下Redis经常遇到的使用场景。

2022-09-25 13:25:06 403

原创 一文了解Redis架构演化之路

总结一下,我们是如何从 0 到 1,再从 1 到 N 构建一个稳定、高性能的 Redis 集群的,从这之中你可以清晰地看到 Redis 架构演进的整个过程。数据怕丢失-> 持久化(RDB/AOF)恢复时间久-> 主从副本(副本随时可切)故障手动切换慢-> 哨兵集群(自动切换)读存在压力-> 扩容副本(读写分离)写存在压力/容量瓶颈-> 分片集群分片集群社区方案-> Twemproxy、Codis(Redis 节点之间无通信,需要部署哨兵,可横向扩容)分片集群官方方案。

2022-09-25 13:22:35 183

原创 Redis到底是多线程还是单线程?

我们通常说的 Redis 单线程指的是「接收客户端请求->解析请求 ->进行数据读写等操作->发送数据给客户端」这个过程是由一个线程(主线程)来完成的,这也是我们常说 Redis 是单线程的原因

2022-09-25 11:38:40 1548

原创 spring常考知识点 ,面试时自信满满

Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。PROPAGATION_REQUIRED: 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS: 支持当前事务,如果当前没有事务,就以非事务方式执行。

2022-09-25 10:42:39 155

原创 spring面试连环10问,看看你能不能答出来呢?

准备环境,根据不同的环境创建不同的Environment准备、加载上下文,为不同的环境选择不同的Spring Context,然后加载资源,配置Bean初始化,这个阶段刷新Spring Context,启动应用最后结束流程单例模式。

2022-09-25 10:34:13 163

原创 怎么样学习spring呢?看这篇你就懂了

Spring 框架早已成为 Java事实上的行业标准,如何用好 Spring ,也就成为 Java 程序员的必修课之一。

2022-09-25 10:21:49 1276

原创 Spring事务原理一探

概括来讲,事务是一个由有限操作集合组成的逻辑单元。事务操作包含两个目的,数据一致以及操作隔离。数据一致是指事务提交时保证事务内的所有操作都成功完成,并且更改永久生效;事务回滚时,保证能够恢复到事务执行之前的状态。操作隔离则是指多个同时执行的事务之间应该相互独立,互不影响。

2022-09-25 10:09:33 143

原创 spring boot最核心的25个注解

这是 Spring 3.0 添加的新注解,用来导入一个或者多个 Spring 配置文件,这对 Spring Boot 兼容老项目非常有用,因为有些配置无法通过 Java Config 的形式来配置就只能用这个注解来导入。这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前。

2022-09-25 10:06:23 740

原创 40道MySQL高频面试题,你值得拥有

索引是存储引擎用于提高数据库表的访问速度的一种数据结构。如果 SQL 语句中用到了组合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个组合索引去进行匹配。当遇到范围查询(>、

2022-09-23 14:10:26 150

原创 面试了多家公司,总结出的MySQL笔记

覆盖索引幻读要说幻读,首先要了解MVCC,MVCC叫做多版本并发控制,实际上就是保存了数据在某个时间节点的快照。我们每行数实际上隐藏了两列,创建时间版本号,过期(删除)时间版本号,每开始一个新的事务,版本号都会自动递增。还是拿上面的user表举例子,假设我们插入两条数据,他们实际上应该长这样。idname这时候假设小明去执行查询,此时current_version=3复制代码同时,小红在这时候开启事务去修改id=1的记录,current_version=4。

2022-09-23 14:07:53 155

原创 掌握这份MySQL笔记,面试不愁

(注:char保存固定长度的字符串,例如定义char(8),存入hello,那么数据库将会用三个空格将其补全;varchar 保存长度可变的字符串,例如定义varchar(8),存入hello,那么存入数据库的就是hello)()也是既有时间又有日期的日期类型,如果没有日期存入到数据库中,数据库会使用系统的当前时间存入到数据中)()是既有时间又有日期的日期类型,如果没有像数据库中存值,数据库就会使用null存入到数据库中;from:要查询,先得找到数据的位置------即表的位置。

2022-09-23 14:04:36 82

原创 阿里高工内产的 SpringBoot 保姆级笔记,面面俱到,太全了

嘿伙计,你用过 Spring 和 SpringBoot 吗?是不是感觉Spring真是个强大的框架, SpringBoot 又让 Spring 更加牛批了呢?我想这个大家也都这么认为吧!SpringBoot 在当下的 Java后端开发中已经相当流行,非常多的公司和开发团队都选用 SpringBoot 作为快速构建项目的打底框架,究其原因你我都清楚,它方便简单,而且注解和编程式配置都让我们觉得更加简单、容易理解和维护。SpringBoot 只需要依赖starter就能整合进一个模块,它是怎么做到的?

2022-09-23 11:39:22 128

原创 Java圣经——互联网寒冬的应对之法尽在其中

那么如何在现在的行情下冲出重围,至少要保证自己有一份可以养家糊口的工作,今天马老师也为了帮助大家也特意整理了一份Java面试突击手册,涵盖的内容是非常全面:jvm、并发编程、mysql、redis、spring、springboot、springcloud、中间件、ZK、微服务、分布式、数据结构算法扽等内容!

2022-09-23 10:56:36 963

原创 上半年Java面试真题整理,一共343道,每一题都很经典

又是一年秋招季,国内的互联网面试,恐怕是现存的、最接近科举考试的制度。也许现行的八股文面试不是最优的解法,但的确是最符合当前国内IT环境的做法。篇幅所限本文就只贴一下题目了,同学们可以自己先看看有哪些题是会的,近期有面试的同学可以对照着查漏补缺,从事多年的也可以温故知新。

2022-09-23 10:18:19 99

原创 采访236位第一批秋招上岸的同学后,整理了这份Java面试手册

其实技术好不代表面试表现好,面试表现不好,自然得不到好的工作机会,所以想拿到好的offer除了平时夯实基础外一些面试准备也很重要,应广大读者要求,整理了一下今年各厂面试的一些高频题,希望对大家能有一些帮助。3. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?不知不觉又是一年秋招了,快的人甚至已经成功上岸了,当然时间还有的是,大部分同学也都还在准备中。23. SpringMVC 的控制器是不是单例模式,如果是会有什么问题,怎么解决?

2022-09-23 09:51:43 96

原创 Spring Boot精选面试题,让你把握十足

自Spring Boot诞生以来,就引起了业界轰动,目前越来越多的公司技术选型选择拥抱Spring Boot。所以Spring Boot也成为面试必问的问题之一。下面我总结了一些来开阔你的思路。要注册自动配置类,我们必须在文件的键(key)下列出其完全限定名称,如果是多个按照以下风格配置:如果我们使用Maven构建一个项目,那么该文件应放在目录中。此文介绍了在技术面试中经常遇到的一些关于Spring Boot的最关键问题。掌握以上的知识在日常开发中也是必要的,希望对你的面试有所帮助。

2022-09-22 11:05:06 196

原创 Spring Boot面试必须要知道的10道面试题

Spring Initializer 是一个 Web 应用程序,它使用快速启动所需的一切来生成 Spring 启动项目。和往常一样,我们需要一个好的项目框架;它可以帮助您正确地创建项目结构/框架。您可以在这里了解关于 初始化器 的更多信息。

2022-09-22 10:54:19 944

原创 超详细spring boot笔记

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。

2022-09-22 10:48:19 1290

原创 超详细全面 spring 复习总结笔记

定义面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。优点利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原理aop底层将采用代理机制进行实现。接口 + 实现类:spring 默认采用 jdk 的动态代理 Proxy。实现类:spring 默认采用 cglib 字节码增强。术语target:目标类,需要被代理的类。例如:UserService。

2022-09-22 10:39:29 922 1

原创 Spring Cloud集成Dubbo实现RPC调用

是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。Dubbo比起OpenFegin支持多种传输协议支持更多的负载均衡算法支持多种容错策略开箱即用高度可扩展。

2022-09-22 10:32:47 379

原创 Spring-Cloud如何异步跨线程查询链路日志(附实例)

由于分布式系统节点众多,排查错误日志要涉及到多个节点,如果在多个节点中没有唯一的请求id来把各个节点的请求日志串联起来,那么查询起来就会耗时耗力,因此出现了(Spring Sleuth基于论文实现,详细了解可以查看此论文),Sleuth会在接收请求的入口通过Filter生成唯一的标识TraceId,这个TraceId会一直跟随请求路径传递到各个节点,只要有日志输出就会把TraceId的值打印出来,如下图(正常还会生成SpanId,为了便于理解没展现)假如线上发生问题,要排查日志,那么根据这个。

2022-09-22 10:28:26 258

原创 阿里分布式开发小册Github新开源,原理实践双飞

如何设计一个优秀的分布式系统?设计分布式系统的本质就是“如何合理地将一个系统拆分成多个子系统并部署到不同的机器上”。拆分下来,在设计分布式系统时,应考虑以下6个问题。

2022-09-22 10:06:00 54

原创 掌握这101道算法题就足够了

又找了多位大厂的offer收割机同学调研,对于这101道题目的挑选进行评测,出乎意料得到了一直好评。得到这个结论的时候也印证了,真正能坚持熟练刷完101道题目的同学肯定是有极大收获的。其次的问题就是刷完这些题目需要多久,经过亲身试验,刷完这101道题目比你想象的时间要长,尤其是没有任何系统的指导手册的情况下。在你求职工作的道路上,耐心刷101道题目真的是一件再简单不过的事情了。清楚洞察大家的问题之后,拿出这101道题目,按照知识点划分,从难到易编排,每一道题目都配备了详细的题解,循序渐进。

2022-09-21 13:32:31 103

原创 深刻理解高性能Redis的本质

而在服务端,因为使用了 I/O 多路复用技术,所以不是阻塞式的同步执行,而是将消息放入 socket 队列(参考下图的 I/O Multiplexing module),然后通过 File event Dispatcher 将其转发到不同的事件处理器上,如accept、read、send。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。上图中的全局哈希表,它的时间复杂度是 O(1),只需要计算每个键的哈希值,便知道对应的哈希桶位置,定位桶中的 entry ,并找到对应数据。

2022-09-21 13:29:14 98

原创 解决 Redis 与 MySQL 数据一致性问题

该方案有个缺点,就是对业务代码中造成侵入,于是就有了下一个方案,启动一个专门订阅 数据库 binlog 的服务读取需要删除的数据进行缓存删除操作。未命中,则从数据库读取并把数据写到缓存中,所以。同样,如果过期时间过长,并且更新时没有使缓存失效,缓存的数据很可能是脏数据。由于数据仅在缓存未命中后才加载到缓存中,因此初次调用的数据请求响应时间会增加一些开销,因为需要额外的缓存填充和数据库查询耗时。如果先更新缓存成功,写数据库失败,就会导致缓存是最新数据,数据库是旧数据,那缓存就是脏数据了。

2022-09-21 13:26:34 410

原创 百度强推的Redis天花板笔记

Redis 是互联网技术架构在存储系统中使用最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的、竞争激烈的大型互联网公司(比如 Twitter、新浪微博、阿里云、腾讯云、淘宝、知乎等),通常要求面试者不仅仅掌握 Redis 基础使用,更要求深层理解 Redis 内部实现的细节原理。毫不夸张地说,能把 Redis 的知识点全部吃透,你的半只脚就已经踏进心仪大公司的技术研发部。

2022-09-21 13:22:12 68

原创 2022 最新版,Java 集合常见知识点&面试题总结

数组的缺点是一旦声明之后,长度就不可变了;当我们需要保存一组类型相同的数据的时候,我们应该是用一个容器来保存,这个容器就是数组,但是,使用数组存储对象具有一定的弊端, 因为我们在实际开发中,存储的数据的类型是多种多样的,于是,就出现了“集合”,集合同样也是用来存储多个数据的。无序性不等于随机性 ,无序性是指存储的数据在底层数组中并非按照数组索引的顺序添加 ,而是根据数据的哈希值决定的。在面试中可能更多的会出现在手撕算法的时候,典型例题包括堆排序、求第K大的数、带权图的遍历等,所以需要会熟练使用才行。

2022-09-21 10:49:59 102

原创 接近8000字的Spring/Spring常用注解总结

这个方法非常重要,在循环依赖中对于同一个bean会多次调用,先从一级缓存中查询是否存在bean,若不存在,再从二级缓存中查询是否存在bean,如果还是没有找到,从三级缓存中查询singletonFactory,如果没有,则直接返回,若在三级缓存中找到singletonFactory,则调用工厂中的方法创建bean,然后在把bean添加到二级缓存中。在启动类的第三行打断点开始单步调试,进入spring的容器启动流程。

2022-09-21 10:40:26 161

原创 如何简单理解 Redis 的缓存穿透、击穿和雪崩?

缓存异常会面临的三个问题:缓存雪崩、击穿和穿透。其中,缓存雪崩和缓存击穿主要原因是数据不在缓存中,而导致大量请求访问了数据库,数据库压力骤增,容易引发一系列连锁反应,导致系统奔溃。不过,一旦数据被重新加载回缓存,应用又可以从缓存快速读取数据,不再继续访问数据库,数据库的压力也会瞬间降下来。因此,缓存雪崩和缓存击穿应对的方案比较类似。而缓存穿透主要原因是数据既不在缓存也不在数据库中。因此,缓存穿透与缓存雪崩、击穿应对的方案不太一样。

2022-09-21 10:07:26 141

原创 金九银十,拿稳这份java面试八股文,丝毫不愁offer

"面试"一直是久经不衰的话题,对于已经到来的金九银十程序员来说,面试技巧,面试题,才是现在最需要的宝藏。我分享的这份总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &结构与等 25 个专题技术点,都是小编在各个大厂总结出来的面试真题,,今天在这里总结分享给到大家!

2022-09-21 09:57:01 527

原创 这套SpringBoot体系教程完美解决了我98%的项目问题

SpringBoot是目前软件中最主流的框架,无论是工作还是面试基本都有它的身影,SpringBoot主要解决了传统spring的重量级xml配置Bean,实现了自动装配。本文档对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通过“理论知识 + 一个可运行项目”的形式来详细说明。

2022-09-21 09:47:27 69

原创 这份MySQL全面手册,受喜爱程度不输任何大厂笔记

今天给大家分享的是一份MySQL全面手册,本书采取了一个全面的方法:涵盖了MySQL的主要特性以及诸如复制和各种API接口编程之类的高级主题。它还为理解关系模型提供了坚实的基础,全面涵盖了ACID事务和对关系数据库不够了解的人所要掌握的基本概念。体验过MySQL的人,对熟悉的主题会找到新的视角,从而更深入洞察MySQL的世界,提高他们现有的知识和经验。本书详细介绍了如何使用可定制的关系数据库管理系统支持健壮的、可靠的、任务关键的应用程序。在读者使用MySQL时,本书将会是一个颇有价值的资源。

2022-09-20 11:28:51 45

原创 1000道最新高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构

每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。从业十多年,我从面试者变成面试官,在 Java 面试上积累了比较丰富的经验。

2022-09-20 10:48:10 2961

原创 MySQL面试题及答案,收藏起来不怕问到

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。

2022-09-20 10:27:15 1379

原创 面试如何准备Redis的问题(含缓存穿透,持久化和数据一致性等知识点)

Redis能用来展示缓存方面的技能,而且也不难准备,在本文里,就讲详细讲讲Redis面试该如何准备

2022-09-20 10:10:33 342

原创 关于Dubbo的面试题,建议收藏

Dubbo是一个基于分布式的远程调用框架,通过Dubbo,开发者能像调用本地方法一样调用部署在远端机器上的方法。而RPC是Remote Procedure Call的简写,翻译成中文是远程过程调用,通过RPC,程序员能在不需要了解网络底层通讯细节的基础上调用远端服务。关于RPC的调用方式大家可以参考下图,而Dubbo是以RPC的方式来调用远端服务。而Dubbo的主要功能包括远程通讯,以集群的方式对外提供服务和服务治理。

2022-09-20 10:00:58 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除