摘要: 二叉树的最近公共祖先 阅读全文
posted @ 2021-02-14 17:17 jean zhang 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 如果你使用ACID事务数据库,则可能听说过锁等待超时和死锁。这些是什么?它们又有什么不同? 我们许多人会在某个时候遇到这些现象。大多数数据库使用锁定策略来确保当多个用户(或连接或进程)同时读取和修改数据时数据保持一致。这些锁确保一次操作只能一次更改数据的特定部分,并序列化更改以进一步缓解这些竞争状况 阅读全文
posted @ 2021-01-02 20:04 jean zhang 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Spirng容器自己会管理bean的生命周期和bean实例化的顺序,但是我们仍然可以根据我们自己的需求进行定制。我可以可以选择使用SmartLifeCycle接口,也可以用@DependsOn注解来管理初始化顺序。 这个说明文档展示了@DependsOn的用法和依赖的bean缺失的问题和 阅读全文
posted @ 2020-10-06 21:47 jean zhang 阅读(874) 评论(0) 推荐(0) 编辑
摘要: Spring java 循环依赖 阅读全文
posted @ 2020-10-02 20:27 jean zhang 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 我认为Spring中BeanFactory和FactoryBean这两个接口是Spring源码中最让人迷惑的两个接口,各自的javadoc文档实际上写的还是很清楚的,只不过要看懂javadoc 前提是你得先真正理解这两个类的用途,是不是像代码里面的死锁,有点黑色幽默了。其实我当初研究这一块的时候,真 阅读全文
posted @ 2020-10-02 12:49 jean zhang 阅读(696) 评论(0) 推荐(0) 编辑
摘要: 2020年发生了太多的事情,今晚更是一个悲伤的夜晚。实在睡不着,所以就写点东西,想写的事太多,但一些事不能写,一些自己能力有限写不好,我是一个程序员,所以就还是写一点自己的老本行吧,希望能给身处困境的人一些帮助。 1.程序员这个行业是干什么的? 程序员这个行业和建筑行业做个类比,其实我觉得这两个行业 阅读全文
posted @ 2020-02-07 05:06 jean zhang 阅读(1903) 评论(0) 推荐(0) 编辑
摘要: 1.如何创建一个task 该任务的作用是 讲归属于 configurations.compile 的所有jar包导入到allLibs 目录。 2. gradle 引入插件的两种方式,只不过第二种方式是新写法 apply plugin: 'maven' plugins { id 'org.hideta 阅读全文
posted @ 2019-04-07 20:52 jean zhang 阅读(212) 评论(0) 推荐(0) 编辑
摘要: Netty 支持多种实现方式,比如nio,epoll 等,本文以nio的实现方式进行讲解。 1.EventLoop : 事件循环看,简单来说就是一个死循环监听事件,如果事件来了,处理掉。通常做法就是开启一个独立线程,一直循环。 伪代码: while (queue.waitForMessage()) 阅读全文
posted @ 2019-04-06 18:10 jean zhang 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 主要原理: 事务的顶层接口: 进入相关需要被拦截的方法,aop调用getTransaction, 该方法检查ThreadLocal 是否已经绑定了Transaction ,如果没有就直接new 一个Transaction,并设置connection 和其它初始参数。 2.doCommit doRol 阅读全文
posted @ 2019-04-04 14:55 jean zhang 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 在学习分布式事务的过程中会遇到以下关键名词: 相关名词: XA :XA规范的目的是允许多个资源(如数据库,应用服务器,消息队列,等等)在同一事务中访问,这样可以使ACID属性跨越应用程序而保持有效。XA使用两阶段提交来保证所有资源同时提交或回滚任何特定的事务。 JTA: Java事务API(Java 阅读全文
posted @ 2019-04-04 11:51 jean zhang 阅读(4923) 评论(0) 推荐(0) 编辑