摘要: 近期工作中涉及到文件记录、文件翻转等操作,思考有没有成熟的代码以便参考. 因此,第一时间就联想到Logback的AsyncAppender以及RollingFileAppender. AsyncAppender:通过队列储存日志事件,启动Worker线程读取日志事件并写入关联的Appender中; Roll... 阅读原文
2020-01-02 09:27:02 阅读(3583) 评论(0)
摘要: 本系列笔记主要基于《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》,是这本书的读书笔记。 Java虚拟机的内存区域中,程序计数器、Java栈和本地方法栈是线程私有的,随线程而生随线程而灭,因此这几个区域的内存回收和分配都有确定性,所以主要探究的是Java堆和方法区的内存分配及回收。 Java堆... 阅读原文
2020-01-02 09:06:02 阅读(2406) 评论(0)
摘要: 一、背景 书接上文手写MQ框架(三)-客户端实现 ,前面通过web的形式实现了mq的服务端和客户端,现在计划使用netty来改造一下。前段时间学习了一下netty的使用(https://www.w3cschool.cn/netty4userguide/52ki1iey.html)。大概有一些想法。 netty... 阅读原文
2020-01-02 07:14:01 阅读(2407) 评论(0)
摘要:     事务一般是指数据库事务,是指作为一个程序执行单元执行的一系列操作,要么完全执行,要么完全不执行。事务就是判断以结果为导向的标准。 一.spring的特性(ACID)       (1).原子性(atomicity)       原子性就是一个不可分割的工作单元。简单的说,就是指事务包含的所有操作要么全... 阅读原文
2020-01-02 06:37:07 阅读(2354) 评论(0)
摘要: 背景 上文JDK8中的HashMap源码写了HashMap,这次写ConcurrentHashMap ConcurrentHashMap源码 /** * Maps the specified key to the specified value in this table. * Neit... 阅读原文
2020-01-02 06:00:13 阅读(2459) 评论(0)
摘要: 背景         很久以前看过源码,但是猛一看总感觉挺难的,很少看下去。当时总感觉是水平不到。工作中也遇到一些想看源码的地方,但是遇到写的复杂些的心里就打退堂鼓了。         最近在接手同事的代码时,有一些很长的python脚本,没有一行注释。就硬着头皮一行一行的读,把理解的都加上注释,这样一行行看... 阅读原文
2020-01-02 00:00:04 阅读(2435) 评论(0)
摘要: 1.泛型类 public class Dog<T> { private T age; public Dog(T age) { this.age = age; } public T getAge() { ret... 阅读原文
2020-01-01 21:06:02 阅读(2626) 评论(0)
摘要: 一、Spring Data JPA 1、简介 (1)官网地址:  https://spring.io/projects/spring-data-jpa参考文档:  https://docs.spring.io/spring-data/jpa/docs/2.2.3.RELEASE/reference/html/... 阅读原文
2020-01-01 20:12:56 阅读(2354) 评论(0)
摘要: 程序入口 SpringApplication.run(BeautyApplication.class, args);   执行此方法来加载整个SpringBoot的环境。 1. 从哪儿开始? SpringApplication.java /** * Run the Spring ap... 阅读原文
2020-01-01 19:04:02 阅读(2427) 评论(0)
摘要: Talk is cheap, show me the code! public class TestMybatis { public static void main(String[] args) throws IOException { //1. 读取配置文件 In... 阅读原文
2020-01-01 18:07:02 阅读(2280) 评论(0)