- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 线程安全类:CopyOnWriteArrayList是如何保证线程安全的?
线程安全一直是编程方面最为注意的一个点,今天就来聊聊关于线程安全类CopyOnWriteArrayList是如何实现线程安全的。关于保证线程安全,最常规的做法也就是加锁,但是加锁势必会导致性能方面的下降,这是无法避免的,那么有没有什么好的办法在尽可能保证性能的情况下加锁呢,接下来看看CopyOnWriteArrayList源码。通过源码发现CopyOnWriteArrayList底层也是通过一...
2020-03-29 23:28:27 1659
原创 升级版懒汉模式:兼顾线程安全与效率
package com.zc.study;/** * @author zc * 懒汉模式2.0:不使用锁的情况下,保证单例模式的线程安全 * 实现思路: * 1、将构造方法设置为私有方法,保证无法通过外部new出SingletonDemo对象 * 2、通过静态内部类的特性,即不调用静态内部类中的属性或方法时,静态类不会被加载,实例化一个SingletonDemo对象,并用static...
2020-03-29 22:52:03 936
原创 读写锁
package com.zc.study;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.Lock;import java.util...
2020-03-27 10:43:44 88
原创 重入锁
package com.zc.study;import java.util.concurrent.locks.ReentrantLock;/** * @author zc * ReentrantLock:重入锁demo * * 重入锁的概念: * 即表示可重新反复进入的锁,但仅限于当前已经获取锁的线程; * * 重入锁作用场景: * 当递归方法中存在重入...
2020-03-27 09:17:53 83
原创 泛型类简述
package com.zc.study;/** * @author zc * 泛型类Demo */public class GenericsDemo { public static void main(String[] args) { /**实例化泛型类*/ //实例化Generics泛型类 Generics<Intege...
2020-03-27 01:02:32 103
原创 插入排序
package com.zc.study;import java.lang.reflect.Array;import java.util.Arrays;/** * @author zc * 插入排序 */public class InsertSortDemo { public static void main(String[] args) { int[] ...
2020-03-25 04:08:54 79
原创 选择排序
package com.zc.study;import java.util.Arrays;/** * @author zc * 选择排序实现 */public class ChoiceSortDemo { public static void main(String[] args) { int[] arr = {10,200,8,100,30,66,87,2...
2020-03-25 03:30:16 50
原创 KMP算法实现
KMP算法核心思想就是跳过已经对比过的字符,不进行重复对比,在代码中比较难以理解的其实就是下面这段代码://源字符串:str1 匹配字符串:str2while (j > 0 && str1.charAt(i) != str2.charAt(j)) { j = next[j - 1];}上面这段代码是借助了匹配表(next数组)所实现的,同时这也...
2020-03-25 03:03:16 113
原创 链式存储与顺序存储的区别
链式存储于顺序存储的区别数据的存储方式一般有两种(这里我们说的存储是指存在内存中):链式存储和顺序存储。接下来解析两者的区别顺序存储顺序存储是指在内存中开辟连续的存储空间来存放数据,比较有代表性的就是数组以及ArrayList集合这种结构的存储方式都是使用的顺序存储来存储元素对象的;而ArrayList的底层也是通过数组来存储数据元素的,所以我们可以通过数组来观察顺序存储的优缺点。优点:查...
2020-03-19 00:54:31 11734 2
原创 模拟数据结构:二叉树
package com.zc.study;/** * @author zc * 二叉树模拟 * 包含了:二叉树的增删改查功能 */public class BinaryTreeDemo { public static void main(String[] args) { Hero h1 = new Hero(1,"鸣人"); Hero h2 =...
2020-03-15 17:12:15 164
使用System.getProperty(line.separator).md
2019-12-24
mybatisSQL映射标签的小技巧.md
2019-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人