随笔分类 -  java基础

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