java futureTask的使用
摘要:futureTask 它的意义在于去除主函数的等待时间,使得主函数在执行耗时操作时无需死等,只需要在未来task执行完毕,再获取结果。 下面的 futureTask 的一个简单例子。
阅读全文
posted @
2017-10-10 16:02
知己一生
阅读(684)
推荐(1)
java8 使用 lamda 表达式 完成 map reduce
摘要:java8支持了函数编程,可以让java代码更简洁和易读。 传统 for 循环方式: 采用 lamda方式: lamda还提供了过滤等操作。 这里是把 以 C 开头的字符串过滤出来。 map,reduce操作: 过滤之后的每一个元素,作字符替换处理,对处理后的结果拼接。生成新元素。 并行处理: 可以
阅读全文
posted @
2017-08-08 16:34
知己一生
阅读(658)
推荐(0)
字节流和字符流的比较。
摘要:字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。 字节流默认不使用缓冲区;字符流使用缓冲区。 字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。
阅读全文
posted @
2017-06-17 16:40
知己一生
阅读(394)
推荐(0)
sleep和wait的区别
摘要:sleep、wat都会暂停当前的线程。 sleep不会释放锁,所以线程会进入阻塞态。 wait会释放锁,线程进入等待队列。notify 之后,线程会进入锁池状态。 sleep 让线程从 【running】 -> 【阻塞态】 时间结束/interrupt -> 【runnable】 wait 让线程从
阅读全文
posted @
2017-06-17 15:57
知己一生
阅读(225)
推荐(0)
泛型的理解
摘要:在Java不支持泛型之前,一旦把一个对象加入到集合中,集合就会忘记对象的类型,把所有的对象都当做Object来处理。 但是当程序从集合中取出对象时,又会判断对象的类型,这时就会发生类型转换。这种转换不仅代码臃肿,而且容易出现 类型转换异常。 JDK1.5之后引入了参数化类型,允许我们在创建集合时,指
阅读全文
posted @
2017-06-08 15:44
知己一生
阅读(174)
推荐(0)
BIO、NIO、AIO三者的比较
摘要:消息时的系统通信,通常基于网络协议实现。常见的协议包括TCP/IP,UDP/IP。 TCP/IP等协议用于数据传输,但要完成通信,还需要对数据进行处理。例如读取和写入数据。 I/O可以分为两种:同步IO和异步IO,同步I/O最常见的是 BIO(Blocking IO)、NIO(Non-Blockin
阅读全文
posted @
2017-05-19 13:07
知己一生
阅读(4617)
推荐(1)