自定义博客皮肤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)
  • 收藏
  • 关注

原创 设计模式学习-单例模式

今天学习了单例模式,这里做一下笔记。 单例模式:顾名思义就是一个类只有一个实例(要么不实例化,要么只实例化一次),使用该类的实例时,不能直接通过new来实例化该类。 代码如下:public class Singleton { private static Singleton instance; private Singleton(){}//私有无参构造方法,保证无法从外部通过new获

2016-07-30 16:22:08 512

原创 归并排序

归并排序也是一种效率比较高的排序方法,主要思想是:将数组分为两个部分,如果两个部分都是有序的,那么将两个部分合并即可。如何使得两个部分都有序呢,那就是将每个部分再分成两个部分…直到每个部分只剩下一个元素或者只有该部分只有一个元素,然后再执行合并操作,上述分割操作明显是一个递归的过程。 合并操作代码如下://合并,数组的两边已排好序 public void merge(int[] a, int st

2016-07-19 22:42:09 474

原创 快速排序

这里介绍快速排序的两种写法,其中第二种方法更通用,其中的partition方法更是在很多地方可以应用。 快速排序是一个递归的过程,每次都是将需要排序的序列分为两个部分。 第一种写法:public void quickSort(int[] arr,int left,int right) { if(left >= right)//递归结束条件 return;

2016-07-19 16:07:50 542

原创 冒泡排序

记录一下冒泡排序的写法。public void bubbleSort(int[] arr) { int n = arr.length; for(int i = 0;i<n-1;i++) {//比较的趟数 int flag = 0;//标记是否有交换 for(int j = 0;j<n-1-i;j++) {//每趟比较次数

2016-07-19 15:52:32 335

原创 CountDownLatch和join两种方式实现多线程并行处理

上一篇博客主要介绍了如何使用Semaphore串行打印ABC,这一篇将介绍如何并行打印ABC,功能如下: 有三个线程,线程1打印A,线程2打印B,线程3打印C,这里假设是必须做完A、B、C,才能根据A、B、C的结果去处理D,其中A、B、C可以并行执行,互不影响。这种情况很常见,比如我们泡茶,需要烧开水、准备茶叶、清洗餐具,最后是泡茶,可以将烧开水、准备茶叶、清洗餐具看成事件A、B、C,将最后的泡茶

2016-07-19 14:59:55 1632

原创 使用信号量Semaphore循环打印ABC

最近学习了java的并发相关知识,了解了一下java.util.concurrent包,今天介绍的是concurrent包下的Semaphore,又称为信号量。 信号量主要用来控制同时访问同一资源的线程 数量,用jdk api官方的话说就是: Semaphores are often used to restrict the number of threads than can access s

2016-07-19 14:14:35 2997

原创 二叉排序树中查找元素的递归和非递归写法

上一篇介绍了二分查找的递归和非递归写法,这一篇文章主要记录二叉排序树中查找元素的递归和非递归写法。二叉排序树又称为二叉查找树,也称为二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的

2016-07-18 18:35:47 7753

原创 二分查找的递归和非递归写法

二分查找是针对有序序列来说的,在有序序列中使用二分查找能大大提高查找效率,这里记录一下二分查找的递归和非递归写法。非递归写法:public int binarySearch(int[] a, int target) { int len = a.length; if(len == 0) return -1; int low = 0

2016-07-18 18:21:44 3386

原创 redis实现消息队列

消息队列,通俗点说就是消息传输过程中暂时保存消息的容器,可以在不同平台、不同语言的应用之间传输数据,并且可以异步地实现数据写入,在处理大并发问题时能起到很好的效果。 说一下我现在使用消息队列的场景:我的系统需要实时接收来自客户端的请求(周期性请求),并且将请求的数据保存在数据库,每次请求的数据量很小,但是由于需要频繁操作数据库,所以系统遭遇到性能瓶颈。原先的想法是直接将这些数据保存在redis中,

2016-07-13 16:19:28 8943 1

空空如也

空空如也

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

TA关注的人

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