Spring AOP动态代理CGLIB、JDK的基本原理

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和……

linux环境vim命令(编辑器)的使用

vim编辑器是linux环境下修改文件必备神器,你真的会用吗,进入输入i命令,进入编辑模式,然后上下飞快移动光标,鼠标选中目标复制粘贴,这样操作不方便也很慢,而且有点低(low)。如果现在需要定位到文档的某一行,你是否要去挨行去数,如果让你把文档中所有a修改为b,估计你会当场吐血身亡,所以下面的命令也许就是你想要的。

死磕Java并发:J.U.C之重入锁ReentrantLock

ReentrantLock还提供了公平锁也非公平锁的选择,构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁与非公平锁的区别在于公平锁的锁获取是有顺序的。但是公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量……

一起谈谈设计模式(零):静态代理、动态代理,以及动态代理的调用说明

代理模式分为静态代理和动态代理两种方式,静态代理是在开发的时候就写好代理的过程,并且代理类要和目标类实现同一个接口。而动态代理是代理类通过实现InvocationHandler接口完成,在运行期间动态的构建代理对象,在动态代理的实现过程中还有另一个更为重要的类Proxy,准确的来说,Proxy负责生成代理对象,而InvocationHandler是根据生成的代理对象……

原子操作CAS和相关原子操作类的实现原理

众所周知锁有两种:乐观锁与悲观锁。独占锁是一种悲观锁,而synchronized就是一种独占锁,synchronized 会导致其它所有未持有锁的线程阻塞,而等待持有锁的线程释放锁。所谓乐观锁就是,每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,直到成功为止。而乐观锁用到的机制就是CAS。

博客建站(一):centos6.9+git+nvm+nodejs+hexo 阿里云安装hexo踩坑篇

这个安装过程无限踩坑,找了好多博客技术文档,基本都是如出一辙,有的甚至直接复制粘贴,还有就是只写成功过程,里面遇到的问题一个都不提,让人很头疼。关于官方文档,之前在windows系统上参考官方文档安装成功,后来准备发布到阿里云上的时候,在Linux系统下一直没有安装成功,是因为官方文档的命令有问题,这个真心尴尬。有时候官方文档也是个坑……

java基础位运算基本原理分析

位运算是编程语言的基础,在看源码的时候会看到很多位运算代码,但是在项目代码中很少会看到位运算。因为应用代码中,有很多判断和计算都可以直接用数值的判断和计算完成,没有必要去用位运算,以至于这些基础的东西慢慢用的越来越少,慢慢也就忘了。导致的一个结果就是看代码很费力,因为大量的位运算逻辑,看不懂。作为程序员感觉数据位运算是非常必要……

项目发布成功、失败,Java项目来实现邮件通知相关人员,实时反馈提醒信息

在开发的流程中必须涉及的项目的部署发布,这个过程也肯定会有成功、失败,作为开发能够实时的得到反馈是很有必要的,在不同的公司里采用的提醒方式不同。在说明下面的方案前,需要首先说明一下基本应用的场景。纯后台应用,现在项目基本都是前后端分离,因为一个前端服务可能会对应多个后端服务的支持,随着整个开发大环境的完善和技术的成熟,之前那种前后端耦合……

项目上线,旧数据需要修改,写SQL太麻烦,看Excel配合简单SQL的强大功能

A项目前期上线后有两张表,第一张表里面有订单的基本信息(重点:没有订单完成时间),第二张表记录订单的流程节点信息,如买车这个订单,走的流程节点有交定金、交首付、贷款申请、贷款审批……取车,每个节点都有开始时间和完成时间记录,当所有节点都完成后,会自动将订单的状态更新为完成状态。后期迭代需求生成报表,需要统计订单整个执行流程的时间 ……