自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 javer转go入门笔记-结构体与指针

本文介绍了go语言中结构体和指针部分的内容,同时介绍了数组指针和结构体指针的隐式转换、数组指针和指针数组等问题。

2022-04-20 14:52:59 222

原创 javer转go入门笔记-字符串

本文介绍了Go语言中字符串的特点,与java中的string进行了对比,最后介绍了Go中String与其他基本类型常用的相互转换方式。

2022-04-18 20:45:17 203

原创 javer转go入门笔记-数组与切片

本文介绍了Go语言中数组的特点、定义方式与使用注意事项,然后介绍了其引申内容《切片》的内容,同时也分析了Go中的数组和切片与C、Java中数组的不同。

2022-04-18 19:42:35 484

原创 javer转go入门笔记-Go的声明语法思想与规则

本文参考了go语言官方文档,对比了C声明语法的不足,解释了go语言声明语法的特点及其规则。

2022-04-14 20:26:06 1018

原创 javer转go入门笔记-工程构成与编译运行

对比了java和golang中package的用法,并比较说明了golang和java编译运行的指令及其区别。

2022-02-24 14:52:18 312

原创 React HOC高阶组件学习笔记

React HOC是什么?React HOC — Higher Order Component ,又叫React 的高阶组件,它通常用一个函数来实现,这个函数接受一个 Component 并输出另一个 Component ,类似于 Java 的代理模式,用组合或者其它的方式去实现一些对象的装饰器或拦截器。总结来说React HOC本质上就是一个函数,这个函数接收了一个组件old,然后会返回一个新的组件new供你使用,这个新的组件是在old组件的基础上构建起来的,因此在old组件的功能上实现了一些扩展,但是

2021-07-23 16:55:16 114

原创 rocketmq学习及其内部实现原理

什么是rocketmqmq: message queue,中文翻译为消息队列,是一种为两个或多个不同分布式系统间提供的异步的消息传递的中间件,常用于大数据量下的应用解耦、流量削峰、数据分发等场景。而RocketMQ是阿里巴巴2016年开源的一款MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。rocketmq的组织构架在rocketmq中总共存在着4个角色,分别是生产消息的生产者provider、消费消息的消费者cons

2021-07-18 11:33:36 380

原创 如何实现一个精简版的redux-saga

实现一个精简的redux-saga主要包括三个部分,首先是通过createSagaMiddelware创建saga中间件sagaMiddelware,第二是sagaMiddelware中实现一个run函数用于绑定要运行的生成器函数,最后是实现副作用函数。​1、createSagaMiddelware中间件创建函数在createSagaMiddelware中会返回一个sagaMiddelware中间件,sagaMiddelware中间件会作为输入参数于redux中间件接口绑定,中间件返回一个函数,函数的输

2021-07-18 11:26:15 106

原创 redux-saga学习笔记

redux-saga是什么?在redux的学习中,我们知道,redux中的reducer函数一定是一个纯函数,即该函数不随全局改变,也不改变全局状态。然后当redux需要处理一些带有副作用的异步任务时,redux采用中间件改造 dispatch ,从而诞生了一批通过构造满足特殊 pattern 条件的 action 来解决副作用的问题。而redux-saga是另一种非常强大处理副作用的工具。它提供了对异步流程更细粒度的控制,对每个异步流程他可以实现暂停、停止、启动三种状态。此外redux-saga利用了g

2021-07-18 11:25:18 175

原创 如何实现一个精简版的redux

实现功能在上一节的React学习案例中,引用了redux库中的CreateStore函数和combineReducers函数,用于创建Store容器和组合多个Reducer。import { combineReducers } from 'redux';import { createStore } from 'redux';现在的工作就是实现一个精简版的redux来替代这两个函数也能正常工作import { createStore,combineReducers } from './action

2021-07-18 11:24:24 137

原创 redux学习笔记

redux是什么?Redux是一个流行的JavaScript框架,为应用程序提供一个可预测的状态容器,类似于vue中的vuex,通常配合React共同使用。Redux基于简化版本的Flux框架,Flux是Facebook开发的一个框架。在标准的MVC框架中,数据可以在UI组件和存储之间双向流动,而Redux严格限制了数据只能在一个方向上流动。 Redux整体框架图如下:什么时候需要使用Redux?React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案。在react中的数据由pro

2021-07-18 11:23:19 123

原创 如何实现一个精简版的key-center-starter

一、说明该starter在被项目依赖后会在Springboot启动之初自动完成加密属性的解密并将解密后的内容替换到springboot配置容器中。加密的属性在以固定的格式开头,例如:key = encryptionencryptionencryptionabcdefg可以在配置文件中指定自定义的解密类的全限定名,调用格式如下:decrypt.class = com.zxl.decrypt.noOpDecrypt使用方式:直接依赖启动即可​二、starter创建过程1、在IDEA中建立一个空

