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

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

2019-05-24 15:34:56

阅读数 15

评论数 0

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

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

2019-05-24 12:25:24

阅读数 29

评论数 0

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

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

2019-05-23 22:38:46

阅读数 23

评论数 0

高级网页动画制作

现今浏览器如此地强大,以至不同形式的网页形式缤纷而至,例如动画就是必不可少的一环。早期有全站 Flash 技术制成的,现今则是多种技术混合在内,包括 CSS3+Canvas + SVG,甚至利用 AE(Adobe After Effects)强大的滤镜所做的动画都可以搬到上来。关于 AE 技术的转...

2019-05-15 16:57:23

阅读数 24

评论数 0

JavaScript 合并 Table 单元格简单做

标签初步分析 HTML Table 元素允许合并单元格。通常手写代码比较“反人类”思维,于是还是通过直观的可视化的工具来完成,例如奉为经典的 Dreamweaver。 研究代码,td 行元素有一 rowspan 跨行的属性,表示跨行行数。如果当前这样有 x 个跨行,那么下面 tr &gt...

2019-05-14 18:42:06

阅读数 81

评论数 0

恢复安卓谷歌套件

套件四个组件: Google Mobile Service Google Play Services Google Play Store Google Login Service/Google Account Manager 使用国内的套件安装器,不行,出现“Google Play 服务 已停...

2019-04-17 09:24:55

阅读数 101

评论数 0

免费 VPS 攻略

Goolge Cloud 谷歌云 免费获得 300 美金一年,需要 VISA/Master 信用卡。 https://cloud.google.com/ Google Cloud 原本自带的SSH工具用着也挺不错,但是为了集中管理,还是用工具方便点。首先使用Google Cloud SSH连接上去...

2019-03-24 17:48:00

阅读数 146

评论数 0

我的常用软件&工具

是为备忘。 选用原则 免费、开源 浏览器 Chrome & FireFox 56.0.2 Chrome 使用最新版本。FF 停留在 56,原因无他,最后支持老版本插件的,在官网 FTP 下载。 编辑器 VSCode、Notepad2 htt...

2019-03-17 12:33:39

阅读数 110

评论数 0

遍历 DOM 注意点

在实现一个清理 HTML 冗余标签(word 粘贴过来的)功能,最简单的,莫过于: // MSWordHtmlCleaners.js https://gist.github.com/ronanguilloux/2915995 cleanPaste : function(html) { ...

2019-01-29 18:06:51

阅读数 135

评论数 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

Vue组件放送之下拉省市区联动

省市区联动,又是一个常见的组件。一般来说,通过 select 元素的 onchange 事件来实现,难度不大。而如今换作 vue 框架下,该如何实现呢?这正事我们接下来要探讨的,——但先请容我说,甚至比旧方法更简单!——这就是来自数据驱动——MVVM 的威力! 什么是数据驱动呢?往大的说,可以很大...

2019-01-24 10:54:07

阅读数 217

评论数 0

Vue组件放送之文件上传

文件上传组件是常见的 Web 组件。HTML 提供了 input file 原始上传组件,我们在此基础上利用各种 HTML5 特性来封装该组件,而不是通过内嵌一个隐藏 Flash 上传(古老的做法)。又因,利用了 vue 的 MVVM 和组件化的强大特性,这一切都变得简单轻松。 先谈谈组件的需求—...

2019-01-22 23:43:26

阅读数 861

评论数 5

玩转 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

MySQL 主从配置

linux Cent OS6.5 yum安装mysql 5.6 1.新开的云服务器,需要检测系统是否自带安装mysql # yum list installed | grep mysql 2.如果发现有系统自带mysql,果断这么干 # yum -y remove mysql-libs.x86_...

2018-09-18 21:49:28

阅读数 155

评论数 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

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