JDK5.0之前,用java实现生产者和消费者的唯一方式就是使用synchronized内置锁和wait/notify条件通知机制。JDK5.0之后提供了显示锁Lock和条件队列Condition,与内置锁和内置条件队列相对应,但是显示的锁和条件队列,功能更强大,更灵活。此外JDK5.0之后还提供了大量很有用的并发工具类,如BlockingQueue等,基于这些数据结构,能够方便、快速、高效的构建...
分类:
其他好文 时间:
2014-08-07 23:11:55
阅读次数:
450
采用算法导论上的实现方式,用java实现。快排算法核心的部分便是partition过程,这里的partition采取最后一个元素作为pivot,i和j两个指针都从头向后扫描,如下图所示,数组被分为4个部分。算法执行的过程:代码实现:import java.util.Arrays;public cla...
分类:
其他好文 时间:
2014-08-07 18:05:30
阅读次数:
196
//单链表反序
public class SingleLinkedListReverse {
public static void main(String[] args) {
Node head = new Node(0);
Node temp = null;
Node cur = null;
for (int i = 1; i <= 10; i++) {
tem...
分类:
编程语言 时间:
2014-08-07 13:10:20
阅读次数:
256
二叉查找树BST----java实现
1.二叉查找树简介
二叉查找树又名二叉搜索树和二叉排序树。性质如下:
在二叉查找树中:
(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(03) 任意节点的左、右子树也分别为二叉查找树。
(04) 没有键值相等的节点(no dupl...
分类:
编程语言 时间:
2014-08-07 03:07:38
阅读次数:
418
public class Singleton {
private
static Singleton intance;
private Singleton() {}
public
static Singleton getInstance() {
/*
* 一开始多线程进来,遇到锁,一个线程进去,是为空,new对象; 后续线程进入,不为空,不操作;最后直接...
分类:
编程语言 时间:
2014-08-06 23:13:12
阅读次数:
271
上节已经介绍了SSL/TLS协议的通信模式,而对于这些底层协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展——JSSE,它包含了实现Internet安全通信的一系列包的集合,是SSL和TLS的纯Java实现,同时它是一个开放的标准,每个公司都可以自己实现JSSE,通过它可以透明地提供数据加密、服务器认证、信息完整性等功能...
分类:
编程语言 时间:
2014-08-06 23:07:32
阅读次数:
421
LeetCode刷了41道题了,流程是按照戴兄的小书,很多不会的是参考Kim姐的代码,自己用Java抠腚的。 前几天做到了LRU Cache: C++的实现方法大同小异,大都用的是一个list加一个hash,hash中存储list节点地址,每次get从hash中寻key,有则将list相应节...
分类:
编程语言 时间:
2014-08-06 22:42:12
阅读次数:
291
package com.peter.app.hello.heapsort;/** * heap sort * @author Peter.Yu * */public class HeapSort { public static int COUNT = 0; /** * build heap * @param a * @param size */ public static void buildHe...
分类:
编程语言 时间:
2014-08-06 19:27:52
阅读次数:
269
相关系数的值介于–1与+1之间,即–1≤r≤+1。其性质如下:当r>0时,表示两变量正相关,r rating_map = new HashMap(); /** * @param args */ public static void main(String[] args) { Simil...
分类:
编程语言 时间:
2014-08-06 18:55:31
阅读次数:
285
自己用java 实现了大字符串整数的加减乘除和求余运算,加减法的算法是模拟手工笔算的计算过程,除法就是从最高位不停的减操作,乘法的算法 :遍历一个数的各个位数以及他所在位置,另一个数根据这个数的位置末位添n个0,然后累加次数为这个位置数的数值原创代码如下:public class Demo6 { ....
分类:
编程语言 时间:
2014-08-05 18:51:13
阅读次数:
396