Erzbir

咕咕咕

设计模式笔记

这个并非教程, 是我学习设计模式的时候记下的笔记, 有很多写得比较简单 此笔记只能用作简单参考, 详细应该看书和权威资料 参考内容: 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 - 泛型

介绍: 泛型的本质是为了参数化类型 (在不创建新的类型的情况下, 通过泛型指定的不同类型来控制形参具体限制的类型), 也就是说在泛型使用过程中, 操作的数据类型被指定为一个参数, 这种参数类型可以用在类、接口和方法中, 分别被称为泛型类、泛型接口、泛型方法 泛型保证了类型的统一 泛型只支持对象不支持

Java - 注解

元注解: @Retention @Target @Document @Inherited @Retention: 定义注解的保留策略 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中, 在 class 字节码文件中不包含, 用于编译时, 典型为@Gette

Java - 反射

介绍: 是一门Java提供的专门技术, 这门技术让 Java 成为一门准动态语言 存在性能问题, 会占用额外内存, 速度也会较慢 一个类在内存中只有一个 Class 对象 一个类被加载后, 类的整个结构都会封装在 Class 对象中 Class 类: class 的类, 所有类都指向了 Class

Java - IO

介绍: Input Output Stream 狭义: 数据在内存中输入和输出, 本地进程间的数据流动 广义: 不同电脑之间的数据流动, 远程进程间的数据流动 流的流动方式(数据的传输方向) : 输入流 输出流 流的数据格式: 字节流 字符流 File对象: Java封装的一个操作文件及文件夹的对象