自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (3)
  • 问答 (8)
  • 收藏
  • 关注

原创 详解 Redis 队列 实现

Redis 的 List 数据结构可以用来实现普通的队列。生产者使用 LPUSH 或 RPUSH 命令将消息添加到列表的头部或尾部,消费者使用 LPOP 或 RPOP 命令从列表的头部或尾部取出消息。这种方式简单轻量,但缺少一些高级特性,如消息重试、持久化等。

2024-08-13 22:45:00 1718

原创 详解Redis 高可用的方式 Redis Cluster

故障节点的从节点竞选成为新主节点,其他节点更新槽映射与配置,客户端自动重定向。缺点 哨兵模式需要部署和配置额外的哨兵节点,增加了系统的复杂性,并且主节点发生故障后,新的主节点可能会有一段时间的数据不一致,影响数据的准确性。集群的端口:每个Redis集群节点需要打开两个TCP连接,一个用于客户端连接,另一个用于集群节点间通信,后者使用的是二进制协议。虽然Redis Cluster支持故障转移,但如果主节点和其所有从节点同时宕机,那么该节点的数据将会丢失,集群将不可用。

2024-08-10 10:00:00 1171

原创 详解Redis源码中的设计模式及设计思想

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)、位图(bitmaps)、超日志(hyperloglogs)和地理空间(geospatial)索引半径。

2024-07-17 21:45:00 1285

原创 java.lang.OutOfMemoryError: WrappedJavaFileObject --idea启动项目内存溢出解决

java.lang.OutOfMemoryError

2024-04-18 10:56:41 866

原创 Java线程池实现原理详解

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。而本文描述线程池是JDK中提供的ThreadPoolExecutor类。

2024-02-22 09:59:03 645

原创 解决XXLJOB重复执行问题--Redis加锁+注解+AOP

基于Redis+注解+AOP解决XXLJOB重复执行问题

2023-10-20 15:21:54 2602

原创 Java ZGC 算法调优

ZGC 是一种专门的垃圾收集器,专注于管理大型堆并最大限度地减少 Java 应用程序中的暂停。

2023-09-14 10:18:09 592

原创 Elasticsearch 从入门到实战到精通(Docker版)

解决什么问题有关系型数据库MySQL 为什么还用全文搜索引擎(Elasticsearch/Solr)?MySQL 侧重数据存储,用like进行简单关键字搜索,但无法应对海量数据下各种复杂条件的查询。如果需要全文进行模糊搜索,MySQL性能是非常低的.例如如下场景: 在一张一亿数据量的手机详情表,搜索小米手机,如果用MySQL实现的话可能会这样写:> select * from phone where phone_brand like "%小米%"理论上是可以查到相关数据的,但是

2022-05-21 22:55:56 615

原创 Java并发之AQS原理详解