2021-07-18 11:16:08 503

原创 基于tair的分布式锁实现原理

分布式锁概述分布式锁的实现主要分为三种方式:1、基于Mysql的行锁实现优点:实现简单,不需要额外的中间件来协助实现缺点:增大了数据库的读写压力可能增大数据库的死锁的产生。例如:如果琐是数据库中的行A,然后甲获得A的锁后执行操作,然后请求资源B,而乙当前正持有B的资源却在请求分布式锁A,那么引起死锁。2、基于Zookeeper的实现(可以设计为公平锁、也可以设计为非公平锁)基本原理其实是基于Zookeeper的强一致性和顺序一致性特点,实现方式如下:在Zookeeper中建立一个路径r

2021-07-18 11:08:10 1160

原创 ClassLoader和UrlClassLoader源码分析

1、一切的基类:ClassLoader在java中存在4种类加载器,分别是启动类加载器、扩展类加载器、系统类加载器和自定义加载器,而AppClassLoader就是其中的系统类加载器。AppClassLoader系统类加载器中包含一个parent指针指向扩展类加载器ExtClassLoader,ExtClassLoader中的parent指针指向为空,因为其上一层为启动类加载器,启动类加载器是用C++写的,因此在java中没有启动类加载器。在我们一般代码中默认的类加载器就是系统类加载器AppClassLo

2021-07-18 11:06:54 603

原创 React HOC高阶组件及其实现原理

React HOC是什么?React HOC — Higher Order Component ,又叫React 的高阶组件,它通常用一个函数来实现,这个函数接受一个 Component 并输出另一个 Component ,类似于 Java 的代理模式,用组合或者其它的方式去实现一些对象的装饰器或拦截器。总结来说React HOC本质上就是一个函数,这个函数接收了一个组件old,然后会返回一个新的组件new供你使用,这个新的组件是在old组件的基础上构建起来的,因此在old组件的功能上实现了一些扩展,但是

2021-07-18 11:05:46 877

原创 react学习笔记

本文记录了自己学习react后对react核心思想的一些理解​背景React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。React 不是一个 MVC 框架,仅仅是视图(V)层的一个用来构建UI的 JavaScript库。React的特点是:使用 JSX语法 创建组件,实现组件化开发,为函数式的 UI 编程方式打开了大门性能高

2021-07-18 10:47:47 142 1

原创 深入理解:Java动态代理

动态代理是java中非常重要的一种技术,很多框架的底层实现都使用到了动态代理,例如dubbo、spring、jdbc的事务控制等,因此掌握动态代理的使用并深入理解是非常必要的。动态代理,顾名思义,来自于Java设计模式中的代理模式:代理模式:给某一个对象提供一个代理,并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。代理模式的结构比较简单,其核心是代理类,为了让客户端能够一致性地对待真实对象和代理对象,在代理模式中引入了抽象层。代理模式根据字节码文件的创建时机可以分为静态代理和动

2021-05-10 15:40:09 134

原创 一种新的思路:如何判断环形链表(leetcode 141)

ps:本文是笔者在刷leetcode第141题环形链表时想到的一种新的解题思路,与大家进行分享:首先看题:给定一个链表,判断链表中是否有环。进阶:你能用 O(1)(即,常量)内存解决此问题吗?1、hash遍历:这个题刚一看到最容易想到的就是hash表的方法,遍历所有节点,每次遍历到一个节点时,判断该节点此前是否被访问过。具体地,使用哈希表来存储所有已经访问过的节点。每次我们到达一个节点,如果该节点已经存在于哈希表中,则说明该链表是环形链表,否则就将该节点加入哈希表中。重复这一过程,直到我们

2021-05-07 12:10:01 85

原创 二叉树的非递归前序、中序、后序遍历

ps:看完这篇文章你将掌握二叉树的非递归前序遍历、中序遍历和后续遍历,以及它们在leetcode上一些题如#94,#538,#938等题的应用一、前序遍历首先说前序遍历,要了解前序遍历的非递归写法,首先要弄明白前序遍历的遍历策略。考虑一种最简单的二叉树模型,模型中包括了根节点,左子树和右子树,在前序遍历中,对于这样一颗二叉树,前序遍历的意思就是一定是以Root节点、左子树、右子树的顺序一次遍历各个节点,当遍历左子树时左子树又可以看作另一颗二叉树,因此这是一种典型递归的思想。注意到上述遍历过程中,遍历

2021-04-27 15:10:46 660

原创 leetcode 2021.4.26 每日一坑:在 D 天内送达包裹的能力

今天时间为2021.4.26,习俗性打开leetcode每日一题,先给出该题题目:标题:1011. 在 D 天内送达包裹的能力传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例1:...

2021-04-26 23:12:26 165

原创 自然底数e究竟“自然”在哪?

