- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 数据库事务理论与实践-snapshot
数据库事务数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。数据库事务性质1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。[1]2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。[1]3、隔离性(Isolation)...
2021-05-22 11:30:58
207
原创 ReentrantReadWriteLock翻译-snapshot
1.使用场景ReentrantReadWriteLocks可用于提高某些集合的并发性。仅当集合预计很大时,读线程比写线程多,并且需要用超过同步开销的开销时,使用ReentrantReadWriteLocks通常是值得的。2.锁降级获取写锁,然后获取读锁,然后释放写锁。但是,从读锁升级到写锁不可能。3.递归调用注意事项此锁最多支持65535个递归写锁和65535读锁。试图超过这些限制会从锁方法抛出{@link Error}异常。4.{@link Condition}支持..
2021-05-18 17:07:37
191
原创 多线程高并发--volatile的使用
1.线程安全3要素:原子性,可见性,禁止指令重排序2.volatile保证线程的可见性,禁止指令重排序3.volatile的一个使用场景:单例的双重检查加锁的实现,不使用volatile时,可能导致单例对象初始化不完整创建对象的过程:package com.test.threadlocal;/** * 创建对象的过程: * 1.在堆里面开辟一块空间创建一个对象,并给变量里面的属性赋初始值,如果是int类型,就会为变量赋值0 * 2.对象的初始化,会把变量的值改为8 *
2021-05-11 16:53:33
220
原创 多线程高并发--synchronize的锁升级
1.偏向锁 (只有一个线程使用资源时,不进行升级;有多个线程抢占资源时,升级为自旋锁)--> 自旋锁(等待的线程达到一定的数量会升级为重量级锁) --> 重量级锁(向操作系统申请的锁)。2.用户级别的锁(偏向锁和自旋锁)。3.操作系统内核级别的锁(重量级锁)。...
2021-05-11 15:57:13
114
原创 多线程高并发--发生异常会释放锁
package com.test.threadlocal;/** * 发生异常会释放锁 * 实验场景:不进行捕获时,t1执行时发生异常,会释放锁,t2线程会执行; * 对异常进行捕获后,t2线程不会执行 */public class ExceptionReleaseLock implements Runnable{ private int count = 0; public void run() { test(); .
2021-05-11 15:40:05
214
原创 java中的引用类型(强软弱虚)-来之尚学堂马士兵
强引用:Object object = new Object();回收object = null;软引用SoftReference<object> m = newSoftReference<object>(new object);SoftReference为强引用,里面的对象为软引用获取软引用的数据m.get();回收heap空间满了,系统会回收垃圾,先回收一次,如果不够,会把软引用干掉工程使用缓存弱引用WeakRefer...
2021-05-08 14:55:46
222
原创 jar包版本升级-was增量部署新旧jar包冲突,删除旧版本依然报错-上线时失败,后续持续更新
错误:was上增量部署项目,jar包冲突解决方案:清理旧版本的jar包的同时需要清理掉was里面的缓存信息,也就是删除was安装目录里面的temp和wastemp的数据,删除前请做好备份
2021-04-20 10:37:17
949
5
原创 彻底解决Could not resolve placeholder --release
1.产生的原因,只看文字也能看懂,可以跳过代码部分if (propVal != null) { propVal = this.parseStringValue(propVal, placeholderResolver, (Set)visitedPlaceholders); result.replace(startIndex, endIndex + this.placeholderSuffix.length.
2021-03-27 11:12:44
10706
1
原创 git客户端从开源中国拉取仓库master分支--创作中
passphrase:上面配置的gitee.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKxHSJ7084RmkJ4YdEi5tngynE8aZe2uEoVVsB/OvYN
2021-03-21 01:15:54
239
原创 通过反射获取注解数据-随便写写,自用
import lombok.Data;import java.lang.annotation.*;import java.lang.reflect.Field;public class GetAnnotationInfoByRefectionDemo { /** * 1.创建了两个注解TableMapper,FieldMapper * 2.创建了类student并加上了TableMapper,FieldMapper注解 * 3.通过反射获取注解数据 .
2021-03-20 20:59:53
175
原创 解决HashMap线程不安全问题-代码来之与尚硅谷周阳
import java.util.HashMap;import java.util.UUID;public class HashMapNoSafeDemo { public static void main(String[] args) { HashMap<String, String> map = new HashMap<String, String>(); for (int i = 0; i < 30; i++) { .
2021-03-18 22:31:08
148
原创 解决HashSet线程不安全问题-代码来之与尚硅谷周阳
import java.util.HashSet;import java.util.UUID;public class HashSetNoSafeDemo { public static void main(String[] args) { HashSet<String> set = new HashSet<String>(); for (int i = 0; i < 30; i++) { new .
2021-03-18 22:25:59
264
原创 解决ArrayList线程不安全问题-代码来之与尚硅谷周阳
import java.util.ArrayList;import java.util.UUID;public class ArrayListNoSafeDemo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < 30; i++) { .
2021-03-18 22:24:00
228
1
原创 ABA问题解决--代码来之尚硅谷周阳
import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent.atomic.AtomicStampedReference;public class ABADemo { static AtomicReference<Integer> atomicReference = new AtomicReference&l.
2021-03-16 23:54:26
236
翻译 No plugin found for prefix 'tomcat7' in the current project 解决
在一个国外的论坛上找到的答案http://tomcat.apache.org/maven-plugin-2.2/(apache官网有介绍)groupId and Mojo name changeSince version 2.0-beta-1 tomcat mojos has been renamed to tomcat6 and tomcat7 with the same goals...
2018-11-01 18:15:50
1983
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人