- 博客(11)
- 问答 (3)
- 收藏
- 关注
原创 ConcurrentHashMap如何实现高并发性的
1)利用锁的分段,默认16个锁共同维护整个ConcurrentHashMap,使一个写线程不会持有整个ConcurrentHashMap的锁,降低了持有锁的频率,大大的提高了并发性。2)volatile变量的使用,根据先行发生原则:对于同一个volatile变量,一个写操作会先行发生后面的读操作,每一次,写操作都会队volatile变量的count进行改写,每次读操作都会先行访问这个count
2016-06-24 20:00:32 1019
原创 位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)
题目描述:Given an array of integers, every element appears three times except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it
2016-06-21 15:54:22 932
原创 字符串-Reverse Words in a String(翻转字符串)
问题描述:Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".Update (2015-02-12):For C programmers: Try to solve it
2016-06-20 11:00:47 439
原创 减少锁的竞争
1)通过使用synchronized代码块儿代替在方法上添加synchronized来保护共享状态的方法,减小锁的范围,减少线程持有锁的时间。2)锁的分解,例如一个类有两个共享状态,一个是人,一个是钱,分别提供两个锁,分别对应这两个共享状态,那么即可减少持有锁的频率。3)锁的分解的进一步扩展那就是锁的分段,例如共享状态人是使用HashTable保存那么程序性能因为经常持有锁二成为性能瓶颈,
2016-06-18 21:13:18 788
原创 java并发编程实战笔记-死锁
死锁的定义:按书上所说,死锁就是自己拥有其他人需要的资源,同时又在等待其他人已经拥有的资源,并且每个人在获得所需要的资源之前都不会放弃自己已经有的资源。死锁的类型:1.简单的顺序死锁:public class die1 { public Object lock1 = new Object(); public Object lock2 = new Object(); pu
2016-06-18 00:17:00 579
转载 java常用的包
转载:http://blog.csdn.net/wangloveall/article/details/8029157Java采用包结构来组织和管理类和接口文件。本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的。若是离开它,还真不能做事情了。 第一个包:java.lang包。 阿情说:该包提供了Java语
2016-06-12 20:23:55 354
原创 读写锁ReentrantReadWriteLock
实例:public class ReentrantReadWriteLockTest { private static ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); //private static ReentrantLock lock = new ReentrantLock(); private static R
2016-06-07 21:53:50 375
原创 显式锁ReentrantLock
使用:1)普通上锁和释放锁:lock.lock(); try{ }finally{ lock.unlock(); }2)定时的轮询,如果指定时间没有得到锁的话就会放弃,例子中的线程就会提前结束:public class TestTryLock { static AtomicInteger ii = new AtomicInteger(0); static int
2016-06-07 21:25:38 312
原创 数组-Kth Largest Element in an Array(找出第K大的数)
题目描述;Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.For example,Given [3,2,1,5,6,4] and k = 2,
2016-06-04 14:49:35 417
转载 Java:String、StringBuffer和StringBuilder的区别
1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plain copy/** The value is used for character storage. */ private final char
2016-06-01 15:20:22 345
转载 synchronized 修饰在 static方法和 非static方法的区别
【问题描述】关于Java中synchronized 用在实例方法和对象方法上面的区别【问题分析】大家都知道,在Java中,synchronized 是用来表示同步的,我们可以synchronized 来修饰一个方法(实例方法和类方法---注:不知道这样叫准确不准确,大家理解我的意识就行了)。也可以synchronized 来修饰方法里面的一个语句块。修饰实例方法:[
2016-06-01 14:35:22 484
空空如也
在哪里可以找到java web的项目代码并可以运行来学习?
2015-10-31
ubuntu编译openjdk7正确教程?应该注意什么?
2015-10-05
在ubuntu上编译jdk错误
2015-10-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人