摘要:
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objec 阅读全文
摘要:
BootStrap Netty 中的 BootStrap 分为两种:一种是客户端的 BootStrap;一种是服务端的 ServerBootStrap。 客户端的 BootStrap 初始化客户端,该 BootStrap 只有一个 EventLoopGroup,用于连接远程主机 服务端的 Serve 阅读全文
摘要:
Reactor 线程模型 由于传统 的阻塞 IO 对于响应时间不是很好,因此引入了 Reactor 的异步事件模型来提高响应时间。 主要存在以下三种方式: 单线程 Reactor 内部通过 selector 来监听连接事件,收到事件之后通过 dispatcher 来进行分发。如果是连接建立的事件 阅读全文
摘要:
问题描述 给定一个非负整数数组 nums 和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 例如,对于输入 nums 为 {7, 2, 5, 10, 8},m 为 2,那么结果应当为 18,因为将 nums 划分为 {7, 2 阅读全文
摘要:
简介 在一般的 Unix 或者 类Unix 中,为了更好地管理磁盘资源,有时不得不挂载一个外部的磁盘,使用 mount 命令可以快速地挂载一个外部磁盘,具体用法为: # 将磁盘分区 sda2 挂载在 /mnt 上 mount /dev/sda2 /mnt # 要查看有哪些磁盘分区是,可以通过 fdi 阅读全文
摘要:
简介 UnionFind 主要用于解决图论中的动态联通性的问题(对于输入的一系列元素集合,判断其中的元素是否是相连通的)。 以下图为例: 集合[1, 2, 3, 4] 和 [5, 6]中的每个元素之间都是相联通的,及 1 和 2、3、4都是连通的,而 1 和 5 则不是连通的。 UnionFind 阅读全文
摘要:
非标准定义:缓存系统中是以缓存行(cache line)为单位存储的,当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就被称之为伪共享。 CPU 缓存 在计算机系统中,CPU 高速缓存(CPU Cache)是用于减少处理器访问内存所需的平均时间的部件。在金字塔 阅读全文
摘要:
NIO 简介 自 JDK 1.4 以来,引入了一个被称为 NIO(New IO) 的 IO 操作,是标准 IO 一个替代品。Java 的 NIO 提供了一种与传统意义上的 IO 不同的编程模型。有时,NIO 也被称为 No-Blocking IO,这是因为一般情况下 NIO 的 API 都是非阻 阅读全文
摘要:
什么是垃圾对象 在内存中再也不可能会被使用到的对象 判断一个对象是否是垃圾对象的方法(标记): 可达性分析:从根节点开始,如果能够被访问到,则说明这个对象是可用的,否则,就说明这个对象不可达的,即是一个垃圾对象 引用器计数:判断当前的对象是否有其他的引用引用它,如果存在,则说明这个对象不是一个垃圾对 阅读全文
摘要:
运行时数据区 JVM 在程序执行时定义了多个运行时数据区,有些数据区是由 JVM 在启动时创建并且在 JVM 退出后摧毁的,有些数据区是由每个线程所有的。每个线程私有的数据区在由线程创建时创建,随着线程的退出而销毁。 主要存在以下几个运行时数据区:由线程共享的运行时数据区:堆区、方法区;线程私有的运 阅读全文