自定义博客皮肤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)
  • 收藏
  • 关注

原创 Spring State Machine

Spring 状态机初探一. spring statemachine1. 枚举定义public enum OrderStatus { WAIT_PAYMENT, // 等待支付 WAIT_RECEIVE, // 等待收货 FINISH // 完成}public enum OrderEvent { PAY, // 支付 RECEIVE // 收货}2. 添加配置StateMachineConfigurerAdapter

2021-01-28 14:23:50 499

原创 React 系列之基础四(webpack)

React 系列之基础四1. 正确使用 HooksReact 提供了 10 中不同的内置 Hook, 其中最受欢迎的是我们已经广泛使用的 useState 和 useEffect Hook.在使用 react-redux 库中的 useSelector 和 useDispatch Hook 来共享我们对组件的 redux-store 和 dispatch 函数.React-router api 部分也基于 hook. 它的 Hook 可以用来访问 url 参数 和 历史对象.Hook 不是正常的函

2020-09-14 18:00:22 237

原创 React 系列之基础三(路由篇)

React 系列之基础三React 路由React 路由帮组我们根据浏览器地址栏的 URL 将应用划分到不同的视图.1. React-router1. 快速开始npm install --save react-router-dom使用简单示例:import { BrowserRouter as Router, Switch, Route, Link} from "react-router-dom"const App = () => { const padding =

2020-09-14 15:50:20 222

原创 React 系列之基础二(状态管理)

React 系列之基础二1.Flux 架构与 Redux在 Flux 中, 状态完全从 React-components 分离到自己的存储中. 存储中的状态不会直接更改, 而是使用不同的 actions 进行更改.当一个操作改变了存储的状态时, 视图会被重新渲染使用以下命令安装 reduxnpm install redux --save Action 对 应用程序的影响是通过使用一个 reducer 来定义的. 实际上, reducer 是一个函数, 它以当前状态state和action为

2020-09-11 23:26:43 321

原创 React 系列 之基础一(组件篇)

React 简介组件篇1.组件定义React 组件名称开头字母必须大写.const Hello = () => { return ( <div> <p>Hello world</p> </div> )}const App = () => { return ( <div> <h1>Greetings</h1> <Hello

2020-09-10 17:17:25 382

原创 Go 入门系列之基础篇一

Go 入门系列基础篇一1. 包的使用package mainimport "fmt"func main() { //...}go run 只能运行 main 包下有 main 函数的 go 文件包名和文件夹名称没有直接关系, 但是同一个文件夹下只能有唯一的一个包名2. 行分隔符在 Go 中, 一行代表一个语句结束! 无需 ; 结尾.如果执意要写多个语句在一行, 需要;分隔.3. 注释注释不会被编译. 和 Java 类似, 也有 单行编译和多行编译.// 单行注释/*

2020-09-07 22:22:55 134

原创 Go 入门系列之基础篇二

Go 入门系列基础篇二1. 函数函数是 Go 的中心. (在其他一些语言中函数也是重中之重)package mainimport "fmt"func main() { // 调用 add 函数 res := add(3, 5) fmt.Println("3+5=", res) // 调用 add 函数, 使用 vals 函数的两个返回值作为参数 fmt.Println("===", add(vals())) // 忽略第一个返回的参数 _,

2020-09-07 22:22:45 314

原创 MVCC理解

innodb 通过B+树作为索引的数据结构,而主键所在的索引又称为聚蔟索引。聚簇索引是指索引和数据存放在同一个结构中。其他的索引这是 索引中的叶子节点存放的是聚蔟索引叶子节点的键值。所以二级索引维护变的方便.在Innodb主键索引结构叶子节点中, 除了RowId外, 还有trx_id : 表示最近修改的事务id.db_roll_ptr:undo segment中undo l...

2019-08-11 19:22:32 262

原创 java socket 配置项

socket关闭在使用socket通信时, 如果服务端关闭socket, 客户端会继续发送完毕数据, 但是服务端接受数据时抛出socket已经关闭的异常. 在socket通信时, 如果客户端没有关闭socket, 客户端直接退出, 服务端会抛出Connection reset异常. 在socket通信时, 如果客户端关闭socket,或者输出流, 这时处于半关闭状态, 服务端接受到EOF。...

2019-05-27 22:34:52 945

原创 shiro笔记

# 1.在 shiro 中的概念 #用户需要提供 principals (身份)和 credentials(证明)给 shiro,从而应用能验证用户身份Subject 及 Realm,分别是主体及验证主体的数据源认证[身份验证]: 验证在应用中是否是他本人.授权[访问控制]: 控制谁能访问哪些资源主体, 即访问应用的用户,Subject资源, 在应用中用户可以访问的任何东西,用...

2019-05-20 06:20:30 235

原创 二叉树遍历

morris遍历二叉树, 做到消耗空间为o(1):思路: 当前结点cur[1] 如果当前结点没有左孩子, cur = cur -> right;[2] 如果当前结点有左孩子, 找到左子树的最右结点 mostRight, 如果 [2.1] mostRight.right == cur, 这表示当前是第二次访问cur结点, 表示cur的左子树全部遍历完毕. 接着...

2019-03-24 07:56:10 149

原创 对BFPRT算法理解

对于求一个数组中第k小的数, 可以用快速排序的中间过程解决, 例如 找到的基准数的位置>k, 这时候就只需要对于前半部分再进行行 一次这个中间过程.直到找到 第K个数.然而问题是,快速排序的基准数如果选的不好,范围就缩小不了1/2甚至还没有, 时间复杂度可能会到o(n^2).所以 关于 选择基准数 可以不随机选,而是通过如下步骤:[1] 将数组每5个分成一组, 可能最后一组不足5...

2019-03-23 09:01:32 221

原创 最长回文子串

不同于最长回文子序列, 它可以用动态规划来求解, 但是最长回文子串要求的子字符串在原字节数组中是连续的.【1】暴力求解例如,对于任何长度的字符串, aabaa, 在每一个字符的后加上一个特殊字符, 比如 a# a# b# a# a#, 这样就变成了偶数个,能够处理无法扩充的问题.a # a # b # a # a #1 3...

2019-03-22 22:11:16 128

原创 字符串匹配(KMP)

字符串匹配问题,求匹配串中模式串的位置.【1】暴力搜索, 每次匹配的过程假如匹配失败则 重新从模式串的开头位置和被匹配串的下一个位置开始匹配, 因为每个过程都是独立的,所以效率不高.【2】KMP算法, 问题是由模式串引起的,因为从被匹配串找到模式串, 一次字符比对过程可以帮助下一次匹配.2.1 最长的 前缀和后缀假如有 abcabcd 字符串, d字符前面有"abcabc"...

2019-03-22 16:25:33 152

原创 Nagle算法

其实这是一种延迟发送的机制, 用来提高网络利用率. TCP协议以段为单位传送数据, TCP协议通过拥塞窗口进行流控制, 由于接收端处理数据的能力可能有限, 接收端来不及处理发送段传递过来的数据, 接收端在ACK报文里设置自己下一次能接受的大小. 如果此时网络不好的话, 发送端以这个窗口大小为上限进行发送, 可能会加剧网络的拥堵. 因此提出Nagle算法,这个算法在下面满足1.发送的所有数据有些还没...

2019-03-08 16:02:28 147

原创 HTML5 服务器发送事件 SSE

Server-Sent 事件指的是网页自动获取服务器的更新.$("#button").click(function(){ var source=new EventSource("http://localhost:22222"); source.onmessage=function(event) { alert(event.data); };})此时客户端可以接受服务端...

2019-03-07 14:42:31 210

原创 JSONP详解

问题:ajax请求普通文件存在跨域无权限访问的问题,只要跨域,一律不准.但是我们发现, web页面调用js文件则不受是否跨域的影响, 不仅如此, 只要是src属性都拥有跨域的能力.而恰巧 有一种叫JSON的数据格式不仅可以简洁表示数据, 还被js原生支持. 那么我们就自然就想通过json 传输跨域数据.解决:服务端动态生成载入数据的js文件供客户端调用. 显而易见, 这份文件的内容...

2019-03-03 20:52:48 188

原创 Bloom Filter

它是一种二进制向量数据结构,用于判断一个元素 是否在集合中(判断某一个元素不在集合中有100%把握,判断元素在集合中 有一定的错误)。原理:使用哈希函数将某一个元素映射到数组上,并不像HasMap存储对应元素,而是存储0/1 状态位。当有大量元素时很大的几率发生哈希冲突,因此可能影响它判断一个元素在集合中。比如有一个元素实际上不在集合中,但是标志位可能由于哈希冲突置为1导致判断出错。解决方案:...

2019-03-03 20:50:55 166

原创 线性时间排序之基数排序和计数排序的应用

计数排序假设n个输入元素中的每一个都是在0到k区间内的一个整数,其中k为某个整数,当k=O(n)时,排序的运行时间为O(n);计数排序的基本思想是:对每一个输入元素,确定小于x的元素个数为y和自身的个数z,那么最后一个x就应该在y+z上.这种排序所需要O(n)的空间,但它是稳定的,且为O(n)基数排序基数排序 是先按最低有效位进行排序,接着以次高有效位进行排序,重复这一过程,直...

2018-12-23 18:55:47 322 1

原创 最大子数组问题

假设有一个n长度的数组, 求数组中最大的非空子数组.即子数组各个元素相加之和最大思路1使用分治策略求解, 找到数组的中间位置mid, 定义两边位置为left, right;在A[left, right] 中 要求解的子数组必然是以下三种情况之一:1.最大连续子数组在 A[left, mid] 的子数组中2.最大连续子数组在 A[mid+1, right] 的子数组中3.最大...

2018-09-22 17:25:59 1109 1

原创 数据流图

数据流图基本符号DFD( data flow diagram)数据流图设计原则自外向内, 自顶向下, 逐层细化, 完善求精保持父图与子图的平衡保持数据守恒加工细节隐藏简化加工间的关系均匀分解适当地为数据流, 加工, 文件, 源 命名,名字应有实际意义忽略枝节表现的是数据流而不是控制流数据字典数据项条目:数据单项的定义, 类型, 取...

2018-09-16 14:44:49 13388 2

原创 Scramble String

 package com.u6;/*leetcode题目: Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.Below is one possible representation of s1 = "g...

2018-09-11 20:21:53 819

原创 Maven笔记

Maven是什么Maven是一款服务于Java平台的自动化构建工具Make-&gt;Ant-&gt;Maven-&gt;Gradle         (妹文, 麦文)构建 [1]概念:以 “java源文件”,”框架配置文件”,”jsp”,”HTML”,”图片” 等资源为”原材料” 去 “生产” 一个可以运行的项目的过程.                       ...

2018-09-10 16:49:37 898

原创 JVM总结

jvmjava内存区域程序计数器Program Counter Register一块很小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器,每个线程都有一个独立的程序计数器tips:如果正在执行一个Java方法,这个计数器的值为正在执行的虚拟机字节码指令的地址,如果正在执行的是Native方法,这个计数器的值为空。本地方法栈和虚拟机栈发挥的作用相同,虚拟机运...

2018-09-10 16:48:35 1047

原创 Hibernate 总结

HibernateHibernate是什么?Hibernate是一个框架(framework) Hibernate是一个orm框架 Orm(object relation mapping)对象关系映射 框架 Hibernate处于项目的持久层,正因为如此,所以有人又把hibernate称为持久层框架 hibernate实际上是对jdbc轻量级的封装总结:hibernate是对jd...

2018-09-10 16:42:31 4378

原创 设计模式总结

策略模式策略模式是定义一系列算法的方法,算法完成的都是相同的工作,只是具体的实现不同,它可以由相同的方法调用所有的算法,减少了各种算法和使用算法之间的耦合.tips: Context类可以和工厂模式结合单一设计原则就一个类而言,应该仅有一个引起它变化的原因[ASD].如果一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责变化可能会削弱或者抑制这个类完成其他职责的能...

2018-09-10 16:37:58 829

原创 java ee 笔记

=============JSP=============== cookies生存期限就到你关闭浏览器为止       cookies 在tomcat 关闭会清除,reload也会清除session默认是20分钟流程:启动tomcat 客户端浏览器发请求 tomcat在webapp或者虚目录下找到项目,再找到请求的jsp 第一次:将jsp 变成 .java, .jav...

2018-09-10 16:22:01 1646

空空如也

空空如也

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

TA关注的人

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