- 浏览: 125194 次
- 性别:
- 来自: 深圳
最新评论
文章列表
用Java实现几种常用排序算法
- 博客分类:
- 算法
http://blog.csdn.net/dadoneo/article/details/6553143
package al;
import java.util.Arrays;
/**
* 堆排序.
*
* @author chenlb 2008-12-28 下午03:52:53
*/
public class HeapSort {
private static int parentIdx(int childIdx) {
return (childIdx - 1) / 2; // 索引从0开始, 注意childIdx=0时返回0
}
private static int leftChildIdx(int parentIdx) {
r ...
http://blog.csdn.net/a352193394/article/details/7210435
Java:实现栈和队列
- 博客分类:
- 算法
Java:基于LinkedList实现栈和队列
http://zhangjunhd.blog.51cto.com/113473/69912
基于数组实现栈
http://blog.csdn.net/fengyifei11228/article/details/5625961
Java数组实现循环队列
http://blog.csdn.net/microtong/article/details/4626224
ClassLoader小结
- 博客分类:
- JVM
负责装载class文件;这个文件来源可能是压缩包、网络、运行时编译出的或者自动生成的class文件,jvm spec没有规定必须从什么地方加载。
jvm中默认提供了三种系统类加载器:
1)、启动类加载器Bootstrap ClassLoader,负责加载%JAV ...
http://www.yesky.com/334/1951334.shtml
在本例中,将接收客户连接的操作单独由一个线程完成,把接收数据和发送数据的操作由另一个线程完成,这可以提高服务器的并发性能。
负责接收客户连线的线程按照阻塞模式工作,如果收到客户连接,就向selector注册读就绪和写就绪事件,否则进入阻塞状态,直到接收到了客户的连接。负责接收数据和发送数据的线程按照非阻塞模式工作,只有在读就绪和写就绪的事件发生时,才执行相应的接收数据和发送数据操作。
package com.test.socket.nio.thread2;
import java.io.*;
import java.nio.*;
import jav ...
在非阻塞模式下,EchoServer只需要启动一个主线程,就能同时处理3件事:
1,接收客户的连接
2,接收客户发送的数据
3,接收客户发回响应的数据
package com.test.socket.nio.nonblocking;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.SelectionKey;
import j ...
EchoServer采用阻塞模式,用线程池中的工作线程处理每个客户连接。
EchoClient也采用阻塞模式,单线程。
package com.test.socket.nio.blocked;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import ja ...
1,socket编程小例
- 博客分类:
- 网络编程
创建一个EchoServer和一个EchoClient类,EchoServer用于从监听从客户端输入的字符串,当客户端输入"bye"时停止
package com.test.socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
im ...
Semaphore 信号量,就是一个允许实现设置好的令牌。也许有1个,也许有10个或更多。 谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待。 执行完毕,一定要归还(release)令牌,否则令牌会被很快用光,别的线程就无法获得令牌而执行下去了。
请仔细体会里面关于仓库的处理,
1 是如何保证入库时,如果仓库满就等待,
2 出库时,如果仓库无货就等待的。
3 以及对仓库只有10个库位的处理。
4 对同步问题的处理。
package com.test.current;
import java.util.concurrent.Semaphore;
...
深入分析 Java I/O 的工作机制
- 博客分类:
- JAVA基础
http://www.ibm.com/developerworks/cn/java/j-lo-javaio/index.html
package com.test.current;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.concurrent.Callable;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors ...