自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(207)
  • 资源 (3)
  • 收藏
  • 关注

原创 redis官网通读

最好的方法是运行redis check aof实用程序,最初不使用–fix选项,然后了解问题,跳到文件中给定的偏移量,看看是否可以手动修复文件:aof使用与redis协议相同的格式,手动修复非常简单。这相当于Redis集群中的同步复制。正如你所看到的,B在回复客户端之前不会等待B1、B2、B3的确认,因为这对Redis来说是一个令人望而却步的延迟惩罚,所以如果你的客户端写了一些东西,B确认了写操作,但在能够将写操作发送到其副本之前崩溃,其中一个副本(没有收到写操作)可以升级为主副本,永远失去写操作。

2023-05-15 14:28:13 505

原创 GRPC使用com.googel.protobuf传输

一次对接,邮件服务器上的具体实现是GO语言实现的,它的调用不是http而是protobuf方式传输的。百度百科:Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python、Objective C、C#、Ruby、PHP、JavaScript八种编程语言,还可以找到大量的几乎涵盖所有语言的第三方拓展包。重点:通过它,你可以定义你的数据的结

2021-06-28 10:50:42 299

原创 java锁的深度实现理解

越学到后面发现操作系统,底层原理息息相关。这篇文章需要你对有所理解。1、操作系统基本常识1、操作系统(os)2、jvm和os的交互2.1 交互图1、操作系统(os)操作系统结构图:(待补充)2、jvm和os的交互2.1 交互图jvm对操作系统而言,jvm就是os中的一个进程,这个进程中有多线程需要cpu调度、上下文切换,也有I/O流操作需要操作系统等。1、kernel百度百科实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之

2021-06-17 01:07:09 280

