自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

这是本人在进行使用递归替换HTML文件中的图片内容时,所遇到的问题解决方案,喜欢能够帮到大家,让自己懂得东西越来愈多,做更多的分享

2019-12-24

mybatisSQL映射标签的小技巧.md

掌握更多的mybatis的使用方式,熟悉更多的小技巧,这是自己在学习工程中的一个总结,也希望将自己的经验分享出去,帮助到更多有需要的人,如果有不足也请加以指正

2019-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除