- 博客(9)
- 资源 (63)
- 收藏
- 关注
原创 多线程实现项目初始化完成大规模数据写入redis缓存
**项目中,经常碰见需要在项目初始化时完成从mysql的数据写入到缓存如redis中的操作,例如ssm架构项目中,需要某个类实现一个initializeBean的接口,在这个类里面完成初始化的操作,将mysql的数据写到redis或其他缓存即可。**说起来倒不难,但是真正执行的时候要考虑的问题点却很多,比如说,如果你的数据量是百万级甚至千万级的,单纯是项目初始化这个过程可能就要花费很久,可能你...
2019-02-27 10:42:57 49920
原创 java归并排序
和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有...
2019-02-22 23:54:25 7407 1
原创 java优先级队列使用
优先级队列是比栈和队列更专用的结构,在多数情况下都非常有用。优先级队列像普通队列一样,有一个队头和队尾,并且也是从队头移除数据。优先级队列中,数据按关键词有序排列,插入新数据的时候,会自动插入到合适的位置保证队列有序。举个例子来说,一组整型数,如果使用优先级队列的话,不管队列之前放入的数据如何,后面添加进去的数据总会被按照升序或者降序排列,当然这个只是优先级队列最基本的使用,在实际生产中可能有...
2019-02-21 21:40:11 9512
原创 阻塞和非阻塞队列下两种生产者消费者实现
队列可分为两种,一种是阻塞队列,一种是非阻塞队列。阻塞队列和非阻塞队列的区别:阻塞队列可以阻塞,非阻塞队列不能阻塞,只能使用队列wait(),notify()进行队列消息传送。而阻塞队列当队列里面没有值时,会阻塞直到有值输入。输入也一样,当队列满的时候,会阻塞,直到队列不为空。自从Java 1.5之后,在java.util.concurrent包下提供了若干个阻塞队列,主要有以下几个:Arr...
2019-02-21 20:52:38 21385
原创 java实现单词或字符串反转
最近抽空研究java数据结构发现栈和队列的特殊用处,比如像实现单词或字符串反转这一个功能,传统的做法是,将单词切分成一个个字符,然后重新组装成一个新的单词,如果用栈来实现是不是也可以做呢?思考一下栈的结构可以知道,栈是先进后出的数据结构,我们设想将单词切成一个个字符后入栈,取出来的时候不就是最后放入的那个字符吗?利用这一思路来实现一下上述的猜想,其实代码实现并不难,下面直接贴上两种实现方式的代码...
2019-02-21 19:44:53 3066 1
原创 java排序算法之希尔排序
希尔排序相对插入排序来说更加高效,是时间复杂度突破T(n*n)的另一种高效的简单排序,希尔排序的执行流程可描述为: 一组无序的数列,选择一个增量,即gap = arr.length/2,以此增量为标的,进行第一趟数据分组与排序,然后缩小增量,继续以gap = gap/2的方式进行分组和排序, 每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入...
2019-02-13 22:47:00 6848
原创 java排序算法之插入排序
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。插入排序的大体执行步骤如下:从第一个元素开始,该元素...
2019-02-12 21:52:21 7080
原创 java排序算法之选择排序
选择排序是表面最稳定的排序算法之一,因为无论什么数据进去,其时间复杂度都是O(n*n),所以如果你的数据规模不大的话,可以考虑使用选择排序,因为它是基于内存排序的算法,速度很快,它的工作原理是:在未排序的序列中找到最小(最大)的元素,放在序列的起始位置,然后再从剩余序列中继续寻找最小最大元素,放到已排序的元素末尾,以此类推,直到所有的元素都排序完毕;原理很好理解,下面就来看具体的代码实现,/...
2019-02-12 17:20:25 7076
原创 java排序算法之冒泡排序
冒泡排序是java十大排序算法中的基础算法,了解其实现原理很有必要,下面就来说说冒泡排序,其实现代码并不复杂,主要是弄清楚执行的流程,一、基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最...
2019-02-12 16:41:52 6949
spring aop实现接口参数变更前后对比和日志记录
2024-05-12
springcloud集成skywalking实现全链路追踪的完整代码
2024-01-07
springboot对接skywalking详解
2023-12-31
spring webflux使用的详细代码
2023-10-26
springboot适配多数据源,多类型数据库代码
2023-07-01
springboot通用限流代码
2023-07-01
springcloud同时整合dubbo与openfeign
2023-05-20
springboot整合sharding-jdbc完整代码
2023-05-14
springboot整合mongodb changestream代码
2022-02-23
SSO案例源码.zip
2021-06-16
fastjson与springboot整合.zip
2021-06-16
spring-IOC代码
2021-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人