白话 LRU 缓存及链表的数据结构讲解(三)

双向链表 链表的作用就是按照访问的实际顺序排序,无论单链表或双链表都如此。我们在单链表的例子看到,维护单链表通常离不开从头部节点开始遍历的操作,尽管有许多巧妙的优化办法,但是只要从链表中查找某个元素(随机访问),必然还是离不开遍历操作。有鉴于此,我们希望可以常数时间内(O(1))随机访问元素,这样...

2019-05-24 15:34:56

阅读数 15

评论数 0

白话 LRU 缓存及链表的数据结构讲解(二)

问题的讨论 前文讲述了数组、单链表来实现缓存的数据结构,一步一步地反映出 LRU 是如何改进的。至今我们没有放下改进的脚步。在上一例单链表中遇到的一个问题是,提供的 T 为单一记录值,无法处理 Key/Value 结构。通过百度,我们找到一仁兄的资源,比较不错,解决了该该问题,并且单链表的思路更上...

2019-05-24 12:25:24

阅读数 28

评论数 0

白话 LRU 缓存及链表的数据结构讲解(一)

阅读前提:知道缓存(cache)的概念和 Java 数据结构。 为了提高性能和减少不必要的重复读取,人们提出了缓存的概念。相当于原本的数据,缓存的体量肯定是小的,而且是非常的少。于是就有缓存大小的概念,毕竟我们不可能把所有已经读取的数据都放在缓存里,缓存大小是固定的。怎么决定哪些数据放在缓存里面,...

2019-05-23 22:38:46

阅读数 23

评论数 0

Java 原生 JSON 序列化

首先要说的是,笔者之前着实足够奇葩,净干别人未干过的事情,居然会想到用 JS 引擎来转换 JSON(《用 Rhino/Nashorn 代替第三方 JSON 转换库》、《使用 Rhino 作为 Java 的 JSON 解析/转换包》),几经思考后,还是决然毅然放弃这个不切实际的想法,老老实实去写转换...

2019-01-29 13:30:44

阅读数 354

评论数 0

运用 Java 8 写一个 通用 Map 转换工具类

Map 是非常常见的一个数据结构,至于多常见则不再赘说了。框架无论大小,都会多少提供 Map 的相关工具方法,或进行封装。

2019-01-28 10:35:33

阅读数 423

评论数 0

运用 Java 8 写一个 HTTP 请求工具类

三年多以前写过一个 HTTP 请求类,然后又将其改进为链式风格的调用方式。虽然可以实现需求,基本上也没用重复的逻辑,但是编码上总是觉得怪怪的,当时也说不上哪里不对劲,尽管逻辑没错能实现,然而就是感觉谈不上“优雅”。那时水平有限,想不出办法也就没去专研了。 应该说,现在的 Java 8 的函数式风格...

2019-01-27 20:52:09

阅读数 2044

评论数 0

玩转 DCEVM + HotSwapAgent 热加载,免费、开源!

DCEVM 提供 JRebel 类似的功能,允许允许在运行时无限制地重新定义加载的类,所谓”热插拔、热加载、热部署“功能大抵如是。而 HotwapAgent 则适配了 Servlet 程序的热加载。 最重要的是 DCEVM + JRebel 免费、开源,不用为 JRebel 找破解而折腾,而且也心...

2018-12-13 14:36:12

阅读数 485

评论数 7

Java工具包:资源访问器

Java *.class 编译文件构成了 Java 程序,而 Java 程序则通过 classpath 能够访问到 class 文件。一个 Java 程序,classpath 位置可以不止一个,而保存 class 的介质也不止一种,磁盘文件系统,jar 包甚至 zip 包这些介质都可以让 Java...

2018-10-25 00:13:58

阅读数 599

评论数 2

Java 温故知新

Java 动态性,正在不断补充。如果用 JS 这些动态语言那当然简单。 选型 Java 动态代理 JavaAgent/Instrument/动态编译 ASM cglib Javassist 是否 Java 自带 yes yes no no n...

2018-10-21 10:00:36

阅读数 152

评论数 0

Swagger 2(Open API v3.0) Java 文档生成指南(下)

先介绍网上“搜刮”的资源: Swagger从入门到精通,如何编写基于 OpenAPI 规范的 API 文档,https://legacy.gitbook.com/book/huangwenchao/swagger/details https://blog.csdn.net/lucky37312...

2018-09-14 18:49:57

阅读数 917

评论数 0

