
java
蚂蚁打dota
做条咸鱼
展开
-
ThreadLocal用法和原理
今天看shiro相关的内容,读到了关于ThreadLocal的代码。感觉跟之前的理解有点差别,记录一下,先把看懂的记录一下。ThreadLocal最常用的两个方法:set(T value), T get()public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = g...原创 2018-11-30 17:57:58 · 210 阅读 · 0 评论 -
CAS机制中的ABA问题
在进行CAS操作的时候,会检查值有没有发生变化。如果没有变化则更新。如果发生变化了,则进行自旋。但是有种情况是,预期的值看似没有变化,但是实际上的确变化了,例如原来的值是A,后来变成了B,最后又变成了A。那么使用CAS机制进行检查时会发现值没有变化,但是实际上值确实发生了变化。解决思路就是利用版本号,每变化一次版本号加一。例如,最开始值是A,版本是1。后来变成了B,版本是2。最后又变成A,...原创 2018-12-14 14:46:17 · 539 阅读 · 1 评论 -
mybatis打印sql语句
参与一个新项目,想通过打印sql的方式去了解表逻辑。spring整合mybatis配置打印sql:1、创建mybatis-config.xml配置文件,加入以下配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Confi...原创 2018-12-28 14:15:57 · 667 阅读 · 0 评论 -
JVM线程状态
在jvm中一共定义了6种线程状态,分别是:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED。在Thread类中体现为下面的代码:public static enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMI...原创 2018-12-18 11:24:22 · 2984 阅读 · 0 评论 -
Non-terminating decimal expansion; no exact representable decimal result
Non-terminating decimal expansion; no exact representable decimal result这种异常是由于用BIgDecimal做divide(除法)运算时除不尽导致。在用divide方法时最好加上其余两个参数,divide的参数如下BigDecimal.divide(BigDecimal divisor, int scale, Ro...原创 2019-01-18 10:07:01 · 356 阅读 · 0 评论 -
spring事务传播机制
spring定义了7中事务传播机制spring事务传播机制 REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED) 支持当前事务,如果没有事务会创建一个新的事务 SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS) 支持当前事务,如果没有事...原创 2019-02-20 18:31:04 · 45726 阅读 · 2 评论 -
cron表达式详解
字符含义字符 意义 * 匹配所有的值。如:在秒的字段域标识每秒 ? 只在日期和星期域中使用。用来指定 "非明确的值" - 指定一个范围。如:“10-12”在小时域意味着“10...原创 2019-02-20 19:04:46 · 1433 阅读 · 1 评论 -
logback基本配置
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <contextName>product-lifecycle-main</contextName> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->...原创 2019-07-19 14:55:14 · 260 阅读 · 0 评论