昊方项目持续部署文档

部署方式使用docker简化原有的宿主机手动安装jdk,tomcat,mysql的部署。项目使用Jenkins来持续部署,提供了docker直接部署和docker-compose来管理docker部署两种方式默认使用docker-compose来部署,若想直接使用docker来部署,请将Jenkin

分析aqs源码自记

独占模式请求锁acquire()尝试获取锁tryAcquiretrue=>继续运行false=>执行addWaiter,获取返回的node作为acquireQueued的参数执行acquireQueued(addWaiter())==true=>acquireQueued(addW

JUC

JUCvolatile关键字不具备“互斥性”。不能保证变量的“原子性”内存可见性问题:当多个线程操作共享数据时,彼此不可见先看如下代码,创建一个线程去运行ThreadDemo,在运行时更改flag的值为true,然后在main线程中读取flag的值,如果为true则输出。publicclassTes

apache commons-collections 反序列漏洞分析

在这里只记录下对jdk1.8可用的apachecommons-collections中执行任意类任意执行方法链,实际程序代码与原作者相同,想知道更多分析思路,请参考原文环境jdk1.8commons-collections-3.2完整程序importorg.apache.commons.collec

base64特性导致的不等串解码相同

base64是将原串以三个字符一组,转化成24个二进制位再分成四个字符的编码方式。下图就是将Man字符转为TWFu的过程。在很多时候,其实原字串的长度都不是3的倍数,这时候转出来的二进制位长度必然不是24的整数倍。这时候就需要对二进制位进行补零操作。在6个二进制位都为零的时候,base64中就呈现=
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×