02 2020 档案
摘要:https://i-beta.cnblogs.com/posts/edit;postId=12097856 上面的博客记录了异常控制流的原理,我们基于异常处理流,再来扒一下 JAVA 中的异常处理。 上篇博客中提过,异常的触发和处理是分层级的,总的来说,有以下几种(个人总结): 1. 由硬件触发,操
阅读全文
摘要:责任链模式可以模块化的封装处理逻辑,进行调用方和被调用方的解耦。 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理
阅读全文
摘要:因为感觉对 B 树的理解不是特别深刻,一直想手撸一个 B 树,这次终于得偿所愿,文末有完整的 B 树代码。 代码比较长,大概六百行。 B 树的代码使用了一百组数据进行 插入/删除 测试,结果正确。 从生产讲,实现一棵 B 树不会有什么实际意义,但是这些代码和构建这些代码的思路,都将成为我们职业素养的
阅读全文
摘要:KMP算法是目前应用非常广泛的一种字符串匹配算法,因为其代码量比较少,相较传统的解法又多了一个初学会比较陌生的辅助数组,所以在刚接触的情况下比较难以理解。 需要说明的是,kmp算法有非常多的改进或衍生版本,看每一个版本的说明时建议看到底再看其它版本,防止概念混淆。比如 next 数组的定义,某些版本
阅读全文
摘要:小记一次小功能,头像的预览和上传。 头像的预览和上传依赖前端的几个机制: 1. 对于 input ,type 为 file 时浏览器会为我们提供文件选择功能,且选择文件后可以在该 input 中拿到选取文件的信息,借此通过 JS 将文件读为二进制或者Base64或者文本格式的串进行后续处理。 2.
阅读全文
摘要:作为一个 JAVA 开发者,对注解这一概念一定是不陌生的。像我们平时常用的就有 @Controller, @Service,@Test,@Override 等等好多个,正确的使用注解确实可以方便我们的开发,以@Controller 为例,加上该注解后,框架层面为我们节省了一大堆需要在 Servlet
阅读全文
摘要:理解一个数据结构,我们应该首先明白该数据结构的作用与应用场景,尔后理清其逻辑结构,基于逻辑结构考虑如何在计算机上进行物理存储,最后对以上进行代码实现。 我们按上述思考顺序来实现一次线段树。 作用及应用场景 我们考虑一个场景,我们有一个长度为 n 的数组,我们需要经常进行两种操作: 1. 计算某个区间
阅读全文
摘要:文章篇幅较长,知识点涵盖比较广泛,作为学习 JS 的一个总结。文章中仅涵盖 ES5 及之前的传统的知识点,未涵盖 ES6 及之后的新特性。 JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很
阅读全文
摘要:关于 λ 演算在这篇博客 λ表达式与邱奇数,JAVA lamda表达式实现 中做了一个初步的介绍,这次我们来看一些实际应用中的例子:闭包。闭包的知识点有很多,但核心概念就一个,从 λ 演算的角度看便是:自由变量的替换依赖于定义函数的上下文环境。也就是说上下文环境的改变会通过影响函数中的自由变量而直接
阅读全文