![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 70
北海~
这个作者很懒,什么都没留下…
展开
-
SpringMVC中使用hibernate-validator的坑
SpringMVC中使用hibernate-validatormaven依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> &l原创 2021-08-24 22:18:06 · 588 阅读 · 0 评论 -
ArrayList源码分析
ArrayList源码分析其继承了AbstractList类,并实现了Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess这些接口其不是线程安全的Vector是List的古老实现类,其是线程安全的一. 构造函数1. 默认构造函数private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = new原创 2021-08-24 22:12:50 · 67 阅读 · 0 评论 -
Java synchronized关键字实践
Java synchronized关键字实践synchronized可以在Java中对某一个对象的实例、某个对象进行上锁。synchronized 关键字最主要的三种使用方式:1.修饰实例方法: 作用于当前对象实例加锁,进入同步代码前要获得 当前对象实例的锁synchronized void method() { //业务代码}2.修饰静态方法: 也就是给当前类加锁,会作用于类的所有对象实例 ,进入同步代码前要获得 当前 class 的锁。因为静态成员不属于任何一个实例对象,是类成员( s原创 2021-08-24 22:12:01 · 119 阅读 · 0 评论 -
Java锁总结
一. 乐观锁与悲观锁1.乐观锁乐观锁不对资源进行加锁,当需要修改资源时,会先保留资源的旧值,然后待到开始修改时,先将现在的至与之前保留的值进行比较,若相等,则说明这个值没有被其他线程修改过,则可以正常修改,若不相等,则说明该资源已经被修改过,则终止修改过程(该过程根据不同的实现执行不同的操作,比如报错或者自动重试)。实现这个过程的算法为CAS算法。CAS算法CAS算法涉及到三个操作数,分别是old,代表需要操作的资源在内存中的原先值,以及current,代表当前内存中的值和val代表将要写入的值。原创 2021-08-24 22:10:58 · 93 阅读 · 0 评论