1. Java并发 - ThreadLocal

    ThreadLocal 提供了线程本地的实例。它与普通变量的区别在于,每个使用该变量的线程都会初始化一个 完全独立的实例副本。ThreadLocal 变量通常被private static修饰。当一个线程结束时,它所使用的 所有 ThreadLocal 相对的实例副本都可被回收。总的来说,ThreadLocal 适用于每个线程需要自己独立 的实例且该实例需要在多个方法中被使用,也即变量在线程间隔离而在方法或类间共享的场景。

    2021/09/05 Concurrent

  2. spring boot 和 mybatis 中配置druid多数据源

    Spring boot 和 Mybatis 搭配使用的范例已经很多了,多数据源的情况也有很多教程范例,但两者搭配 阿里巴巴的druid的资料不多,本文将搭建过程的关键步骤进行备份存档,以备使用。

    2021/09/05 Spring

  3. druid 1.2.6 依赖 openjdk 的问题

    如果项目中引用了 com.alibaba.druid-spring-boot-starter 这个jar包的 1.2.6 版本, 那么编译的时候会遇到找不到openJDK的问题,这是因为再druid的pom描述文件中,引用了本地定义的 openjdk路径,导致编译报错,具体原因和解决方案如下。

    2021/09/02 Tools

  4. Git 目录

    Git

    2021/09/02 menus

  5. 开发工具目录汇总

    maven Maven 相关基本操作 druid 1.2.6 依赖 openjdk 的问题 Maven deploy 上传jar包到私服的方法及其配置文件

    2021/09/02 menus

  6. 项目开发目录汇总

    content

    2021/09/02 menus

  7. 系统软件目录汇总

    Linux Linux用户和组管理 Linux系统权限控制基础 Linux系统shell脚本基础 Linux磁盘空间分析和删除日志文件 Linux排查进程和线程 Linux系统中自动检测并重启Java项目 Linux系统-grep指令

    2021/08/28 menus

  8. macOS 系统软件备份

    brew安装软件备份 # 备份 $ brew install htop $ brew tap Homebrew/bundle $ brew bundle dump $ mv Brewfile ~/cloud # 还原 $ brew bundle

    2021/08/28 macOS

  9. JVM - 引用类型

    在 JDK 1.2 版之前,Java 里面的引用是很传统的定义:如果 reference 类型的数据中存储的数值 代表的是另外一块内存的起始地址,就称该 reference 数据是代表某块内存、某个对象的引用。这种 定义并没有什么不对,只是现在看来有些过于狭隘了,一个对象在这种定义下只有“被引用”或 者“未被引 用”两种状态,对于描述一些“食之无味,弃之可惜”的对象就显得无能为力。譬如我们希望能描述一类对 象:当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以 抛弃这些对象 —— 很多系统的缓存功能都符合这样的应用场景。

    2021/08/24 JVM

  10. JVM - 垃圾回收

    经过半个世纪的发展,今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化” 时代,但当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时, 就必须对这些“自动化”的技术实施必要的监控和调节。

    2021/08/24 JVM