Issues List

  1. 文件监听
    使用文件监听时需要注意,接受到文件创建事件时。当前文件写入工作不一定完成。所以受关注的文件不应当直接在受监控的目录下创建,而应该创建临时文件然后copy到受监控的目录
  2. Base64
    将参数通过Base64编码然后提交到服务器,“+” 号被替换为空格
  3. 慎用File#renameTo
    File#renameTo不等同于mv,不能再不同文件系统间移动文件。例如:
//centos filesystem:xfs
Path tempFile = Files.createTempFile(null, null);
// write something to tempFile
// filesystem ext4 
File dest = new File("/data/something.txt");
boolean suc = tempFile.toFile().renameTo(dest)
//会返回false,文件移动失败

当遇到多文件系统的时候,请尽量避免使用File#renameTo(File)方法,可是使用apache的commons-io包去替换,避免一些潜在BUG。

  1. 注意Java8 多个 Stream 流同时执行时,顺序是不固定的
  2. Java8 Stream Collector.groupBy 默认采用HashMap收集结果,而HashMap是无序的。如果你对结果有顺序要求,请显示指定LinkedHashMap::new(可以记录插入的顺序)以确保集合顺序被延续到新的结果集。
//思考这样一段代码
List<Integer> numList= Arrays.asList(1, 2, 2, 3, 3,3, 4,4,4,4)
Map<Integer, Integer> numCountMap = numList.stream().collect(Collector.groupBy(w ->w, Collector.counting()))
// 期望结果
numCountMap << [{1, 1}, {2, 2}, {3, 3}, {4,4}]
// 实际上顺序是不能被保证的,你应该采用下面的方法保证numList的顺序被传递到numCountMap

Map<Integer, Integer> numCountMap = numList.stream().collect(Collector.groupBy(w ->w, LinkedHashMap::new, Collector.counting()))
  1. 如果新引入的特性不能在短时间内验证,应该立即回归主线。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,806评论 8 265
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,185评论 2 33
  • (一)适者生存 昨晚,程先生的公司举办了高大上的年会,公司奖励他一座水晶奖杯外加一个红...
    鹿鸣阁主阅读 1,430评论 0 6
  • 我是一个既纠结又矛盾的人,我不敢爱不敢恨,甚至于不敢大声的讲出自己的想法,我从骨子里是自卑的,我胆怯别人的目光,我...
    Danr阅读 1,267评论 0 2