原创 最长连续序列letcode

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。package com.yunlong.test;import java.util.*;public class SerMaxSubArray { public static void main(String[] args) { int[] nums = {9,1,-3,2,4,8,3,-1,6,-2,-4,7}; longestConsecutive(nu

2021-04-27 14:22:44 154

原创 删除链表中某个元素

值得记录的问题,一开始用了LinkedBlockingQueue,使用pop()出队的时候,发现空指针,这是因为链表的结构导致,属于常识(我不知道o(╥﹏╥)o)package com.yunlong.test;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;// Lin

2021-04-27 10:34:19 150

原创 微信公众号接入

很久没来。5个多月了。换了工作比较忙。还是立志写一份老太太、老爷爷都能看懂的文章。1、基本的东西,请先看个官网。必要条件:1、你开通了微信公众号功能。我们作为二次开发,你只需要关注你要的东西就行。简单总结一句话,你要做的:就是给微信开放接口,让他能把请求转发给你,你再做处理。相关maven依赖在最底下基本常识:往最底下滑,有个开发-基本配置。上面除了二维码,其他的马赛克就是你需要重点关注的东西。先说几个注意事项:1、这里可以下载demo,里面有很多版本,java、php等。而不是只是php的

2021-03-02 20:38:50 409

原创 springcloud技术栈和思维导图

官方图:这个图尤其重要,一定要记住问题1: 知道为什么网关再第一关吗?技术体系栈:总体思维导图:详细说明:

2020-11-15 18:24:17 214

原创 IO底层概念理解

Kernel一般指实时操作系统。jvm到cpu、硬盘需要系统调用。这个东西原来这么底层。有时间必须好好研究下。IO太重要了。下图的磁盘IO解释:jvm进程中运行着java线程,写和读是逆过程。以写为列子,jvm写入程序缓冲区,通过flush冲刷,如果你不使用flush,那么数据将停在系统buffer中,只有冲刷后才会写入硬盘。因此这是两次拷贝。那么我们如何高效的写入内存变得很重。BIO (Blocking I/O):同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。这里使用那个经典的

2020-11-01 21:40:07 438

原创 springcloud学习

感谢,狂神说。视频链接微服务常见问题:1、服务很多,客户端怎么访问。2、服务之间怎么通信。3、如何治理这么多的服务。4、服务挂了怎么办。解决方案:Spring Cloud 生态! 必须会springboot1.Spring Cloud netFlix 一站式解决方案api网关:zuul组件通信:Feign --HttpClient —http通信方式,同步,阻塞服务注册和发现:Eureka熔断机制:Hystrix2.Apache + Dubbo + Zookeeper 半自动,

2020-10-21 11:08:07 316 2

原创 springboot+redis+angular+zookeeper+kafka等实战

很遗憾,看了很多文章都没有我想要很多实际中能切合。脱离了环境的说明我不认为是有效的。基础环境要有,这里使用docker构建基础环境。没有基础就不要看这篇文章了,不然浪费时间,其次东西完全是个人研究用,不保证100%对。保证docker虚拟机已有。1、redis集群配置:下面的一切依照官网而来。dockerhub官网搜索redis。选择适合你虚拟机的版本。这是我的版本。并确保环境干净。Connecting to 192.168.253.129:22...Connection establis

2020-10-19 22:40:48 754

原创 视频预览遇到的坑

总结下视频预览遇到的坑:1、视频预览–后台返回base64或二进制流arraybuffer格式(我们一般直接返回url使用即可,处于安全考虑,现在需求就是这样)问题一:base64方式:videosrc = 'data:' + content-Type + ';base64,' + base64Code(base64Code是指返回的base64)。这个拼接可前端可后端,建议后端做,因为可能存在换行问题,需要将base64Code.repalce("\r\n","")。如果是前端:base64Code

2020-08-23 00:04:40 862

原创 内容安全策略( CSP )

CSP官网必须查看官网。最近项目需求,需要实现获取HDFS服务器上文件,视频、音频、图片实现预览。遇到了两个问题:1、提示Security-Policy media-src self blob:;2、base64解析出错。百度了将近几个小时,发现每一个人说清楚具体。最后看了官网一目了然。内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。CSP 被

2020-08-22 23:26:53 483

原创 有关MIME-TYPE

有关图片、音频、视频引出的mime。现有需求需要是实现图片、音频、视频上传,以及显示预览来组装数据,一切发送给用户。视频: MP4、webn、3gp<!-- 视频实现方式-->1、video标签音频:3gp、mp3、aac、amv等<!-- 视频实现方式-->1、audio标签图片:jpeg、jpg、png、bmp、gif1、img标签``除了上面的以外,你还有用下面几种方式,不到没有办法的办法不要使用下面的几种方式。1、embed标签2、object

2020-08-18 21:29:47 344

原创 nginx官网学习

水贴,没理清楚。建议不看。中文官网英文官网它的内容可以说相比其他的技术技术是要少的。为什么要用nginx?现在是信息大爆炸的时代,瞬间并发的场景是非常的多的。如上图,分布式是解决并发的一个思路。Apache和Nginx都有能力提供每秒钟庞大的请求服务,但是随着并发数量的增加,Apache的性能开始下降,然而Nginx的性能几乎不会下降。所以使用nginx偏向更多。nginx中几个重要的概念:反向代理、负载均衡、动静分离。代理的概念:现在很多企业,都有自己的代理。通过另一个服务器,转到

2020-08-17 22:43:44 282

原创 angular官网阅读记录

今天比较闲,虽然本人css也很菜,实在不愿意看。更愿意看些框架类的东西,这里主要是概念理解,从而提升自己的逼格,换句话说,我说的每句话都是有来源和依据的。二是今天遇到一个问题,组件导入的问题,也还有前段时间组件sevice化的传值等原因。1、angular是什么?Angular 是一个用 HTML 和 TypeScript 构建客户端应用的平台与框架。 Angular 本身就是用 TypeScript 写成的。它将核心功能和可选功能作为一组 TypeScript 库进行实现,你可以把它们导入你的应用中

2020-08-11 01:22:34 177

原创 angular动态化组件加载

现在有一个需求:页面上有一组图标,点谁加载对应的组件。组件之间没什么联系。利用class的特性来实现:// 抽象类用于判断子组类型export abstract class ChilrenSelectComponent { // 自定义接收数据.这里可以根据需要定义很多东西的 data: any;}一个组件举例:需要去实现extends ChilrenSelectComponentimport { Component, OnInit } from '@angular/core';i

2020-08-09 22:36:37 364

原创 兄弟组件及任意组件间传值

最经典的是父子之间的传值:官网推荐方式:父组件html:<div class="content"> <div class="left"><!-- 这里的这/ 不能少--> <a [routerLink]="['/home/welcomeHome']">欢迎首页</a> <br><br> <a [routerLink]="['/home/systemSetting']">系

2020-08-09 21:00:37 694

原创 docker搭建学习笔记

以下笔记来自B站狂胜教学:感谢狂神的教学视频1、docker的出现解决了什么问题?首先,一个项目的上线,离不开开发和运维。Docker将两者连接起来,开发人员在docker上,将项目带上环境安装打包。运维直接通过去下载镜像,直接运行即可。做到开发打包部署上线,一套流程做完。Docker官网从上面的图标可看都,小鲸鱼上面有很多集装箱。Docker的核心就来自于集装箱,集装箱之间相互隔离,正是通过这种隔离机制将服务器利用到极致。有兴趣可以去,docker发展历史,是一个有趣的发展过程。docke

2020-08-09 19:31:10 1307

原创 MQ的学习

1、什么是MQ?MQ = Message Queue消息队列,是对消费者生产者模型的升级。当前由于复杂的业务和服务压力过大,大多都采取微服务。传统的生产者和消费者模型是不能够满足条件的。同时消息的生产和消费都是异步的,而且我只关心消息发送和接收,没有大量的业务逻辑的写入,为了实现系统之间的解耦,通过利用高效的消息传递机制进行于平台无关的数据交流,并基于数据通信来进行分布式系统的集成。2、分类。当前市面上右多种消息中间件,比如ActiveMQ、RabbitMQ、kafka等。kafka:分布式订阅-

2020-08-02 23:08:48 675

原创 200. Number of Islands

Number of IslandsGiven a 2d grid map of '1’s (land) and '0’s (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all .

2020-07-29 21:18:46 91

原创 202. Happy Number and 203. Remove Linked List Elements

Happy NumberWrite an algorithm to determine if a number n is “happy”.A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process unt.

2020-07-29 21:01:42 123

原创 redis详解(二)

命令再补充上篇图片上传不够了:命令设置密码,以及取消密码:127.0.0.1:6379> config set requirepass '123456'OK127.0.0.1:6379> ping(error) NOAUTH Authentication required.127.0.0.1:6379> auth 123456OK127.0.0.1:6379> pingPONG127.0.0.1:6379> config set requirepass

2020-07-25 13:42:32 436

原创 redis详解(一)

业务发展历史:1、单机版2、Memcached(缓存) + mysql + 垂直拆分(读写分离)3、分库分表 + 水平拆分 + mysql集群4、如今的背景:现在是数据大爆炸的时代,各种东西都是数据、资源。典型的处理比如短时间点赞10w+,不可能一直往数据库存。本地缓存一定时间再去存数据库。再比如博客比较大的文件、图片。数据库表很大,效率就很低。如果有一种数据库专门来处理这种数据。这样数据库的压力就变得很小,但大数据得io下,表几乎没法更大了。目前技术栈:为什么要用NoSQL?

2020-07-14 02:11:10 1472

原创 Zookeeper分布式协调

Zookeeper: 文件系统 + 通知机制。Zookeeper是一个开源分布式的,为分布式应用提供协调服务的Apache项目。从遍程设计角度来讲,是一个基于观察者模式设计的分布式服务管理。它是负责存储和管理大家关系的数据,然后根据观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经再Zookeeper上注册的那些观察者都做出相应的反应。安装要求:1、安装JDK2、安装Zookeeper安装:1、 java -version 返现虚拟机已有安装。2、a.下载wge

2020-07-13 23:43:59 199

原创 视频总结----java锁、分布式锁

锁集合(这个图要记住的):悲观锁:悲观锁人为自己在使用数据的时候一定会有别的线程来修改数据,在获取数据的时候先加锁,确保数据不会被别的线程修改。锁实现:关键字synchronized、接口Lock实现类。适用场景:写操作较多、先加锁保证数据的正确性。悲观锁执行过程:乐观锁:乐观锁则是相反,认为自己使用数据的时候不会有别的线程来修改数据,所以不需要加锁,只是在更新数据的时候去半段之前有没有别的线程更新这个数据。锁实现:CAS算法,例如AtomicInteger类的原子自增是通过CAS自旋

2020-07-12 01:21:15 129

原创 将二叉搜索树变平衡(letcode)

将二叉搜索树变平衡给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。如果有多种构造方法,请你返回任意一种。示例:输入:root = [1,null,2,null,3,null,4,null,null]输出:[2,1,3,null,null,null,4]解释:这不是唯一的正确答案,[3,1,4,null,2,null,null] 也是一个可行的构.

2020-07-09 00:41:02 158

原创 合并二叉树(letcode)

合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入: Tree 1 Tree 2 1 2 .

2020-07-07 22:05:44 97

原创 二叉树深度相关算法 + 平衡树判断(letcode)

二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣网络.

2020-07-07 21:59:22 106

原创 mybatis回忆总结

一切请查看 mybatis官网mybatis回忆总结:1、select查询。resultMap指定多个id绑定即可。里面值得注意的点:1、collection操作2、assoction操作3、include sql操作 定义: sql语句 使用举例说明:<resultMap type="com.entity.BusiFeeData" id="busiFeeData"> <result property="busiId" column="busiId"/&

2020-07-07 21:42:46 145

原创 String解析(JDK8)

public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash;

2020-07-04 03:09:14 316

原创 验证二叉搜索树

验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6 输出: false解释: 输入为: [5,1,4,null,null,3,6]。 .

2020-07-03 00:22:10 75

原创 最长公共子串和最长公共子序列

给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码典型的动态规划题目:class Sol

2020-07-01 22:49:22 103

原创 letcode 超级计算器

letcode 16.26. 计算器。给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,*,/ ,(,)四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。分析一个复杂的过程:// 超级

2020-07-01 21:51:39 222

原创 letcode 24点游戏

24 点游戏你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[1, 1, 1, 1] 作为输入时.

2020-06-29 01:33:03 105

原创 Letcode多线程题目

class Foo { private CountDownLatch second = new CountDownLatch(1); private CountDownLatch third = new CountDownLatch(1); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { //

2020-06-26 15:08:06 122

原创 Remove Duplicate Node LCCI

Write code to remove duplicates from an unsorted linked list.Example1: Input: [1, 2, 3, 3, 2, 1] Output: [1, 2, 3]Example2: Input: [1, 1, 1, 1, 2] Output: [1, 2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicate-node-lcci著作权归领扣网

2020-06-26 02:24:57 167

原创 JVM再理解 + 调优。

在这边看这篇之前,需要去看:类的加载类加载器虚拟机内存结构以上的都要了解。最近看了一个视频。讲的挺好的。决定跟着它的节奏再来一遍。详细细节,参考上面。另外以下的图都是来自百度和视频截图。我们只说结论。最后我详细说说如何调优。为什么要写这篇。硬背总是不得要领。而且时常和别人聊起时混乱了。这里提出“想说话,先画图”,脑子里也好、动手画也好。所以以下的图都要记住并能画出。类加载的图:(这个就是上面链接1中的过程总结)分析虚拟机内存结构就必须了解类的加载过程。上图就是。1、类加载、连接(验证、

2020-06-26 01:09:31 218

原创 JS变量push进去数组或给其他结构误解。

对js理解陷入了误区。场景问题:今天同事问了我个问题,将一个变量改变,再放入一个数组中,发现后面的将前面的覆盖。<!DOCTYPE html><html><body><script>var obj = { "name":"Bill Gates", "age":62, "cars": { "car1":"Porsche", "car2":"BMW", "car3":"Volvo" }};var car

2020-06-18 00:14:52 507

原创 Java集合源码解析(易于理解版)

前文:首先你要耐心,最好有一定源码基础,没有也行下面也会教你怎么有效阅读源码。其次为什么先讲List。因为建立再这个基础上去理解其他的东西,事半功倍。原文件:正文:JAVA集合实现原理及其优化。背景介绍:这是基于jdk1.8分析的,主要是对java集合的实现源码分析。Java集合框架:注:上图参考百度结果。除了上面的集合类型。我们还会将Stack(栈)、Node(树)、Quene(队列)、HashTable的源码实现和优化点。1 List集合该接口: public interfa

2020-06-15 01:25:27 387 2

原创 Spring容器创建时refresh()方法源码分析

入口:import com.stu.config.RecyleLifeBean;import org.junit.Test;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Main { @Test public void testComponnet1() { // 创建IOC容器 AnnotationConfig

2020-06-06 20:15:54 191

JAVA集合实现原理及其优化.wps

JAVA集合实现原理的大集合。一个文档解决所有。从源码的角度分析为什么可以,为什么是这样。

2020-06-15

shiro.xlsx

笔记shiro理解 q

2019-08-19

activit7.xlsx

activiti7的详细介绍,帮助自己记忆 的

2019-08-12

空空如也

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

TA关注的人

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