自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 【算法】-希尔排序

概念 也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 原则 将数据区分成特定间隔的几个小区块,以插入排序法排完区块内的数据后再渐渐减少间隔的距离。 算法演练 代码实现(java) public class ShellSort { public static void main(...

2019-07-06 15:44:34 157 1

原创 Spring 之DI依赖注入

概念 所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利和对象的生命周期的管理过程交由spring框架来处理,从此在开发过程中不在需要关注对象的创建和生命周期的管理,而是在需要的时候由spring框架提供,这个由spring框架管理对象创建和生命周期的机制称之为控制反转。而在创建对象的过程中spring可以依据配置对象的属性进行设置,这个过程称之为依赖注入,也就是DI...

2019-07-30 17:35:33 116

原创 【多线程】-悲观锁和乐观锁

什么是悲观锁与乐观锁? 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲观锁 总是假设最坏的情况,每次取数据时都认为其它线程会修改,所以都会加锁(读锁、写锁、行锁等),当其它线程想要访问数据时,都需要阻塞挂起。可以依靠数据库实现,如行锁、读锁和写锁等,都是...

2019-07-30 16:49:32 153

原创 【多线程】-synchronized和volatile

(1)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,但是synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字在执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。 (2)多线程访问volatile不会发生阻塞,而sy...

2019-07-30 09:42:20 148

原创 【多线程】-线程安全

原因: 当多个线程同时共享,同一个全局变量或静态变量。做写的操作时,可能发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 解决方案: 方式一:内置锁Synchronized Synchronized保证线程原子性,当线程进入方法的时候,自动获取锁,一旦锁被其它线程获取之后,其它的线程就会等待。 方式二:同步方式 1、同步代码块 Synchr...

2019-07-30 09:07:09 119

原创 多线程-sleep和wait的区别

wait和sleep区别 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。 如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wa...

2019-07-28 21:07:19 459

原创 Hashtable、HashMap、TreeMap

Hashtable、HashMap、TreeMap 都是最常见的一些 Map 实现,是以键值对的形式存储和操作数据的容器类型。 同步意味着在一个时间点只能有一个线程可以修改hash表,任何线程在执行HashTable的更新操作前都需要获取对象锁,其他线程需要等带锁的释放。 三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。...

2019-07-21 21:37:58 159

原创 【多线程】-阻塞队列与非阻塞队列

1.阻塞队列和非阻塞队列的区别:阻塞队列可以阻塞,非阻塞队列不能阻塞,只能使用队列wait(),notify()进行队列消息传送。而阻塞队列当队列里面没有值时,会阻塞直到有值输入。输入也一样,当队列满的时候,会阻塞,直到队列不为空。 2.阻塞队列 ArrayBlockingQueue:基于数组实现的一个阻塞队列,在创建ArrayBlockingQueue对象时必须制定容量大小。并且可...

2019-07-14 21:07:58 548

原创 【算法】-堆排序

预备知识 堆排序   堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆   堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时,我们对堆中的结点按层进行编号,...

2019-07-06 16:15:32 130

springcloud视频.txt

每特教育&蚂蚁课堂SpringCloud2.0视频教程公开课的视频、源码、课件word文档等

2019-08-07

空空如也

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

TA关注的人

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