前言

提到 ThreadLocal, Java 开发者并不陌生。在面试中,也经常被面试官提及,对 Java 开发者而言也是一个必须掌握的知识点,所以将它理解透彻是很有必要的。

文章稍微有点长,不过介绍的还是比较细致。

阅读全文 »

Commit message 是开发的日常操作,它可以提供更多的历史信息,方便,还可以有效的生成 Change log,对项目的管理实际至关重要,但是实际工作中却常常被大家忽略。

阅读全文 »

快速失败

采用快速失败机制的集合容器,使用迭代器进行遍历集合时,除了通过迭代器自身的 remove() 方法之外,对集合进行任何其他方式的结构性修改,则会抛出 ConcurrentModificationException 异常。

java.util 包下的集合类都采用的是快速失败机制,不能在多线程下发生并发修改(迭代过程中被修改)。

阅读全文 »

最近,自己根据网上的一些教程,基于 Hexo 搭建了自己的博客,并把搭建过程整理了出来,以供参考。

博客地址:http://yifanstar.top/

源码仓库:https://github.com/yifanzheng/yifanzheng.github.io/tree/hexo-blog-backup

框架驱动:Hexo

博客主题:NexT ^6.x

阅读全文 »

前言

最近,看到网上有很多人开始使用 GitHub Actions 进行项目的持续集成(CI)以及持续部署(CD)。于是,我也心血来潮,开始使用 GitHub Actions 来进行个人博客的自动部署。不得不说,GitHub Actions 真香!

阅读全文 »

代理模式(Proxy)意图是为另一个对象提供代理,以控制对其的访问。即通过代理类访问目标类,这样做可以通过代理对象扩展目标类的功能以及控制对目标类的访问。

代理模式主要有三种形式,分别是静态代理动态代理CGlib 代理

阅读全文 »

享元模式(Flyweight),使用共享技术有效地支持大量细粒度的对象。常用于系统底层开发,解决系统的性能问题。比如,数据库连接池技术。

阅读全文 »

外观模式(Facade),为子系统中的一组接口提供统一的接口。此模式定义了一个高层接口,这个接口使子系统更易于使用。简而言之,外观模式提供了到复杂子系统的简化接口。

阅读全文 »

组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

阅读全文 »

装饰者模式(Decorator),动态地给一个对象添加一些额外的功能,就增加功能来说,装饰者模式比继承更灵活。

阅读全文 »

概述

GitHub 源码地址:https://github.com/yifanzheng/spring-security-jwt

Spring Security 是 Spring 全家桶中一个功能强大且高度可定制的身份验证和访问控制框架。与所有 Spring 项目一样,我们可以轻松扩展 Spring Security 以满足自定义要求。

由于 Spring Security 功能十分强大,相比于其他技术来说很难上手,很多刚接触 Spring Security 的开发者很难通过文档或者视频就能将其进行运用到实际开发中。

阅读全文 »

最近,将家里的旧电脑装成了 Linux 系统,当作自己的一个私人服务器,用于编程学习。于是,我首先在上面安装了 MySQL 数据库,中间也遇到了不少问题,所以安装过程以及一些问题的解决方法记录了下来。

阅读全文 »