
Erzbir
咕咕咕
Java 插入式注解处理器
这是什么? Java 中提供了 Annotation 注解机制. 注解就像是一个标识符, 等待一个处理器根据代码中的注解执行对应的逻辑, 例如 @Setter 注解在被注解处理器扫描到之后就会在源码中插入对应的 setter 方法 Java 的注解处理分为: 运行时处理 和 编译时处理, 运行时注解
工作记录 (一)
虽然叫做 "工作记录 (一)", 但其实在此之前有很多次了, 我从大二开始负责整个学校的网络维护, 趁现在还在任职, 记录一下 (或许以后我会把回忆中的东西拿到现在来写) 今天是星期六, 因为昨晚喝酒睡得比较晚, 打算十二点醒的, 结果被古茗好几个电话叫醒, 说是网络故障了 在简单的远程处理之后,
记录修复的两个 BUG
这个两个问题都有点久远了, 但想起了搭建博客的初衷, 于是现在开始记录... 项目介绍 此项目是一个博客建站工具 项目地址: https://github.com/halo-dev/halo 遇到的 BUG issue 1: #4326 issue 2: #4430 第一个问题 问题: 附件预览中的
设计模式笔记
这个并非教程, 是我学习设计模式的时候记下的笔记, 有很多写得比较简单 此笔记只能用作简单参考, 详细应该看书和权威资料 参考内容: Head First 设计模式 Refactoring.Guru 菜鸟教程 设计原则: 开闭原则: 对扩展开放, 对修改关闭 接口隔离原则: 类之间的依赖关系应该建立
使用谷歌 Indexing API 进行推送
此文章针对插件: https://github.com/Stonewuu/halo-plugin-sitepush 的谷歌推送部分 谷歌的推送需要很多配置, 有些麻烦, 并且网络环境得保证能访问谷歌 这是官方教程: https://developers.google.com/search/apis/
服务加载器
利用 ServiceLoader 可以实现接口与实现的分离, 并且可以让一个 接口有多种实现以供不同情况下的选择, 也可以用于 API 模块 和 实现 模块的分బ
爱尔兰哨笛入门选购指南
前言: 想必你是听到了某首哨笛曲才想入坑的, 这是一门小众的乐器(至少国内是这样), 网上的教程不多, 本文主要针对入门哨笛的选购, 对于提到的中端哨笛可以考虑, 高端哨笛可以做个了解. 这篇文章并不谈工艺 / 历史背景等等, 只做入门选购指南. 这个圈子很小, 但瓜却不少, 且行且珍惜... 上图
Java - Lambda表达式
Lambda 语法: 使用 lambda 表达式的一般语法是: (Parameters) -> { Body } 参数括在括号中, 与方法相同, 而 lambda 表达式主体是用大括号括起来的代码块 lambda 表达式主体可以有局部变量和语句 我们可以在 lambda 表达式主体中使用 break
Java - 多线程基础
多任务: 真正的多任务是在多核 CPU 之后, 在此之前所有多任务都是伪多任务 高并发: 多个任务抢占少量资源 高并发三大要素: 可见性 原子性 排序性 Java 代码, 底层最后都会编译成汇编指令, 汇编指令做优化时代码执行顺序可能改变, 这样可能导致双重检查锁失效 时间片: 每个任务运行的时间,
Java - 泛型
介绍: 泛型的本质是为了参数化类型 (在不创建新的类型的情况下, 通过泛型指定的不同类型来控制形参具体限制的类型), 也就是说在泛型使用过程中, 操作的数据类型被指定为一个参数, 这种参数类型可以用在类、接口和方法中, 分别被称为泛型类、泛型接口、泛型方法 泛型保证了类型的统一 泛型只支持对象不支持