摘要: Fork译为拆分,Join译为合并Fork/Join框架的思路是把一个非常巨大的任务,拆分成若然的小任务,再由小任务继续拆解。直至达到一个相对合理的任务粒度。然后执行获得结果,然后将这些小任务的结果汇总,生成大任务的结果,直至汇总成最初巨大任务的结果。如下图: 红色箭头代表拆分子任务。绿色箭头代表返 阅读全文
posted @ 2023-06-14 14:59 王若伊_恩赐解脱 阅读(386) 评论(0) 推荐(1) 编辑
摘要: 一致性哈希算法是1997年由麻省理工的几位学者提出的用于解决分布式缓存中的热点问题。大家有没有发现,我们之前介绍的例如快排之类的算法是更早的六七十年代,此时分布式还没有发展起来,大家往往还在提高单机性能。但是九十年代开始,逐渐需要用分布式集群来解决大型问题,相应的算法研究也就应运而生。在说到一致性哈 阅读全文
posted @ 2023-06-02 16:50 王若伊_恩赐解脱 阅读(309) 评论(0) 推荐(1) 编辑
摘要: 前文我们说过了BIO,今天我们聊聊NIO。NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO。这是jdk1.4之后新增的一套IO标准。为什么要用NIO呢?我们再简单回顾下BIO:阻塞式IO,原理很简单,其实就是多个端点与服务端进行通信时,每个客户端 阅读全文
posted @ 2023-05-22 15:50 王若伊_恩赐解脱 阅读(379) 评论(0) 推荐(4) 编辑
摘要: IO模型即输入输出模型,我们今天主要来聊的是java网络编程中的IO模型 BIO模型。BIO即阻塞式IO,Blocking IOblocking [ˈblɒkɪŋ] v. 堵塞; 阻塞; 堵住(某人的路等); 挡住(某人的视线等); 妨碍; 阻碍;那究竟什么是阻塞呢?这里的阻塞和多线程并发控制中,对 阅读全文
posted @ 2023-05-16 16:00 王若伊_恩赐解脱 阅读(269) 评论(0) 推荐(2) 编辑
摘要: 图形验证码属于老生常谈了,具体细节这里就不说了。生成图形验证码的办法非常多,今天讲解一种通过Kaptcha组件快速生成图形验证码的方法。Kaptcha是谷歌开源的一款简单实用的图形验证码组件。我个人推荐它的最大原因是容易上手,采用约定大于配置的方式,快速契合到项目中。话不多说,我们看看该如何使用它: 阅读全文
posted @ 2023-05-15 16:20 王若伊_恩赐解脱 阅读(889) 评论(1) 推荐(3) 编辑
摘要: 什么是统一建模语言,来看看百科中的介绍统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。简单来说UML就是脱离于具体 阅读全文
posted @ 2022-09-14 16:22 王若伊_恩赐解脱 阅读(601) 评论(1) 推荐(1) 编辑
摘要: 前面两篇文章主要介绍了,快慢指针在链表环中的应用。除此之外,我们还常常利用快慢指针来查找单向链表中指定位置的节点。常见的经典题目有:1、查找倒数i位置的的节点2、查找中间节点我们依次来看一、查找快慢指针查找单链表中位于倒数第i个位置的元素力扣 剑指 Offer 22. 链表中倒数第k个节点 (htt 阅读全文
posted @ 2022-09-09 10:49 王若伊_恩赐解脱 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章(https://www.cnblogs.com/jilodream/p/16666435.html)中,我们已经知道可以通过快慢指针,最终判断一个单向链表是否成环。一般在判断存在环之后,还有一个经典的问题:查找环的起点节点是哪里呢力扣 142. 环形链表 II (https://lee 阅读全文
posted @ 2022-09-08 18:48 王若伊_恩赐解脱 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 双指针是算法中非常重要的一个解决问题的思路。双指针顾名思义,就是有两个指针。根据双指针的方向及速度,我们一般将双指针分为以下几种场景1、快慢双指针2、左右双指针所谓快慢双指针是指,两个指针,一个快指针,一个慢指针,按照相同的方向,从链表(或数组)的一侧移动到另外一侧的场景。 如下图: 而左右双指针, 阅读全文
posted @ 2022-09-07 16:54 王若伊_恩赐解脱 阅读(628) 评论(0) 推荐(2) 编辑
摘要: Json格式在后台服务中的重要性就不多说了,直入正题。首先引入pom文件,这里使用的是1.2.83版本 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 <artifactId>fastjson</artifactId> 4 <version>1.2 阅读全文
posted @ 2022-08-19 00:53 王若伊_恩赐解脱 阅读(2161) 评论(0) 推荐(2) 编辑
摘要: 在过往的后台开发中,我们往往使用java自带的线程或线程池,来进行异步的调用。这对于效果来说没什么,甚至可以让开发人员对底层的状况更清晰,但是对于代码的易读性和可维护性却非常的差。开发人员在实际使用过程中,应该更多的将精力放置在业务代码的书写过程中,而不是系统代码的维护中。你需要懂,但是不需要你直接 阅读全文
posted @ 2022-08-16 20:00 王若伊_恩赐解脱 阅读(1894) 评论(0) 推荐(5) 编辑
摘要: 背景:我使用的版本是IDEA ultimate 2019.2 版本印象中,最初安装的时候,商店还是可以用的,突然有一天,就无法使用了。下边直入正题: 解决办法:1、首先浏览器登陆下:https://plugins.jetbrains.com/判断是否和idea插件的网站,网络是连接通畅的。如果OK, 阅读全文
posted @ 2021-12-06 10:52 王若伊_恩赐解脱 阅读(1403) 评论(0) 推荐(0) 编辑
摘要: 在开始讲述原理的情况下,我们先来做个知识汇总,究竟什么是主从,为什么要搞主从,可以怎么实现主从,mysql主从同步的原理1、什么是主从其实主从这个概念非常简单主机就是我们平常主要用来读写的服务,我们称之为master(主人、主宰)从机就是主机进行的一个扩展,他一般不会主动用来读写,我们称之为slav 阅读全文
posted @ 2021-08-26 00:10 王若伊_恩赐解脱 阅读(2166) 评论(0) 推荐(1) 编辑
摘要: 限流是啥?维基百科是这样解释的:在计算机网络中,频率限制被应用在控制网络接口收到或发送的请求频次,它可以被用来阻止dos攻击或者是网络爬虫。直白点说,就是限制服务收到或发出的请求频次,保证整体服务可以正常健康的使用。谈到这里有人会想,只要我服务处理的速度足够快,那么频次高点也没问题,而且我们做的系统 阅读全文
posted @ 2021-08-25 00:50 王若伊_恩赐解脱 阅读(648) 评论(2) 推荐(0) 编辑
摘要: 类加载过程本质上就是类加载器根据类的全限定名称去找到对应的class字节码文件内容,然后将字节码文件的内容加载到虚拟机方法区中的过程。所以我们大体上可以把类加载的过程分为三部分:1、加载,就是获取到class文件的内容2、链接,就是把相应的文件内容添加到虚拟机中,转变为虚拟机中的class对象,使虚 阅读全文
posted @ 2021-08-13 01:44 王若伊_恩赐解脱 阅读(1343) 评论(0) 推荐(1) 编辑