关于Java里面 == 和 equals

java7相关的注意点

Path

path并不仅仅限于传统的文件系统,也能表示zip或者jar文件
path 不一定真实的文件或目录,可以随意的创建
path中可能有其他冗余项,比如符号链接,获取真实位置可以使用toRealPath() 或者normalize()
合并两个path 使用 resolve() ,或者获取相对位置relative()
转化Path file.toPath() path.toFile()

处理单个文件目录
String path = "F:\\mavenproject\\SpringProject";
        Files.newDirectoryStream(Paths.get(path),"*.xml")
                .forEach(e-> System.out.println(e.getFileName()));
递归处理文件件
static class FileFindXMLVisitor extends SimpleFileVisitor<Path>{
        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            if(file.toString().endsWith(".xml")&& (!file.toString().startsWith("Maven")))
                System.out.println(file.getFileName());
            return FileVisitResult.CONTINUE;
        }
    }
String path = "F:\\mavenproject\\SpringProject";
 Files.walkFileTree(Paths.get(path),new FileFindXMLVisitor());

  • Asynchronous IO 这是将来式,例如用Future.get()返回结果

    如果在创建AsynchronousFileChannel 时没有为其指明线程池,那就会为其分配一个系统默认的线程池(可能会和其他通道共用),默认线程池是由AsynchronousChannelGroup类定义的系统属性进行配置的.

  • 回调式

    主线程回派一个侦查员CompletionHandler到独立的线程中执行IO操作,这个侦查员会将IO操作的结果返回到主线程中,这个结果会触发他自己的completed或者failed方法(一般重写这两个方法)

        String filepath = "C:\\code\\temp.txt";
        Path filePath = Paths.get(filepath);

        AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(filePath);
        ByteBuffer byteBuffer = ByteBuffer.allocate(1000);
        fileChannel.read(byteBuffer, 0, byteBuffer, new CompletionHandler<Integer, ByteBuffer>() {
            @Override
            public void completed(Integer result, ByteBuffer attachment) {
                System.out.println("Bytes read: "+result);
            }

            @Override
            public void failed(Throwable exc, ByteBuffer attachment) {
                System.out.println(exc.getMessage());
            }
        });

并发安全


  • Java线程模型建立在(1)共享的,默认可见的可变状态``(2)抢占式线程调度

1.所有线程可以很容易的共享同一进程中的对象
2.能引用这些对象的任何线程都能修改这些对象

  • 设计理念 安全性(并发类型安全) 活跃度 性能 重用性
    安全性是指: 不管同时发生多少操作都能确保对象保持自相一致
  • 系统开销之源: 锁与监测 环境切换次数 线程的个数 调度 内存的局部性 算法设计
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值