是什么概念AQS 的全称为(AbstractQueuedSynchronizer),即抽象队列同步器, 这个抽象类在java.util.concurrent.locks 包下面。(juc是JDK1.5之后,由 Doug Lea实现并引入。)public abstract class AbstractOwnableSynchronizer implements java.io.Serializable作用构建锁或其他同步组件的基础框架- Lock 包中的各种锁(如常见的 Reen

2021-06-20 17:13:59 243

原创 【Docker】Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制 allkeys-lru】详细教程!!!

前言本篇文章介绍了Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制allkeys-lru】的详细教程,希望对您有所帮助!redis.conf 文件配置下载官方安装包redis.conf链接: https://pan.baidu.com/s/1ML-8QNA9LWpcatf6mk25cA提取码: 3jgf复制这段内容后打开百度网盘手机App,操作更方便哦我修改的方式,统一先在redis.conf文件中修改好,然后把改后的整个redis.conf文件的内容复

2021-01-18 22:36:15 2520

原创 阿里巴巴编码规范技能认证考试心得与试题

前言现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。无规矩不成方圆,无规范难以协同,站在巨人的肩膀上,借鉴行业优秀经验总结,码出高效,码出质量。学习资料《Java开发手册》v1.5.0 华山版.pdf考试过程认证入口(需要费用9.9元): 阿里巴巴编码规范技能认证入口需要上传本人身份证正面照,使用的电脑摄像头需要正常,考试过程中全程摄像头进行监控;考试时间为90分钟;内容为50道选择题,满分100分(

2021-01-10 19:27:00 1390 11

原创 【萌姐讲底层原理】Arrays.sort & Collections.sort 底层原理

whereArrays和Collections 是JDK 中能实现排序的两个工具类,都来自java.util工具包whatArrays.sort 主要用于数组排序,包括基本类型的数组和对象数组。 Collections.sort 对List等集合类进行排序.底层实现(jdk1.8版本)Collections.sort 方法调用了list.sort方法public static <T extends Comparable<? super T>> void sort(

2020-12-27 19:13:09 1121 1

原创 高效读书的秘密

读书又快又好的秘密读书普遍的问题(大多数人)1.没目标或对目标理解有误2.慢3.从头到尾每个字读4.没内化和输出5.用听书取代读书高手读书观1. 原因和目标2. 读精华3. 输出倒逼输入4. 好书重复读5. 不同书不同力度读OKSSOKSS小结读书普遍的问题(大多数人)1.没目标或对目标理解有误正确做法:“我要读完这本书” 不是目标; 目标有2个方面:时间: 如我要什么时间看这本书,什么...

2019-09-10 12:58:10 694 6

原创 微服务Spring Cloud--架构演变

springcloud身世与作用

2019-09-04 18:26:31 484

转载 Angular 重大版本升级: 8.0 正式发布! 支持更多 Web 标准

Angular 8.0.0 版本正式发布了!8.0 是重大版本升级,整个平台,包括框架、Angular Material 和 CLI 都同步升级到了新版。Angular 8.0 版缩短了应用在现代浏览器上的启动时间,提供了用于访问 CLI 的新 API,并使 Angular 支持更多 Web 标准,追上了 Web 生态的前沿发展趋势。如何更新到 Angular 8.0.0 版本用户可以访问up...

2019-06-01 20:32:43 7217 3

转载 七年程序员生涯,我学到最重要的 6 个教训

身为开发者的你是否思考过这个问题:在编程过程中,到底什么才是最重要的?本文作者的编程生涯始于 2012,到今年正好 7 年的时间。面对“七年之痒”,作者带来了对编程的一些思考,希望能够对你有所帮助。时间如梭,不是吗?我的编程之旅始于 2012 年,当时我还只是个 C++ 编程实习生。说实话,我根本不知道自己在做什么。即使是到了现在,这种状况依然没有改变。不过,在这个过程中,我确实学到了很多东西...

2019-05-31 10:00:17 651 6

转载 Spring Boot 最流行的 16 条实践解读!

Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列出了最佳实践,排名不分先后。欢迎胖友在文末留言,分享你的 S...

2019-05-29 16:23:29 175 3

转载 阿里巴巴程序员常用的 15 款开发者工具

从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:工具名称和简介使用...

2019-05-28 15:12:04 385 3

转载 麻了,不要再动不动就BeanUtil.copyProperties

小结一下,对象在不同层之间进行转换映射,很不建议使用BeanUtil.copyProperties这种方式,更加推荐使用原生的set, get方式,不容易出错。当然这不是将BeanUtil.copyProperties一棒子打死,毫无用武之地,在特定场景,比如方法内部对象的转换等影响小的范围还是很方便的,如果你有其他的想法,也可以留下你的想法,一起探讨交流。前言最近项目上要求升级一个工具包hutool的版本,以解决安全漏洞问题,这不升级还好,一升级反而捅出了更大的篓子,究竟是怎么回事呢?事件回顾。

2023-12-14 19:23:26 116

原创 cn.hutool.core.exceptions.DependencyException:You need to add dependency of ‘poi-ooxml‘....>=4.12

最终修改为:

2022-12-04 12:32:00 7496 3

原创 二分法 java两种实现方式

是什么概念二分法(Bisection method) 即一分为二的方法,又叫折半查找方法。把一组有序数列分为左右两部分,从这组数字的中间位置开始找:如果中间位置的数等于目标数,则直接返回;如果中间位置的数大于目标数,则从左边部分查找;如果小于目标数,则从右边部分查找;重复以上过程,直到找到满足条件的记录,使查找成功。场景:从一堆有序的数中,找出一个数;当数据量很大适宜采用该方法。前提 注意前提是 有序的数列思想分治复杂度时间复杂度:都是O(log2 N)空间

2022-05-02 18:04:15 2554

原创 深入理解开闭原则 及 Java代码应用

是什么定义在面向对象编程领域中,开闭原则 (The Open/Closed Principle, OCP) 规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。扩展这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。开闭原则的命名被应用在两种方式上。这两种方式都

2021-10-26 14:36:22 568 2

翻译 微服务架构之是什么?为什么? 怎么做?

作者:Jetinder Singh多年来,我们一直在构建系统并在这方面做得更好。这些年来出现了多种技术、架构模式和最佳实践。微服务是从领域驱动设计、持续交付、平台和基础设施自动化、可扩展系统、多语言编程和持久性领域中出现的架构模式之一。简而言之,什么是微服务架构?罗伯特·C·马丁创造了这个词 单一责任原则 它指出“将因相同原因而变化的事物聚集在一起,并将因不同原因而发生变化的事物分开”。微服务架构采用相同的方法并将其扩展到可以独立开发、部署和维护的松散耦合服务。这些服务中的每一个都负责离散任务,并且

2021-10-12 22:03:30 290 1

转载 [MySQL高级](一) EXPLAIN用法和结果分析

1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。➤ 通过EXPLAIN,我们可以分析出以下结果:表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询➤ 使用方式如下:EXPLAIN +SQL语句EXPLAIN SELECT * FROM t1执行计划包含的信息2. 执行计划各字段含义2.1 idse

2021-08-25 18:24:03 446

翻译 aws s3 sync .. --部署到 Amazon S3 的新方法【翻译】

自从我开始在 Amazon S3 上托管这个站点以来,我一直在使用 middleman-s3_sync来完成将文件同步到存储桶的繁重工作。不幸的是,在此过程中,它停止了某些本应同步的文件。我试图成为一名优秀的OSS 公民并找到解决方法,但在深入研究中间人的内部结构后,我找不到问题所在。一种新方法需要一种部署站点的新方法,最近我转而使用亚马逊自己的aws cli实用程序。经过多年在工具方面几乎一无所获,亚马逊发布了自己的命令行实用程序,用于与 AWS 交互。最好的部分是它看起来非常好。这就.

2021-08-10 18:59:17 1367 1

翻译 Java 在 2021 年仍然重要吗?【翻译】

Java 在 2021 年仍然重要吗?Java 以不同的方式被广泛使用,尤其是在您可能经常使用的流行平台上,例如 Twitter、Google、Amazon、Spotify 和 YouTube。当技术存在多年后,它可能会显得无关紧要、缺乏竞争力,甚至对某些人来说已经过时。Java 的情况并非如此,它今年已经 26 岁了。Java 不再是过去式——它仍然非常流行,这让那些继续坚持 Java 是老式的想法的人继续感到惊讶。甚至最近的统计数据和研究表明,Java 仍然是最受欢迎、使用和喜爱的编程语言之一。但

2021-08-09 19:27:12 247 1

原创 【Java】Date LocalDate LocalDateTime三者的互换-UTC时区-Unsupported field: OffsetSeconds

public class DateUtils {//LocalDate 转为 Date public static Date asDate(LocalDate localDate){ return Date.from(localDate.asStartOfDay).atZone(ZoneId.of("UTC")).toInstant()); }//LocalDateTime 转为 Date public static Date asDate(LocalDateTime localDateTim

2021-08-08 11:12:35 4300 1

原创 Nginx OpenResty

是什么区别优缺点为什么OpenResty 解决了Nginx什么痛点应用问题解决

2021-08-01 18:02:28 136

原创 过滤某个时间段的关键字【linux 命令 sed】

过滤某个时间段的关键字:sed -n '/2021-07-01 09/,/2021-07-01 11/p' 文件名 | grep "关键字”以上命令解释:-n抑制输出, p打印特定行的命令;逗号 ( ,)分隔的两个地址指定地址范围。地址范围匹配从第一个地址匹配的行开始,一直持续到第二个地址匹配;grep: 查找文件里符合条件的字符串扩展sed(stream editor) 数据流编辑器,流编辑器用于对输入流(文件或来自管道的输入)执行基本的文本转换。虽然在某些方面类似于允许脚本化

2021-07-05 16:47:07 1250 1

原创 Java 访问控制private,default,protected 和 public 区别【Java面试题】

private,default,protected public 区别注意: private 和 protected 不能修饰类(外部类),为什么?因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(prot

2021-07-04 21:40:43 200 1

原创 获取字符串中 某部分的值【Gson & Fastjson 分别实现】

需求从调用某第三方的接口的返回值字符串(举例如下)中,获取其中某部分的值。{\"userId\":\"111\",\"userName\":\"ll\",\"level\":1,\"isVIP\":true}"实现用 Gson 工具类 将 字符串转为Map, 通过key,value 方式获取。代码如下:public class TestString { public static void main(String[] args) { String userI

2021-06-22 19:02:14 1230

原创 102.二叉树的层序遍历【java】--LeetCode Top100

102.二叉树的层序遍历【java】题目代码(java)https://leetcode-cn.com/problems/binary-tree-level-order-traversal/题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],返回其层序遍历结果:[[3],[9,20],[15,7]]代码(java)/** * Definition for a binary

2021-05-16 19:32:24 142

原创 94. 二叉树的中序遍历【java】--LeetCode Top100

94. 二叉树的中序遍历题目思路代码(java)https://leetcode-cn.com/problems/binary-tree-inorder-traversal/题目给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入

2021-05-16 19:26:44 182

原创 Can‘t chdir to ‘/usr/local/var/db/redis/‘: No such file or directory

问题Can't chdir to '/usr/local/var/db/redis/': No such file or directory解决运行以下命令即可mkdir -p /usr/local/var/db/redis

2021-03-03 18:30:41 6044 1

原创 Docker 安装Redis 详细教程!!!

前言本篇文章介绍了Docker 安装Redis,Redis.Conf 文件配置【持久化AOF+定期删除+惰性删除+内存淘汰机制allkeys-lru】的详细教程,希望对您有所帮助!Docker 安装Redis查找Redis镜像镜像仓库 https://hub.docker.com/DockerHub上搜索对应版本下载镜像docker pull redis#指定版本号:docker pull redis:6.0.6备注:不加版本号默认获取最新版本下载完成后查看镜像 d

2021-01-18 22:22:24 938

原创 LifecycleException: Failed to start component [StandardEngine[Tomcat]

前言SpringBoot启动报错:LifecycleException: Failed to start component [StandardEngine[Tomcat]解决在下图中移除JavaEE6包即可

2021-01-17 22:24:31 727 2

原创 【Mac】安装JDK1.8和JDK11双版本并任意切换

下载安装首先区官网下载JDK8和JDK11安装包,安装后打开bash官网下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.htmlcd /Library/Java/JavaVirtualMachinesls -al上图可知有双版本:jdk-11.0.6.jdk 和 jdk1.8.0_221.jdk,可以看到两个版本安装成功编辑环境变量vim ~/.bash_profile

2021-01-15 13:00:08 2958

翻译 2021年预计有15种DevOps趋势

2021年预计有15种DevOps趋势这是一篇综述文章,我们从15位DevOps专家那里收集了他们对DevOps的背景下2021年趋势的看法。Pavan Belagatti用户头像 通过 帕万·贝拉加蒂 核心 · 21年1月8日 · DevOps区 · 意见喜欢 (1)评论 (0)保存鸣叫 2.45千 次浏览加入DZone社区并获得完整的会员体验。 免费参加DevOps已经走了很长一段路,毫无疑问,它将在今年继续发光。由于许多公司都在寻求有关数字化转型的最佳实践,因此重要的是要了解领导者认

2021-01-09 18:29:05 478 1

原创 一张图搞定架构演变!

导读:   这篇博文主要介绍了架构的演变及各个架构的优缺点。目录:正文小结正文小结一句话总结架构演变方向“更高 更快 更强”。

2021-01-01 19:42:49 287

原创 程序=数据结构+算法

why 为什么会出现程序呢?小编认为是用为了计算机解决生活中的问题,而数据结构和算法的出现是为了更高效的提高程序执行的效率。但是前提是得合理使用。 为什么要学习数据结构和算法呢?最直观的是money,更深层次是我们要学习他们里面的思想,思维方式,然后运用到生活。what: 程序(计算机程序):一组指令,一组指示计算机或者其他具有消息处理能力装置每一步动作的指令,通

2020-12-31 15:18:58 12811 26

技术架构图(某互联网公司真实架构)

给java后端开发亲们分享技术架构图,涉及前端,后端,数据库; 涉及框架:spring cloud,spring boot,mybatis 等, 面试可用(本人面试时就用了,顺利拿到理想的offer)。

2020-12-28

XML实用教程.pdf

XML实用教程,电子版的分享给大家,希望大家从中有所收获啦!

2017-09-30

Head First 设计模式(中文版).pdf

Head First 设计模式(中文版).pdf ,分享给大家啦!

2017-09-30

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

TA关注的人

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