- 博客(58)
- 收藏
- 关注
原创 多模块下的mybatis plus配置
application.yaml 配置mybatis-plus: # 配置要扫描的xml文件目录,classpath* 代表所有模块的resources目录 classpath 不加星号代表当前模块下的resources目录 mapper-locations: classpath*:/mapper/*.xml # 实体扫描,*通配符 typeAliase...
2022-03-11 23:22:00 1402
原创 idea 默认主题高亮显示异常
最近idea的高亮变成了下图这个样子:找了很久没有找到原因,后面对比了旧版本idea的配置发现:Adjust colors for red-green vision deficiency (调整红绿色视力缺陷的颜色) 这个选项被打上了勾,这个选项是专门为红绿色盲的开发人员设计的,会改变高亮中的红色和绿色下面两张图是开了这个选项的前后对比:我们关闭这个选项后,高亮恢复正常:这个...
2021-07-31 09:48:00 1170
原创 Kafka 学习笔记一:基本概念
zookeeper: 负责集群元数据管理、控制器的选举等操作producer: 将消息发送到 brokerbroker: 将收到的消息存储到磁盘中consumer: 负责从 broker 订阅并消费消息topic: 消息主题(逻辑概念),生产者和消费者都以 topic 为单位进行生产和消费partition: 分区(也称作 topic-partition 主题分区,topic 的物理...
2021-06-25 08:48:00 178
原创 正向代理和反向代理
正向代理:客户端先访问代理服务器(比如香港服务器)代理服务转发请求到目标服务器(比如谷歌)目标服务器返回数据给代理服务器代理服务缓存数据然后给客户端返回数据反向代理:客户端访问指定域名,域名解析到反向代理服务器(比如负载均衡服务器)反向代理服务器根据定义好的规则把请求分发到目标服务器目标服务器返回数据给反向代理服务器反向代理服务器返回数据给客户端区别:正向代理...
2021-06-10 22:28:00 131
原创 ElasticSearch 基本概念和基础操作
安装ElasticSearch -> 参考官方文档,下载压缩包解压即可使用ElasticSearch head → 相当于一个可视化工具,用来查看数据 -> 可以直接安装浏览器插件kibana (查询工具) -> 参考官方文档,下载压缩包解压即可使用ik 分词器(中文分词器) → GitHub 下载后直接下载放入 plugins 目录 → 在config目录下可以配置...
2021-05-04 20:23:00 107
原创 我的第一台咖啡机
自从开始早起,每天一杯咖啡就成了标配,在我的另一篇文章《咖啡+奶》中聊过,从一开始的3+1速溶进阶到黑咖啡+鲜牛奶,这次我的咖啡体验又升级啦。入了一台胶囊咖啡机 Nespresso Inissia C40,爱喝咖啡星人终于有了一台属于自己的咖啡机啦。起因在这之前我对胶囊咖啡一无所知,在我的认知范围内,想要快速喝到黑咖啡,要么就是各种速溶黑咖啡,要么就是便利店或者咖啡店。偶然在公司看到同...
2021-01-04 08:42:00 151
原创 为什么 redo log 具有 crash-safe 的能力,是 binlog 无法替代的?
昨天在复习 MySQL 日志相关的知识,学的东西过一段时间后就会遗忘,遗忘后再重新思考,往往会有新的收获。想到几个问题,把它记录下来。为什么 redo log 具有 crash-safe 的能力,而 binlog 没有?redo log 是什么?一个固定大小,“循环写”的日志文件,记录的是物理日志——“在某个数据页上做了某个修改”。binlog 是什么?一个无限大小,“追加写”...
2020-12-04 18:08:00 5315 18
原创 博客优化小记
趁着周末把博客优化了一下,主要优化以下几点:阅读统计和访客统计添加评论升级hexo版本和NexT版本配置SEO静态文件cdn加速使用gulp压缩文件添加lazyload添加站内搜索阅读统计和访客统计阅读统计和访客统计使用的都是不蒜子,因为使用的是NexT主题,只需要添加一下配置就可以了。添加评论原本评论插件使用的是 disqus,但配置后了之后才发现已经被q...
2020-11-18 11:34:00 252 1
原创 深入理解Java虚拟机1——内存区域
《深入理解Java虚拟机》第2章读书笔记运行时内存区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。下图为《Java虚拟机规范》规定的几个区域,不同虚拟机实现起来略有区别:程序计数器保存线程当前工作状态。...
2020-11-18 11:32:00 137
原创 Java源码系列3——LinkedHashMap
什么是LinkedHashMap?LinkedHashMap 是 HashMap 的有序实现。LinkedHashMap 用一条双向链表来维护顺序,迭代的时候也使用自己实现的迭代器。public static void main(String[] args) { HashMap<String, Integer> h = new HashMap<>(3...
2020-10-26 14:31:00 221
原创 深入理解Java虚拟机2——对象探秘
《深入理解Java虚拟机》第2章读书笔记本文介绍对象的创建过程,包括如何对内存进行分配和对象中内存的布局,还介绍了如何访问对象。对象的创建堆内存的分配取决于内存是否规整:如果使用 Serial, ParNew 等带 Compact 过程的收集器时,系统采用的分配算法是指针碰撞(Bump the Pointer)——假设内存绝对规整,所有用过的内存都在一边,空闲的内存放...
2020-10-22 11:04:00 172
原创 高效学习
左耳听风《高效学习篇》笔记端正学习态度学习所需要具备的能力:行动力:缺乏行动力的人只会嘴上说说,很少真实践行;方向和目标:要在前进过程不断修正自己的方向,确立和实现自己的目标;方法:学习的方法很重要,没有方法论的支持,可能耗费大量的时间却收获很少;自律和坚持:严格的自律,坚持,有效学习不使蛮力,可持续发展。主动学习和被动学习被动学习:如听讲、阅读、视听、演示;...
2020-10-20 09:37:00 221
原创 WordPress自动代码高亮
WordPress 自带的代码块是没有代码高亮的,我们可以通过安装插件,设置代码高亮。因为都是使用 Markdown 写博客,再用 MWeb 发布到博客上,Enlighter 这种需要依赖谷腾堡编辑器插入额外模块的插件,就不太适合我了,虽然这个插件很强大,有兴趣的朋友可以尝试下。我只能选择自动美化谷腾堡代码块的插件,我找到了 Code Prettify 这个简单的插件,直接安装,不...
2020-10-20 09:34:00 1177 1
原创 如何给WordPress添加阅读计数
显示文章的阅读次数对 SEO 是有很大好处的,因为每次点击都会对文章进行一次小小的更新,我们可以用 WP-PostViews 这个插件来实现这个功能。安装插件在博客后台安装 WP-PostViews 插件。修改主题代码方法一:简单的修改。在外观 -> 主题编辑器 中,找到 index.php找到 <?php while (have_posts()) : the_...
2020-10-20 09:32:00 606
原创 WordPress添加页面导航
WordPress 原生的页面导航不好用,我们可以利用插件改成分页导航。我们使用 WP-PageNavi 插件来替代原生的页面导航。安装结束后进入主题编辑器,找到首页 index.php,找到 navigation 或者 nav 相关的代码,注释掉相关代码,并在位置上添加如下代码:<?php wp_pagenavi(); ?>如果注释掉原有的导航代码会导致页面错乱,可...
2020-10-20 09:31:00 904
原创 咖啡 + 奶
速溶咖啡起初,刚开始尝试早起,天刚蒙蒙亮,困意十足。起床第一件事,先烧一壶水,冲一杯速溶咖啡。冬天的早晨,一杯甜甜腻腻的咖啡下肚,清醒。后来觉得实在是太甜了,都是糖,不健康,就买了无糖的速溶咖啡,也挺好喝的,咖啡味道更浓。那时候买了一大盒,一百包,结果自己很快就不喜欢喝速溶了。这一大盒现在放办公室里,偶尔想喝的时候,冲一杯,只加四分之一水,浓郁。咖啡 + 奶一勺奶粉 + 两勺速...
2020-09-26 08:11:00 175
原创 对比 Redis 中 RDB 和 AOF 持久化
概念Redis 是内存数据库,数据存储在内存中,一旦服务器进程退出,数据就丢失了,所以 Redis 需要想办法将存储在内存中的数据持久化到磁盘。Redis 提供了两种持久化功能:RDB (Redis Database):生成 RDB 文件,保存的是 key-value 的形式。AOF (Append Only File):保存 Redis 执行过程中的写命令。生成RD...
2020-09-16 10:19:00 188
原创 《搞定1》读书笔记
前言GTD 作为一种方法论对于个人提升是非常重要的,作为一种个人成长基础设施,可谓越早掌握越能够发挥作用,复利效果显著。我花了5天左右的时间粗略翻完这本书,主要看了前三章,后面的章节是对前三章介绍的思想的实践和扩展,并不适合我现有的情况,简略的看完了。我从这本书中获得了三个主要的思想或者说方法论:收集所有你认为有必要收集的信息,并放入收集箱中;清空大脑,决策下一步行动...
2020-08-27 17:30:00 426
原创 如何理解被 protected 修饰的成员变量?
被 protected 修饰的成员对于本包和其子类可见:基类的 protected 成员在包内可见若继承了基类的子类与基类不在同一个包中,那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,不能访问基类中的 protected 方法。/** * 基类 */package com.example.demo.base;public class P...
2020-08-17 17:37:00 1957
原创 Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?
title: Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?date: 2020-06-04 11:27:53updated: 2020-06-04 11:27:53tags:JavaJava源码系Photo by hippopx.com我们知道 HashMap 的底层是由数组,链表,红黑树组成的,在 HashMap 做扩容操作时,除了把数组...
2020-06-05 10:31:00 379
原创 MySQL是如何实现可重复读的?
Photo by picography.co《MySQL实战45讲》笔记。简单理解一下可重复读可重复读是指:一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。我们可以简单理解为:在可重复读隔离级别下,事务在启动的时候就”拍了个快照“。注意,这个快照是基于整个库的。这时,你可能就会想,如果一个库有 100G,那么我启动一个事务,MySQL就要拷贝 10...
2020-06-05 10:15:00 3214
原创 MySQL的各种日志
Photo by hippopx.com《MySQL实战45讲》笔记。1. redo log——只是一块粉板孔乙己又来酒馆喝酒,兜里没钱手机也没电了,只能向掌柜的赊账。掌柜有一块粉板,当客人要赊账的时候就往上写一笔,等客人少的时候或者粉板写满了就记到账本里去。还好有这块粉板,不然每次客人要赊账,掌柜都要翻看账本,在密密麻麻的账本里找到赊账客人的名字绝对不是一件容易的事,有了粉板...
2020-06-01 14:30:00 2865 1
原创 早起实操手册
从2019年大概11月份左右,我开始尝试早起,一直坚持到现在已经有半年左右了。目前工作日和周日5点45分或者6点20分左右起床,具体时间看昨晚的入睡时间。周六关闭闹钟靠生物钟起床。起因最初的起因很偶然——女朋友考研到了冲刺阶段,每天5点起床背书,我想着干脆我也陪着早起,一起学习,这样女朋友就不用担心吵醒我了。初期问与答如何激励自己的?我给自己画了一个表格,每次早起就打个勾...
2020-05-07 09:45:00 150
原创 Java源码系列2——HashMap
HashMap 的源码很多也很复杂,本文只是摘取简单常用的部分代码进行分析。能力有限,欢迎指正。HASH 值的计算前置知识——位运算按位异或操作符^:1^1=0, 0^0=0, 1^0=0, 值相同为0,值不同为1。按位异或就是对二进制中的每一位进行异或运算。 1111 0000 1111 1110^ 1111 1111 0000 1111______________...
2020-02-25 09:43:00 91
原创 Java源码系列1——ArrayList
本文简单介绍了 ArrayList,并对扩容,添加,删除操作的源代码做分析。能力有限,欢迎指正。ArrayList是什么?ArrayList 就是数组列表,主要用来装载数据。底层实现是数组 Object[] elementData,当我们装载的是基本数据类型 int, long, boolean, shot...的时候我们只能存储他们对应的包装类型。与它类似的是 LinkedLi...
2020-02-25 09:39:00 99
原创 理解Spring中的IoC和DI
什么是IoC和DIIoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度。其基本思想是:借助于“第三方”实现具有依赖关系的对象之间的解耦。DI(Dependence Injection 依赖注入):将实例变量传入到一个对象中去(Dependency injection means giving an obje...
2019-12-15 12:49:00 137
原创 Java 注解基本原理
原文地址注解的本质「java.lang.annotation.Annotation」接口中有这么一句话,用来描述『注解』。The common interface extended by all annotation types所有的注解类型都继承自这个普通的接口(Annotation)这句话有点抽象,但却说出了注解的本质。我们看一个 JDK 内置注解的定义: @T...
2019-12-04 15:27:00 117
原创 LeetCode176——第二高的薪水
题目描述编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如...
2019-06-19 11:42:00 151
原创 理解 Node.js 的 GC 机制
理解 Node.js 的 GC 机制 《深入浅出Node.js》第五章《内存控制》阅读笔记随着 Node 的发展,JavaScript 的应用场景早已不再局限在浏览器中。本文不讨论网页应用、命令行工具等短时间执行,且只影响终端用户的场景。由于运行时间短,随着进程的退出,内存会释放,几乎没有内存管理的必要。但随着 Node 在服务端的广泛应用,...
2019-06-02 17:27:00 1044
原创 LeetCode70——爬楼梯
LeetCode70——爬楼梯 题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释:...
2019-05-26 20:59:00 187
原创 使用 trash 避免 rm -rf 悲剧
使用 trash 避免 rm -rf 悲剧 昨晚做了一个令人痛心疾首的操作,rm -rf something,把我个人电脑里的重要文件夹给删掉了,懵逼了半天才缓过来。还好是个人文件,不对公司造成影响。这件事也让我意识到 rm -rf 确实是个高风险操作,文件备份也是重中之重。为了规避这个风险操作,我决定用 trash 替代 rm,这样文件就不会直...
2019-04-24 10:37:00 478
原创 实现一个简单的WebSocket聊天室
实现一个简单的WebSocket聊天室 WebSocket 简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以...
2019-04-21 15:55:00 459
原创 微信支付开发实记
微信支付分为JSAPI支付,扫码支付,APP支付,小程序支付等不同的支付方式。但大体的支付过程是一致的,本文以JSAPI支付,也就是微信内的H5支付为例,描述一下支付的整个开发流程。配置商户需要提前开通商户平台,并去公众平台或开放平台提交微信支付申请,获得商户号和秘钥。详细文档可以看这里支付流程微信支付的流程图画的很完整,开发前要把整个流程研究清楚。整个流程,服务端需要...
2018-11-19 21:40:00 364 1
原创 微信网页授权
背景用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。配置在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 h...
2018-11-19 14:16:00 159
原创 小程序登录及用户信息和手机号的获取
登录流程小程序通过 wx.login 获取 code(用户登录凭证,有效期五分钟,使用一次后实效)服务端拿到 code,调用 code2Session,获取用户的 openid (用户在当前应用的唯一标识)、unionid (用户在开发平台的唯一标识) session_key (会话秘钥是对用户数据进行 加密签名 的秘钥,在获取用户信息时会用到) 等信息。...
2018-11-16 14:30:00 7174
原创 Node.js 获取微信JS-SDK CONFIG
背景前端在调用微信提供的分享、拍照、扫一扫等功能时需要到后台获取配置,主要是签名(signature)。Node 开发可以用朴灵大佬的SDK——co-wechat-api。配置到微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。前提是该域名的项目目录下有微信提供的校验文件。如果需要本地调试或者测试环境调试,可以把IP白名单也顺便配置一下...
2018-11-07 18:48:00 141
原创 代码顺序的重要性
代码顺序的重要性 背景在修改前辈留下来的代码时踩到一个坑。简单讲一下代码做了什么事:在 try/catch 里实例化多个类,并调用类的方法为其赋值,catch 到错误也不会中断,而是通过打日志的形式收集报错信息。我需要在里面新实例化一个类,有样学样,上来就是一顿copy改,可是新增的类的某个属性总是不对,排查了半天才发现一个坑。错误模拟cl...
2018-11-07 18:47:00 412
原创 七牛视频防盗链处理
七牛视频防盗链处理 背景公司在做付费课程,视频教学为主,需要对视频链接作防盗链处理。REFERERHTTP referer 是 header 上的一个属性。当浏览器向服务器发起请求时,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。七牛在融合 CDN -> 域名管理 -> 高级配置里有一个域名防盗链选项。配置好...
2018-11-02 13:41:00 1649
原创 《码农翻身》读书笔记
花了一天时间翻完了《码农翻身》(跳过了Java部分)。生动有趣的书看起来就是舒服,竟有引人入胜、手不释卷的感觉,一不小心就翻完了。是一本很好的入门科普读物,开阔技术视野。下面是书中的摘抄和笔记线程我是一个线程不知道什么时候会被挑中执行在执行的过程中随时可能被打断,让出CPU一旦出现硬盘、数据库这样耗时的操作,也得让出CPU数据来了,也不一定马上执行...
2018-10-29 09:38:00 654
原创 白夜行
“我呢,”雪穗继续说,“从来就没有圣湖在太阳底下。”“我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。你明白吗?我从来没有太阳,所以不害怕失去。” ——《白夜行》东野圭吾。开头是一宗离奇的命案,调查以无任何结果告终。然后开始分别叙述两位主人公的生活。从十一岁到初中...
2018-10-21 13:52:00 1015
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人