12 2020 档案
摘要:1、前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种
阅读全文
摘要:众所周知,JDK提供了AtomicInteger保证对数字的操作是线程安全的,线程安全我首先想到了synchronized和Lock,但是这种方式又有一个名字,叫做互斥锁,一次只能有一个持有锁的线程进入,再加上还有不同线程争夺锁这个机制,效率比较低,所以又称“悲观锁”。 但是相应的有了乐观锁的概念,
阅读全文
摘要:1.Eureka服务端 Eureka服务端的配置application.yml: server: port: 9501 eureka: instance: hostname: 127.0.0.1 client: registerWithEureka: false fetchRegistry: fal
阅读全文
摘要:共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,
阅读全文
摘要:1. Collection接口 List关注事物的索引列表 ArrayList:可以理解为一个可增长的数组,提供快速迭代和随机访问的能力。 LinkedList:可以理解为一个双链表,提供快速插入删除的能力。 Vector:是线程安全版本的ArrayList,但是性能低。 Collection结构图
阅读全文
摘要:为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream
阅读全文
摘要:转载地址:http://www.cnblogs.com/guiblog/p/7787569.html 一、转换 StringUtils中涉及大小写转换以及判断字符串大小写的方法如下: 1)StringUtils.capitalize(String str) 2)StringUtils.uncapit
阅读全文
摘要:背景介绍 @Version是jpa里提供的一个注解,其作用是用于实现乐观锁。在JPA的帮助下实现乐观锁十分简单,只需将我们的一个java的entity加上一个由@version修饰的字段即可。然后我们每次去对这个entity进行更新操作的时候,JPA就会去比较这个version并且在操作成功之后自动
阅读全文