![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其它笔记
大猫的Java笔记(公众号同号)
这个作者很懒,什么都没留下…
展开
-
MapStruct最详细的使用教程,别在用BeanUtils.copyProperties ()
1.各大培训机构,价格10万的视频 Java架构师视频免费送。2.各种电子书籍经典Java书籍免费送3.关注下方我的公众号进行免费获取。4.个人技术总结免费赠送1.为什么使用MapStruct在开发中你可曾遇到如下这样的问题?MyBtatis从数据库中查询的数据映射到domain的实体类上,然后有时候需要将domain的实体类映射给前端的VO类,用于展示。如下所示,假如Student是domain,而给前端展示的为StudentVO。...原创 2020-11-26 10:03:30 · 23367 阅读 · 9 评论 -
从源码分析ArrayList和Vector的区别
1.Vector和ArrayList可能你对ArrayList平时耳熟能详,但是你可能却不知道Vector,Vector其实和ArrayList的用法基本一致,不同的在于Vector是线程安全的而ArrayList非线程安全。Vector之所以线程安全是因为在实现的方法上加了synchronized修饰符。ArrayList和Vector的类继承和实现图如下 2.ArrayList和Vector的add方法对比...原创 2020-09-11 16:05:44 · 124 阅读 · 0 评论 -
CountDownLatch源码分析
1.CountDownLatch的用法CountDownLatch源码分析之前,首先看一看CountDownLatch的用法,我们通过一段代码来说明CountDownLatch的基本用法,代码如下。CountDownLatch可以指定一个count,例如我们代码中指定为10,然后启动了10个线程,线程就是执行CountDownLatch的countDown方法,每执行一次,count就会减1,直到为0的时候下面countDown的await方法才会释放主线...原创 2020-09-11 16:00:04 · 367 阅读 · 0 评论 -
ReentrantLock的lock与unLock方法源码分析
1.lock方法源码前面已经说过了ReentrantLock的基本用法,下面我们通过源码对ReentrantLock进行分析,首先写一个测试类,作用是在debug的时候好进行源码分析;测试类代码如下,使用两个线程模拟加锁过程,若第一个线程拿到锁以后实际上第二个线程时拿不到的,没有unlock进行释放锁。当我们进行debug进入到lock方法的时候,实际上我们可以看到调用的是NonfairSync的lock方法,而NonfairSync究竟是一个什么呢?...原创 2020-09-11 15:51:39 · 350 阅读 · 0 评论 -
只用过synchronized却不知ReentrantLock
1.ReentrantLock是什么在说ReentrantLock之前,必须先说一说锁。锁是为了线程安全而诞生的,我们常用的锁就是synchronized,通过下面程序看一下什么叫锁,锁有什么用。下面我们模拟一下数据库主键自增,假如我们现在有10个线程,每个线程对count进行自增,确保主键的唯一性,而事实却是当只有一个线程时却是没有问题,当多线程时却有着无法预估的错误。可以看出来此时已经导致生成的主键重复了,原因是当线程在做自增时,同时存在其他线程也...原创 2020-09-11 15:43:39 · 107 阅读 · 0 评论 -
Gradle的简洁之美,Gradle搭建SpringBoot+DataJpa项目
1.什么是GradleGradle是一个开源的构建自动化工具,专注于灵活性和性能。Gradle构建脚本使用Groovy或KotlinDSL编写。他和Maven一样都能帮我们管理jar包。2.Maven对比Gradle1.Gradle使用的是Groovy脚本语言进行jar包依赖,Maven使用的是XML的。...原创 2019-08-27 00:00:00 · 416 阅读 · 1 评论 -
Springboot集成Spring Data Jpa
Springboot集成SpringDataJpa1.首先在IDEA中创建Maven项目,然后引入如下jar包2.构建springboot的启动类1.首先在IDEA中创建Maven项目,然后引入如下jar包2.构建springboot的启动类package springbootdemo;import org.springframework.boot.SpringApplication;...原创 2019-07-03 09:41:56 · 144 阅读 · 1 评论