- 博客(11)
- 收藏
- 关注
原创 RabbitMQ+Redis集群+Quartz实现简单高并发秒杀
花了两天时间实现了一个使用rabbitMQ队列和redis集群存取数据以及使用Quartz触发添加秒杀商品。 这一块小功能很早就想做的,自从自学了redis的命令,发现了expire能够设置自动消亡的时候,我就已经开始蠢蠢欲动了,接着在接触rabbitMQ工作模式(多个消费者争抢数据)的时候,我已经下决心要实现秒杀了。 上个项目是9月底和朋友做完的,一个高并发分布式的项目,开6台centOS虚拟
2017-11-27 23:25:02 13908 7
原创 HashMap初始值、排序问题以及存储原理
HashMap的初始值: hashmap有多个构造方法,HashMap()HashMap(int initCapacity)HashMap(int initCapacity,float loadFactor)第一个无参构造new出来的就是默认大小initCapacity为16个键值对,加载因子loadFactor为0.75的hashmap,即put到13时则将capacity翻倍。所以默认
2017-11-03 23:36:47 2438
原创 Vector与ArrayList和LinkedList区别(简略)
Vector,ArrayList与linkedList都是List的实现类Vector与ArrayList类似,内部使用一个数组进行数据的存储,支持固定顺序,能够快速随机访问。不同点一:Vector是线程安全的,ArrayList不是,所以写入速度赶不上ArrayList;不同点二:如果存储空间不足,ArrayList是增加50%,而Vector是直接翻倍。 Vector与LinkedList的区
2017-11-03 23:25:12 627
原创 对List元素迭代删除的注意事项以及三个方法
**有一个List,里面存储1-100000的数,,写出几种删除是偶数的元素的代码**第一印象是找到list中偶数,对其直接删除for(int num:list){ if(num%2==0) list.remove(num); }结果就报了concurrentModificationException,并发修改异常 我们都知道,使用for循环遍历集合,内
2017-11-03 19:50:47 2368
原创 java设计模式之装饰模式
装饰模式是一种结构型模式,这种模式创建了一个装饰类,用来包装原有的类,在原有类的方法签名不变的情况下,增加额外的功能。 举个例子,BufferedReader br=new BufferedReader(new InputStreamReader(new FileinputStream(file)));InputStreamReader本身有read()方法可以读取单个字符,这样在有的场景下不是很
2017-08-08 09:59:15 414
原创 java设计模式之单例模式
单例模式是java设计模式中最简单却最常用的一种设计模式其含义就是在全局过程中只存在一个唯一实例 即要求:不允许外界创建本类实例对象; 不允许外界修改本类唯一实例对象;通过本类提供的方法去获取本类唯一的实例对象。根据上述三点要求,可以以以下三点措施应对:将本类构造函数私有化;在本类中创建本类“私有”,“静态”实例对象; 创建“公有”,“静态”方法返回本类唯一静态实例对象。举个例子,
2017-08-07 22:35:03 375
原创 使用递归实现买汽水(华为面试题)
今天老范问了我一个问题 问题: 一个人买汽水,一块钱一瓶汽水,三个瓶盖可以换一瓶汽水,两个空瓶可以换一瓶汽水 问20块钱可以买多少汽水? 注意:使用递归这一题乍一看,哎哟,这么简单,能买几瓶?恩。。 五瓶! 为啥啊?多了我喝不完啊!老范说,喝不完关你屁事,又不是给你喝哦哦哦,那没事儿了,我想想。 在知道自己的人生安全得到了保障之后,我冷静下来仔细思考了如何用递归实现这个问题
2017-07-29 09:39:55 10974 8
原创 HashSet如何保证元素唯一性?
Collection中的Set分为HashSet和TreeSet Set中的元素是无序的,即存入和取出的顺序不一定一致,元素不可以重复。HashSet的底层数据结构是哈希表,元素存入的顺序是按照哈希值来排序的。 那么HashSet是如何保证元素唯一性的呢?首先我们先直观地看看哈希值的样子 class Demo{}public class HashSetTest { public stat
2017-02-24 14:32:18 5085 2
原创 Java停止线程及有锁时停止方法
当我们刚学完Thread一个线程t1之后,迫不及待地键入t1.start()开始启动线程,肯定思考过如何将这个线程停下来其实原理只有一个,那就是让run方法结束要知道开启多线程运行,其运行代码通常都是循环结构,只要控制住循环就可以让run方法结合苏,也就是线程结束比如写个代码class StopThread implements Runnable{ public synchroniz
2017-01-07 16:15:51 1326 1
原创 多线程锁升级解决方案(JDK1.5及以后)
在JDK1.5发布之前,我们要进行同步多线程,要使用Synchronized以及 wait notify 等对象,不够形象如以下这个模拟生产和消费的多线程程序class Resource{ private String name; private int count=1; private boolean flag=false; public synchroni
2017-01-06 18:36:56 575
原创 Java多线程Runnable实现方法
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-01-05 11:46:53 717
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人