自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洛丹伦的夏天

好的技术文章源于文档、书籍、源码和实践,富有感染力的表达来自生活阅历 —— 热爱学习,热爱生活。

  • 博客(96)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 技术世界的无涯学海

专注基础技术、贯注工作实践、关注学术方向工作日节假日{1,}讲{5,}讲《趣谈网络协议》《Kafka核心技术与实战》

2021-04-25 13:28:58 1293 1

原创 深入MySQL(二)—— 深入理解binlog event 与解析原理

事件结构的某些细节在所有versions中是不变的, 其他取决于版本。在任何给定版本中,不同类型的事件在 event data 部分的结构中都不同。除 first event 外,event data 由 fixed part 与 variable part 两部分组成,fixed part 由 event type 决定, variable part 取决于event记录的内容。

2020-08-24 20:17:22 1181 1

原创 深入理解分布式(一) —— 一张图理解Paxos算法

从P1到P2c其实是一系列条件的逐步增强,我们要<br>证明这些条件可以满足一致性,就要进行反向推导:P2c => P2b => P2a => P2然后通过P2和P1来满足一致性。实际上P2c规定了Proposer产生提案的方式,当每个Proposer按照这个规则产生提案时,就能满足P2b了。

2020-08-24 00:58:26 450

原创 深入MySQL(一)—— 深入理解binlog

binlog是一组日志文件,包含了对一个MySQL服务实例的数据修改信息。日志文件包括 一组binary log 文件(默认是HOSTNAME-bin.NNNNNN),再加上一个 index 文件(默认HOSTNAME.index,index文件是一个包含了当前binary log文件名列表的文本文件)。每个日志文件的开头包含一个4byte的魔数,紧随其后的是描述数据修改的一系列events魔数字节是 0xfe 0x62 0x69 0x6e = “þbin”每个 Event 包含 header字节

2020-08-23 23:35:37 690

原创 从王者荣耀与女朋友,看懂“并发”与“上下文切换”

**并发** 只是 **逻辑上的并行** ,充分利用时间碎片去处理多件事 —— 比如,你一边打王者荣耀一边和女朋友聊天,只有在 **死亡** 或 **回城** 时间你才可能会 **切出去** 回复一下女友的消息。对于你的女友,她觉得你一直在和她聊天;对于你的队友,他们觉得你一直在和他们一起打游戏。也就是说,表面上看起来像是同时发生的,而这个切出去切回来的过程,就是 **上下文切换**

2020-06-13 13:20:59 737

原创 笔记(2)—— 面试官:不以第一个元素为基准的快速排序,你会写吗?

所以你需要记住快速排序的总过程1. 选择基准,2.与第一元素交换,3.元素移动。记住快速排序如果你对 快速排序 ,已经很理解了,笔者相信 理解记忆 能帮助你很好的记住它,但是 如何快速的记住快速排序? ,你可以尝试下面这种方式我们知道 快速排序 有...

2020-05-04 21:34:34 3174 1

原创 笔记(1)—— 十分钟搞定时间复杂度

如何理解时间复杂度中的:logn log_a{n}$就是表示多少个$a$相乘等于$n$。 此时,log{n}就是表示多少个$2$相乘等于$n$, 对数时间复杂度,在 二分查找 , 快速排序 , 跳跃表 , 归并排序 等常用算法都有涉及。如果,你还是不好理解,不妨再拆一步得了 —— log{n}就是表示$n$一直除以$2$能除多少次,也就是算法中或代码中, 将$n$个数,每次分两种情况讨论,能分多少次。

2020-04-26 13:20:40 457 1

原创 学习心得 —— 学会收藏

^doc    在学习和工作过程中或多或少会收藏一些内容以使学习或工作更高效,于是我们习惯了收藏,但是习惯收藏并不意味着会收藏。    好的收藏方式,往往可以带来事半功倍的效果。在收藏时对内容进行很好的归档,在使用时能大大提高效率,所谓工欲善其事必先利其器就是这个道理。工具

2020-04-05 13:11:57 278

原创 开源工具 — 集成了API测试同时基于注释的文档生成工具smalldoc-2.4发布!

更强大的参数配置语法,使接口文档展示更人性化`增强`;增加了基于包的完全限定名或package-info中的注释信息选择文档的菜单栏功能`增强`;对UNIX系统做了兼容,例如Mac OS(为此,作者专门买了本Mac ????)`增强`;增加了参数示例值推断;集成了API测试功能;可配置的类名支持正则匹配;优化了返回参数实体内集合字段的展示效果;可生成离线文档

2020-04-03 11:02:55 395

原创 开源工具 — 解决Java开发中使用POI读写Excel时面对的两个麻烦

