随笔分类 -  学习总结

摘要:断点 1. 外循环断点标记 public static void oneLoopBreak(){ oneLoop: for (int i = 0; i < 2; i++) { moreLoop: for (int j = 0; j < 5; j++) { System.out.println(j); 阅读全文
posted @ 2021-03-17 17:24 大摩羯先生 阅读(26) 评论(0) 推荐(0) 编辑
摘要:不可变类 如果一个类初始化后,所有属性和类都是final不可变的,则它是线程安全,不需要任何同步,活性高 线程隔离 方法内局部变量使用线程内参数传递ThreadLocal持有 同步锁 synchronized的代码串行执行,线程安全,但活性低,JDK1.7之后已经优化volatile变量锁外双重检测 阅读全文
posted @ 2021-02-25 09:28 大摩羯先生 阅读(18) 评论(0) 推荐(0) 编辑
摘要:[Redis]哨兵机制 架构拓扑运行机制故障转移集群选举Sentinel节点选举Redis节点选举 参考 在之前的文章中介绍了 [Redis]主从复制机制,主从复制机制可以允许我们拓展节点来进行数据拷贝,可以根据业务场景进行读写分离、数据备份等功能,但是主节点Master出现异常时并不能实现自动地主 阅读全文
posted @ 2021-02-02 17:42 大摩羯先生 阅读(23) 评论(0) 推荐(0) 编辑
摘要:[Redis]主从复制机制 架构拓扑复制关系建立断开 主从拓扑简单一主一从星形一主多从树状一主多从 复制命令sync全量复制psync全量/部分复制 复制原理总结参考 架构拓扑 复制关系 参与复制的节点一般有主节点和从节点两部分构成,任何节点都只能有一个主节点,任何一个主节点都可以有多个从节点,数据 阅读全文
posted @ 2021-02-02 11:34 大摩羯先生 阅读(25) 评论(0) 推荐(0) 编辑
摘要:[Redis]Lua脚本 Lua语言简介语言特性应用场景 数据结构协作组件伪客户端脚本缓存 命令实现evalevalshascript flushscript loadscript existsscript kill Lua与Redis命令区别Lua脚本优点总结参考 Lua语言简介 Lua是一种轻量 阅读全文
posted @ 2021-02-01 18:28 大摩羯先生 阅读(73) 评论(0) 推荐(0) 编辑
摘要:[Redis]事务实现机制 事务实现事务命令watch数据存储触发机制事务执行 multidiscardexec 执行流程数据构成异常处理入队错误执行错误 ACID探讨原子性(Atomic)隔离性(Isolation)持久性(Durability)一致性(Consistency) 参考 关系型数据库 阅读全文
posted @ 2021-02-01 14:21 大摩羯先生 阅读(22) 评论(0) 推荐(0) 编辑
摘要:[Redis]数据库空间模型 数据结构数据存储数据查找数据过期惰性删除定期删除 总结参考 在关系型数据库如MySQL,数据库数据是按照行记录格式进行存储的。同理,我们常说Redis是一个 键值对(Key-Value)构成的内存数据库,具体是以什么形式进行存储的,下面通过源码一看究竟。 数据结构 在r 阅读全文
posted @ 2021-01-30 23:39 大摩羯先生 阅读(34) 评论(0) 推荐(0) 编辑
摘要:[Redis]事件驱动模型 源码剖析main()主方法入口aeEventLoop事件处理封装类aeCreateEventLoop()事件初始化aeMain() 主循环函数aeProcessEvents()事件处理函数aeApiPoll()事件获取函数epoll实现select实现对比 事件驱动模型参 阅读全文
posted @ 2021-01-29 19:11 大摩羯先生 阅读(39) 评论(0) 推荐(0) 编辑
摘要:[Redis]持久化机制 RDB触发方式执行流程RDB文件格式对象文件编码字符串对象列表对象集合对象哈希对象有序集合对象 文件压缩优缺点 AOF执行频率执行流程重写压缩触发机制 优缺点 重启加载总结参考 Redis支持 RDB和 AOF两种持久化机制。通过 info persistence查看持久化 阅读全文
posted @ 2021-01-28 17:03 大摩羯先生 阅读(16) 评论(0) 推荐(0) 编辑
摘要:[Redis]内存管理机制 简介内存消耗内存查看内存碎片内存构成内存碎片产生原因内存碎片规避方式 子进程内存消耗 内存管理内存上限内存回收内存回收策略内存回收源码 内存优化redisObject对象键值空间压缩共享对象池字符串优化编码优化 参考 基于Redis-3.2.1 简介 Redis是一个基于 阅读全文
posted @ 2021-01-27 19:31 大摩羯先生 阅读(42) 评论(0) 推荐(0) 编辑
摘要:[Redis]数据结构与对象 1. 简单动态字符串简介数据结构特点SDS兼容一部分C语言函数SDS属性len的作用SDS减少了字符串变更时内存空间重分配预占空间惰性释放 SDS保证文本二进制安全 2. 链表简介数据结构特点使用场景 3. 字典简介数据结构底层原理哈希值计算哈希碰撞rehash扩容前开 阅读全文
posted @ 2021-01-27 13:24 大摩羯先生 阅读(21) 评论(0) 推荐(0) 编辑
摘要:目录 1. IO和NIO1.1 阻塞 vs 非阻塞1.2 面向流 vs 面向缓冲 2. 知识准备2.1 缓冲区操作2.2 内核空间与用户空间2.2.1 设计初衷2.2.2 空间态切换 2.3 虚拟内存2.4 分页技术2.5 内存映射文件 3. java.nio组成3.1 Buffer3.2 Chan 阅读全文
posted @ 2021-01-22 16:41 大摩羯先生 阅读(18) 评论(0) 推荐(0) 编辑
摘要:mmap内存映射原理 1. mmap介绍2. Linux内存管理介绍结构体定义进程结构体(task_struct)内存结构体(mm_struct)虚拟内存区域结构体(vm_area_struct) 页表管理 3. mmap内存映射剖析内存&文件映射结构内存&文件映射过程 4. mmap函数语法功能参 阅读全文
posted @ 2021-01-18 20:13 大摩羯先生 阅读(119) 评论(0) 推荐(0) 编辑
摘要:ByteBuffer总结 1. 组成1.1 类关系1.2 Buffer1.2.1 属性1.2.2 API读取(get)填充(put)翻转(flip & rewind)释放(clear) 1.2.3 创建方式 1.2 HeapByteBuffer1.3 HeapByteBufferR1.4 Direc 阅读全文
posted @ 2021-01-18 14:55 大摩羯先生 阅读(66) 评论(0) 推荐(0) 编辑
摘要:<insert id="insert" parameterClass="AddReq"> INSERT INTO TABLE ( A,B,C ) VALUES( #A#,#B#,#C# ) <!-- 主键冲突更新逻辑 --> on duplicate key update <!-- 将ID赋值,当出 阅读全文
posted @ 2021-01-15 18:13 大摩羯先生 阅读(143) 评论(0) 推荐(0) 编辑
摘要:1. 网络分层模型 因特网协议栈共有五层:应用层、传输层、网络层、链路层、物理层。不同于OSI七层模型这也是实际使用中使用的分层方式。 应用层 支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、 阅读全文
posted @ 2021-01-14 13:55 大摩羯先生 阅读(185) 评论(0) 推荐(0) 编辑
摘要:目录 1. 分类1.1 按数据流的方向分为输入流、输出流1.2 按处理数据单位不同分为字节流、字符流1.3 按功能不同分为介质流、装饰流、功能流 2. 字节流与字符流2.1 使用场景2.2 转换 3. java.io包结构3.1 File3.2 InputStream3.2.1 ByteArrayI 阅读全文
posted @ 2021-01-07 14:49 大摩羯先生 阅读(31) 评论(0) 推荐(0) 编辑
摘要:1. 编码含义 编码:给每一个对象标记一个二进制位串来表示一组对象。例:ASCII,指令系统。 2. 编码分类 等长编码:表示一组对象的二进制位串的长度相等不等长编码:表示一组对象的二进制位串的长度不相等 3. 编码问题 等长编码什么情况下空间效率高? 等长编码越短,占据空间越小不等长编码什么情况下 阅读全文
posted @ 2021-01-05 10:53 大摩羯先生 阅读(343) 评论(0) 推荐(0) 编辑
摘要:1. 概念 哈夫曼树是一个特殊的二叉树,它的特殊在于: 叶子节点带有权值:对叶子结点赋予的一个有意义的数值量二叉树的带权路径长度:设二叉树具有n个带权值的叶子结点,从根结点到各个叶子结点的路径长度与相应叶子结点权值的乘积之和。记为 WPL=Wklk,这里的WPL即带权路径长度(Weight Path 阅读全文
posted @ 2020-12-31 17:24 大摩羯先生 阅读(263) 评论(0) 推荐(0) 编辑
摘要:1. 简介 简单描述CyclicBarrier的功能,那就是 它允许一组线程互相等待,直到到达某个公共屏障点 (Common Barrier Point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 Barrier 在释放等待线程后 阅读全文
posted @ 2020-12-29 15:16 大摩羯先生 阅读(122) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示