- 博客(4)
- 收藏
- 关注
原创 使用stream流简化对集合的操作
使用stream流筛选集合中的数据使用传统的方式来筛选集合中的元素,我们可以想象到的方式就是遍历集合,将符合条件的元素存入一个新的集合中,或者将不符合的元素从集合中剔除。可是如果一旦筛选条件不止一个的时候,就会发现这种处理方式很繁琐,所以这个时候可以考虑使用jdk8的新特性,流式操作,再配合上lambda表达式和函数引用来简化代码的书写常用方法终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持链式调用forEach 逐一处理count 统计流中元素个数延迟方法:返
2020-07-07 18:36:57 1046
原创 如何快速使用NIO复制文件
使用NIO复制文件利用NIO中的Channel(通道)这一特性实现对文件快速复制情况一:如果文件大小在2GB以下这个时候可以使用MappedByteBuffer直接把文件映射到内存中,在内存中实现复制,然后再映射到目的地,这样就可以将硬盘的读写转移到了内存中的读写,提高读写效率public static void main(String[] args) throws Exception{ //java.io.RandomAccessFile类,可以设置读、写模式的IO流类。
2020-07-04 16:19:48 1900
原创 多线程6中状态间的转换
Java多线程6种状态的转换NEW(新建) 创建线程对象时Runnable(可运行) 线程可以在Java虚拟机上运行的状态,可能是正在运行,也可能是在等待CPU资源,简单来说就是调用了start方法Blocked(锁阻塞) 当线程要获取一个对象锁,但是这个对象锁正在被其他线程占用,则该线程进入阻塞状态;当该线程获取到对象锁时就会变成可运行状态Waiting(无限等待) 线程调用wait()方法,进入Waiting状态,在这个状态下,线程是不能自动醒来的,只能等待另一个线程调用notify
2020-07-04 15:49:01 4401
原创 关于二分查找算法中中间值的获取
关于二分查找算法中中间值的获取//left是左边元素索引的变量,right是右边元素索引的变量int mid = (left + right) / 2;//这样写的话可能会出现问题,当数组中的元素个数接近int可存储的最大值,//第一次查发现目标值大于中间索引所对应的值,则证明目标值在数组的右侧,left=mid+1;//这个时候left+right的值会超过int的范围,就会变成一个不是期望的值//所以建议使用int mid = left + (right - left) / 2;..
2020-06-19 23:02:21 3935
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人