在上一篇文章《欧拉公式及其推导》中我们介绍了欧拉公式的来源、意义及其公式推导,在其中涉及到了自然底数的相关知识。在数学中,我们将自然底数记作e,其值为无穷项数的叠加和,是一个无理数,的数学表达式为ex=lim⁡x→∞(1+xn)ne^{x}=\lim _{x \rightarrow \infty}\left(1+\frac{x}{n}\right)^{n}ex=x→∞lim​(1+nx​)n将x代为1后我们得到了自然底数e的数学表达式e=lim⁡x→∞(1+1n)n=2.7182818⋯e=\lim _{x

2021-04-25 14:59:42 483

原创 欧拉公式及其推导

在上一篇文章《虚数i与欧拉公式》中我介绍了虚数i的实际意义以及它在本人课题上的一些应用,同时在文章的结尾简单介绍并使用了欧拉公式进行了分数阶微积分的实际验证。在这一篇文章中我们将详细介绍欧拉公式及其推导。首先先给出欧拉公式:eix=cos(x)+isin(x)e^{ix}=cos(x)+isin(x)eix=cos(x)+isin(x)将实数作为横轴,虚数作为纵轴,欧拉公式用在复平面表示如下:而当此时的x取圆周率Π时可以得到欧拉恒等式:eiπ+1=0e^{i\pi}+1=0eiπ+1=0欧拉恒等式被誉

2021-04-25 14:53:45 26771 2

原创 用虚数i与欧拉公式来解释分数阶微积分

一、问题简介在最近的课题中接触到了分数阶导数相关的东西,比如函数f(t)f(t)f(t)对t的0.5阶导等等,网上有一些对于分数阶导数的处理办法是将其放到频域中进行处理,根据大学《自动控制原理》等课程我们可以知道,通过拉氏变换我们可以将微积分运算变为代数运算,对一个输入信号进行一阶微分就是乘以s,一阶积分就是乘以1/s,因此对于0.5阶的微分运算可以看作s0.5,因此分数阶微积分运算可以看作是一个传递函数,通过整数阶的以s为自变量的方程可以逼近s的分数阶方程,现在通过这种逼近模型得到了s0.5和s^0.3

2021-04-25 14:42:01 3042 1

原创 深入浅出理解卷积运算

提起卷积运算相信大家都不陌生,这是一种很常见的运算。我们在学习《信号与系统》时就一直在和卷积打交道,在后来的一些课程中也有卷积运算的身影,比如《自动控制原理现代部分》中的卷积定理等。在学习《信号与系统》时我们知道了卷积的定义,对于两个函数f(x)f(x)f(x)和 g(x)g(x)g(x),他们的卷积 f∗g(n)f*g(n)f∗g(n) 的公式如下:连续形式:f∗ g(n)=∫−∞+∞f(τ)∗g(n−τ)dτ\mathrm{f} * \mathrm{~g}(n)=\int_{-\infty

2021-04-25 11:23:16 4243

原创 java继承体系下的类加载顺序与过程详解

我们知道,java是一种单继承语言,那么,在继承结构下类的加载顺序是怎么样的呢?本文详细介绍了继承体系下类的加载顺序与过程详解。首先,根据java的JVM虚拟机类加载机制,一个类在使用时如果引用或使用了另一个尚未加载的类,此时JVM首先会加载被引用的那个类。然后,假设类Son继承类Father时,我们通过三种情况来考虑在继承关系下JVM的类加载顺序如何:假设当前有两个类,第一个是父类Father,Father中有静态变量j、静态代码块、构造器、成员变量、成员代码块等,代码如下:class Father

2021-04-20 17:39:28 590

原创 static、静态内部类、匿名内部类的关系与区别

static是java中常用的一个关键字,本文总结了static关键字修饰的方法、成员变量、类等的特点。并介绍了static与静态内部类的关系、静态内部类和匿名内部类的区别一、static关键字static关键子可以修饰方法、成员变量、和类,分别对应:静态方法:静态方法不依赖于任何对象就可以进行访问,对于静态方法来说,是没有this的。由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法。静态变量:静态变量是类的属性,被所有对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会

2021-04-20 17:34:36 546

原创 Java Socket网络编程深入理解:OS->BIO->NIO->Netty

Socket编程深入理解:OS->BIO->NIO->Netty有兴趣的同学强烈推荐这个视频教程:https://link.zhihu.com/?target=https%3A//links.jianshu.com/go%3Fto%3Dhttps%253A%252F%252Fwww.bilibili.com%252Fvideo%252FBV1RV411r72B%253Fp%253D1一、操作系统基本知识上图是一个基本的计算机基本工作图,注意下列几点:计算机主要有处理器和内存两个

2021-04-20 16:22:52 394 4

空空如也

空空如也

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

TA关注的人

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