Swagger 2(Open API v3.0) Java 文档生成指南(上)

接口文档生成器指的是写好了 API 接口 之后,让前台开放人员(包括不限于 H5 前端、iOS/Android 客户端、小程序等)调用接口时的文档。个人比较主张“代码即文档”,即文档编写在源码之中。 先全网选型了一下,发现适合 Java 的有下面几种开源的方案。 Swagger,也就是本文的...

2018-09-14 11:47:27

阅读数 1568

评论数 4

Maven 打包jsp/js/jsp静态资源到 JAR 包中(Servlet3.0模块化特性与Maven结合应用)

先吐槽一下,本人踩过很多坑,泪流满面啊,有因为不熟悉 maven 的,有 eclipse bug 的,有网上文章信息不对称的…… 好吧,回到正题,我们需求是这样子滴: 一个项目由多个工程组成。因为项目是复杂的,大的,所以划分为多个子项目(或者说工程)比较好一点 那么问题来了,父与子...

2018-02-06 11:28:03

阅读数 5136

评论数 5

文件上传之重制版

许久之前,小弟写过一个文件上传的,那时还是基于 JSP 的,详见《http://blog.csdn.net/zhangxin09/article/details/51543300》。不过最近看的代码不爽,于是又重新捣腾一下,就变成今天这样子了。 源码:https://gitee.com/sp42...

2018-01-13 22:38:35

阅读数 316

评论数 0

Java 对称加密

最近在做一个用户 token 功能,学习了加密相关 AES/DES、RSA 等。其中涉及一个对称和非对称加密问题。对称加密虽然没有非对称加密那样安全性高,但好处是加密速度快,但某些场合还是可以选择使用的,例如当下的用户认知机制,它是基于 token 无状态的,每次请求过来都会认证一次,这样就必须要...

2017-12-01 11:19:02

阅读数 521

评论数 0

大家都懂的 JSON 解析器原理(一)简介 & 低配版入门

没学过编译原理,做一个 JSON 解析器难吗?——难!是不是就不能“迎难而上”呢?——不是!越是难的越是一个挑战!——笔者这里尝试通过通俗易懂的行文为大家介绍一下 JSON 解析器,到底是如何被解析成为 Java 里面“可以理解的”对象。前面的铺垫可能比较长,但请尽量不要跳过,因为那都是基础,尤其...

2017-08-13 14:04:27

阅读数 2214

评论数 1

AJAXJS MVC 入门

AJAXJS MVC 是一款简单高效的 MVC 框架。它首先参照了 SpringMVC 中最精炼的部分也就是“约定优于配置”的思想,基本上无须特定的配置,只要写好了注解就可定义你自己的控制器。下面我们一步步来展现控制器是如何生成。

2017-08-12 23:24:13

阅读数 726

评论数 0

用 JSON 表现树的结构兼谈队列、堆栈的练习(二)

查找,又叫作搜索 search。查找跟遍历的概念不同,遍历是全部的节点都要走一遍,而查找,找到目标节点就立刻返回,不会继续遍历了。当然,如果什么都没查找到,就是一次完整的遍历过程了。

2017-08-03 23:34:45

阅读数 1313

评论数 0

用 JSON 表现树的结构兼谈队列、堆栈的练习(一)

接触 JSON 的人都知道,JSON 可通过 K/V(Key/Value) 结构很直观地表现一棵树,因为 V 可以“包含”另外一个 K/V 从而不断嵌套下去形成“树状”的结构。但 V 不一定必须为另外一个 K/V,而是可以为 Array 数组。数组中由可以“包含”更多的 K/V 或者又是数组类型—...

2017-08-02 11:05:22

阅读数 1831

评论数 0

原创一个微型的日志工具类

JDK 自带的 java.util.logging 非常简陋,于是在此基础上新建 LogHelper 类,封装一些实用的功能。 完整源码在:https://gitee.com/sp42/ajaxjs-base/tree/master/src/main/com/ajaxjs/util/logger...

2017-06-13 22:41:00

阅读数 749

评论数 3

PrepareStatement 如何打印真实 SQL

我们知道,JDBC 的 PrepareStatement 优点多多,通常都是推荐使用 PrepareStatement 而不是其基类 Statment。PrepareStatement 支持 ? 占位符,可以将参数按照类型转自动换为真实的值。既然这一过程是自动的,封装在 JDBC 内部的,那么我们...

2017-04-15 22:43:55

阅读数 7063

评论数 0

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