目录麻烦1解决方法封装条件封装方式反射反射+注解匿名内部类—— 作为监听函数函数接口(Lambda)—— 作为监听函数麻烦2解决方法原理开源解决方案概念基础Apache POIEventModel函数编程快速使用GridExcel.java流式API无实体类读写Excel麻烦1仅使用简单的导入导出功能,但每次业务的数据对象结构不同,需要重新编写处理方法,很麻烦!解决方法将Excel读写逻...

2020-03-06 16:46:57 433

原创 解决方案(一)— Ant-design Table组件当滚动列的行高变化时,固定列的行高不会同步变化,或固定列变化滚动列不变,造成布局破坏。

Ant-design Table组件当滚动列的行高变化时,固定列的行高不会同步变化,或固定列变化滚动列不变,造成布局破坏。本来以为是文档没有看仔细,想寻求官方的配置方式来解决该问题。既然官方仍在`处理中`,在这里给出自己的解决方案,希望能够帮到其他同学。根据`产生原因`可分为两类- 滚动列发生变化,固定列不变,布局被破坏。- 固定列发生变化,滚动列和另一个固定列不变,布局被破坏。在组件更新(componentDidUpdate)时,获取`右固定容器发生变化的行tr`的真实高度(height),对`滚动容器

2020-01-14 20:21:41 4424

转载 安全(二)— 为什么使用 MD5 存储密码非常危险

转自公众号:真没什么逻辑为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。很多软件工程师都认为 MD5 是一种加密算法,然而这种观点其实是大错特错并且十分危险的,作为一个 1992 年第一...

2019-12-30 17:17:47 706

原创 安全(一)— 完全理解RSA加密算法

本质就是依赖于三个自然数:$n,e,d$,$n$ 和 $d$ 构成一个密钥,$n$ 和 $e$ 构成另一个密钥。对于$(n, d)$与$(n, e)$这两个密钥,无论用哪个密钥加密出来的密文都可以用另一个密钥解开, 所以不必强调哪个用于加密,哪个用于解密,只要把一个公布出去(称为公钥),另一个自己藏着(称为私钥)就行了。根据这种特性,通常,- 使用 **公钥加密** , **私钥解密** ,实现 **加密**。- 使用 **私钥加密** , **公钥解密** ,实现 **数字签名** 。

2019-12-18 14:33:32 990

原创 MyBatis Dynamic SQL(一)— 真正的Mybatis动态sql — MyBatis Dynamic SQL

目录现状MyBatis Dynamic SQL项目地址官方文档项目介绍作者Mybatis Generator简介特性目标快速使用现状MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱...

2019-12-06 15:41:24 5880

原创 开源工具 — 有了这款免费的开源作图工具,我放弃了Visio

大学有一门专业课叫《UML课程设计》,这门课带给我的最大收益就是学会使用 Visio 作图。当然它不限于UML图,比如流程图思维导图原型图UML网络拓扑图组织结构图等等但是比较棘手的是Visio 需要付费,或者花费很多精力去寻找破解版,这很不安全,而且它在运行时将会占用大量内存。国内出现了一些在线作图工具,无独有偶都是需要登录注册和付费的,或者一些其他方式,比如分享获得免...

2019-11-13 14:58:45 6175

原创 开源工具 — 极简Java文档工具smalldoc-2.3.1发布

很高兴 smalldoc 能够帮助 Java Web 开发人员解决文档书写的麻烦,将你们从 swagger 的繁琐注解中解救出来,也感谢使用者提出的 issues 帮助 smalldoc 变得更完善更便捷。采用注释的方式支持参数是否必须,支持List,Set,数组,和实体参数支持列表或分页接口返回值中List元素结构的解析项目地址:https://github.com/liuhuagui/smalldoc...

2019-10-26 19:43:18 1043

原创 Transaction之坑:Spring中配置Transaction与不配置有何区别

Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollback首先Spring中...

2019-10-18 15:40:44 3568 1

原创 开源工具 — 一个极简的Java RESTful API文档工具smalldoc

项目https://github.com/liuhuagui/smalldoc 一个基于Java标准注释的 RESTful API 文档工具为什么要造轮子?强迫症患者,接受不了Swagger的各式注解对代码的入侵造成的冗杂,更渴望清洁的代码;注解的使用需要一定的学习成本;随后尝试使用Apidoc,尽管Apidoc是基于注释生成文档,但是学习成本并没有降低,你需要学习额外的注释Tag...

2019-10-16 17:41:39 999

原创 开源工具 — GridExcel支持无实体类读写Excel文件

- 解析逻辑都直接定义在代码块里了,所以使用GridExcel不需要复杂的注解,没有额外的学习成本,更没有代码侵入。- 同理,GridExcel不需要对实体类进行注解,无代码侵入,同时也意味着对Excel的读写逻辑完全可以不需要实体类。

2019-08-12 16:31:44 1254

原创 开源工具 — Java8让Excel的读写变得更加简单高效

GridExcel是基于Java8函数式编程和POI EventModel实现的用于Excel简单读写的通用解决方案。

2019-08-06 09:58:34 2183 2

原创 React踩坑笔记 —— 差分算法(一)

目录概要document与React元素树JSX代码图示说明概要React提供了声明式的API,以至于我们不需要担心每次更新具体发生了什么更改。这使得我们开发应用变得很容易,但始终无法清楚React内部是如何实现的。本文解释了在**“差分算法”**中如何做出选择,使得组件更新,在足够快的高性能应用中仍然可以预测。document与React元素树JSX代码import React f......

2018-12-29 11:10:34 511

原创 React踩坑笔记 —— React中的Dom操作

在React中操作Dom有四种方式:通过非受控组件‘ref’;通过事件处理器event参数,获取eventTarget;通过原生JavaScriptDom选择器;通过Dom操作插件,例如Jquery;其中ref方式为React方式,其他方式都为React以外的方式;必须要明白:React不会知道React以外的方式对Dom做出的改变,它基于自己内部的表现来决定如何更...

2018-12-15 17:10:43 10948

原创 React踩坑笔记 —— React

Webpack提供了自己的导入方式require.include,但同时也支持commonjs规范或AMD规范的require语法,而Node.js使用的就是common.js,ES6的语法Import也会被Babel转化成commonjs格式或者是AMD格式。一句话理解react:事件\样式\选择器,只属于真实的DOM元素,Components最终被渲染成真实DOM。使用JSX语法的JS文...

2018-11-28 09:43:02 5838

原创 React踩坑笔记 —— 一个后端程序员的React进击之路

目录引言Web前端前端三座大山后端中的前端障碍为什么学习前端?为什么要学习React?正文1. CSS布局2. JavaScript ES63. Npm/Yarn4. 脚手架5. React教程6. Redux7. React-Redux8. React-Router9. Promise10. Fetch API11. React-Native12. Webpack引言Web前端本文讨论的...

2018-11-20 17:52:41 2877 1

原创 完全理解TCP/UDP、HTTP长连接、Websocket、SockJS/Socket.IO以及STOMP的区别和联系

想要实现点对点通讯,就要理解STOMP的不同操作,对应的Spring Websocket是如何工作的?-

2018-10-11 09:16:50 12270 4

原创 Nginx之坑:完全理解location中的index,配置网站初始页

目录目录完全理解index指令Nginx中文文档Nginx官方文档吐槽完全理解index指令该指令后面可以跟多个文件,用空格隔开;文件可以是相对路径也可以是绝对路径;文件可以使用变量$来命名;该指令拥有默认值,index index.html ,即,如果没有给出index,默认初始页为indexNginx中文文档index...

2018-08-22 16:13:44 90107 9

原创 Spring工程访问src/main/resources与src/main/webapp下静态资源的区别

由于高版本的Maven-Eclipse插件,IDE在项目编译的时候会默认将src/main/resources下的静态资源排除(Exluded),导致程序执行的时候,找不到静态资源,报告错误如下:java.io.FileNotFoundException: class path resource [xxx.properties] cannot be opened because it does...

2018-08-10 09:00:27 13405 1

原创 SpringBoot —— SpringBoot项目打成jar与war的区别

SpringBoot默认支持很多模板引擎,但是JSP只能够在War中使用,同时`mvc.view.prifix/suffix`必须主动配置给出,另外必须导入JSP的默认渲染servlet:`"org.apache.jasper.servlet.JspServlet"`,- 无论是Jar还是War都能够使用嵌套容器,`java -jar`来独立运行- 但只有war才能部署到外部容器中,且war中必须包含:`"src/main/webapp/WEB-INF/web.xml"`

2018-08-09 20:57:56 17205 7

原创 NIO之坑:完全理解NIO Selector

selected-key set 包含着一部分selectionKeys,其中的每个selectionKey所关联的channel在selection operation期间被检测出至少 准备好 了一个可以在兴趣集中匹配到的操作。这个集合可以通过调用selector.selectedKeys()方法返回。selected-key set 一定是 key set 的子集。

2018-07-20 15:19:55 5683 1

原创 Spring AOP之坑:完全搞清楚advice的执行顺序

要完全理解Spring AOP首先要理解AOP的核心概念和术语,这些术语并不是Spring指定的,而且很不幸,这些术语并不能直观理解,但是,如果Spring使用自己的术语,那将更加令人困惑。

2018-06-06 15:43:52 34829 15

原创 JVM之坑:深入理解Java解析和分派

1, 解析 解析是虚拟机将常量池内的符号引用替换为直接引用的过程。类的加载过程:加载,验证,准备,解析,初始化,使用,卸载。七个阶段顺序开始,交叉进行。 直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄。如果有了直接引用,那引用的目标必定已经在内存中存在。简单来讲,解析就是从字面符号到内存地址,从内存无关到内存有关的过程。 虚拟机规范之中并未规定解析阶段发生的具体时...

2018-05-22 11:07:45 1176

原创 HttpSession之坑:浏览器如何保证从cookie中解析并发送对应的sessionId到目标Url

文章的背景是:浏览器的Cookie未被禁用.我们知道,无论是session还是cookie都是在服务端创建的,只是cookie不同于session被保存在客户端。工作流程如下: 客户端第一次请求服务器,cookie中不存在与url相对应的sessionid。所以request headers 的cookie头里不包含sessionid的内容,甚至不包含cookie请求头;服务...

2018-05-18 16:07:01 5669 6

原创 分布式Session之坑:分布式Session的使用场景

一股脑儿的搞了半个月分布式session,一直误以为——所谓分布式session不过是多个project共享一处session这么简单,于是在Maven多模块的项目的基础上基于:Spring SessionSpring data redis集成了分布式Session功能。直到模块开发完成,进入测试阶段,我才意识到自己是多麽傻叉,根本没有搞懂技术的使用场景就闷头瞎搞。。。 分布...

2018-05-12 16:43:45 3897 2

原创 Redis之坑:Redis与MySQL中事务的区别

MySQL实现事务,是基于`UNDO/REDO日志`。Redis实现事务,是基于`COMMANDS队列`。

2018-04-13 11:28:21 7490

原创 Redis之坑:spring-data-redis中的Redis事务

Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollbackSessionCall...

2018-04-11 17:13:23 9024 3

原创 Redis之坑:理解Redis事务

Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollback相关命令 ...

2018-04-10 17:03:27 4593 3

原创 Transaction之坑:判断sql执行结果,主动促使事务rollback

Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollback有关事务回滚的其他问题...

2018-04-09 17:52:45 4248

翻译 为什么where条件中使用or索引不起作用?

为什么where条件中使用or索引不起作用?where条件中使用or,索引就会失效,会造成全表扫描    是误区一,要求使用的所有字段,都必须建立索引。二,数据量太少,制定执行计划时发现全表扫描比索引查找更快。三,确保mysql版本5.0以上,且查询优化器开启了index_merge_union=on, 也就是变量optimizer_switch里存在index_mer

2018-01-12 15:24:26 20854

原创 深入理解java方法调用时的参数传递

深入理解java方法调用与参数传递,解决以下问题:Java方法调用是如何传递参数的?被调用方法对调用方法内的变量有什么影响?java能使用返回值void的中间方法对变量进行加工吗?为什么静态成员变量的改变影响是全局的?同一个方法同时被多个线程调用线程安全吗?1,每个线程都有一个方法链,即虚拟机栈。虚拟机栈是线程私有的,是方法执行的内存模型,每个栈帧都对应一个执行方法。开始执行,栈帧入栈,执行完毕,...

2017-11-09 18:08:20 4106

原创 java内存优化:使用String.intern()节省java堆内存

一,什么是字符串常量池?A pool of strings, initially empty, is maintained privately by the class String.一个由String类私有维持的初始化为空的字符串池JDK1.6前,字符串常量池像运行时常量池一样,属于方法区(永久代,Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-He...

2017-09-12 14:43:01 1548 2

IOS车库管理(毕业设计+服务器代码)

IOS的车库管理系统,找车位,抢车位,计时,付款,定位,导航+数据库+服务器代码JAVA

2017-06-20

Android日程管理APP(毕业设计)

Android日程管理APP毕业设计

2017-06-20

在线视频网站/在线教学网站(毕业设计)

基于Web的在线教学网站/在线视频网站,毕业设计

2017-06-20

SSH框架整合

Srping+SpringMVC+hibernate搭建,其中包含了详细的配置文件的功能注释,例如:声明式事务管理的两种实现方式(注解式与配置式),还有不同连接池的配置(apache.dbcp/alibaba.druid.pool),不同数据库连接(Oracle/Mysql),同时包含ajaxfileupload文件上传和百度富文本编辑器Ueditor的应用

2017-03-22

图片坐标选点

采用event时间的ClientX/Y,在此基础上增加inframe跳转的方式完成图片像素坐标选择

2017-03-21

ajax文件上传

首先,form表单提交文件后必须完成跳转,而且样式体验较差;尽管能够采用iframe跳转方式,但是代码量过大过于复杂;同时,ajax并不支持文件的上传,此时ajaxfileupload就应运而生了,本人,在此基础上经过改写,使其同时支持,多文件上传isMore(boolen)、序列化类型参数ContentType(Serial/json)’,并且给出了SpringMVC的文件批处理方式,采用MultiartRequest,帮助没有采用框架开发的WEB初学者解决文件上传问题

2017-03-21

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

TA关注的人

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