- 浏览: 26559 次
- 性别:
- 来自: 广州
-
最新评论
-
liujiahaogood:
……搞错了,你是对的 基德KID.1412 写道不错,,但是我 ...
记腾讯创新班面试 -
gzhu_101majia:
基德KID.1412 写道哎……搞错了,你是对的
从第1级开 ...
记腾讯创新班面试 -
基德KID.1412:
哎……搞错了,你是对的
从第1级开始,result【0】 = ...
记腾讯创新班面试 -
基德KID.1412:
从0级开始……result【1】 = 1, result【2】 ...
记腾讯创新班面试 -
基德KID.1412:
不错,,但是我有个问题
问题三:
result【2】=2,而 ...
记腾讯创新班面试
文章列表
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码,现在总算理解ConcurrentHashMap实现机制了,其实现之精巧,令人叹服,与大家共享之。
实现原理
锁分离 (Lock Stripping)
Concu ...
一种O(n)的办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必然重合,反之亦然):
关于这个解法最形象的比喻就是在操场当中跑步,速度快的会把速度慢的扣圈
可以证明,p2追赶上p1的时 ...
最长递增子序列问题的求解
最长递增子序列问题是一个很基本、较常见的小问题,但这个问题的求解方法却并不那么显而易见,需要较深入的思考和较好的算法素养才能得出良好的算法。由于这个问题能运用学过的基本的算 ...
基本想法有两个:
1.
算法如下:根据快速排序划分的思想
(1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数
(2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分
(3) 返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,d2]两个区间,取(b2,d2]区间。如果个数不够,继续(3)操作,如果个数超过100的就重复1操作,直到最后右边只有100个数为止。
2.先取出前100个数,维护一个100个数的最小堆,遍历一遍剩余的元素,在此过程中 ...
1、选取最适用的字段属性
MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是 BIGIN来定义整型字段。
另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去 ...
f(equipmentList.size()!=0){
String [] equipIdArray =new String[3];
for (int i = 0; i < equipmentList.size(); i++) {
Element equipment = (Element)equipmentList.get(i);
String equipCode = equipment.element ...