java7

java7 WatchServiceDemo 文件系统监控

旧城冷巷雨未停 提交于 2019-12-10 03:33:14
自己想搞点东西,发现一个java7的新特性蛮好用的,找了一个damo,贴出来希望能帮助到有需要的人。 package com.wanzi.core; import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE; import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE; import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.WatchEvent; import java.nio.file.WatchEvent.Kind; import java.nio.file.WatchKey; import java.nio.file.WatchService; public class JavaWatchServiceDemo { private Path path = null; private

NIO.2特性总结(一)灵活的Path

天涯浪子 提交于 2019-12-09 13:02:55
NIO.2 , More New I/O APIs for the Java Platform 。 技术发展实在太快, NIO 都没弄透, java7 中的 NIO2 又要开始进入我们的程序,优化系统的性能了。最近在看《 PRO Java 7 NIO.2 》 CSDN 上有下载,不用积分,好像只有英文版的,顺便做点儿笔记。 我先整体介绍下java7在NIO上做的一些改动。其实我找了官网的更新文件,但上面并没有说的很清楚,我就从书上给出的目录大致列一下,这里只说NIO的变化,其他的变化,我记得有本书叫java7新特性吧,以前InfoQ上看过。 NIO.2主要还是在NIO.1的基础上对文件系统和socket操作功能进行了增强。首先在增强对文件系统操作部分,增加了java.nio.file类,这部分在API内这样描述Defines interfaces and classes for the Java virtual machine to access files, file attributes, and file systems。这里有我今天要说的主管路径的Path类,有连接文件系统的FileSystem类等,与之相关的还有java.nio.file.attribute包下的内容。这里有对文件系统view的描述和操作。这部分可以归结为: l Path Operations l

NIO.2特性总结(二)增强的通道 NetworkChannel

半世苍凉 提交于 2019-12-07 20:57:29
接上一篇 <NIO.2特性总结(一)灵活的Path> 想了想还是先把 NIO.2 的 socket 部分先看了,毕竟这部分对我更有用,而且昨儿看了目录,对于文件系统的操作部分总体还比较简单,所以在后面再补上,今天先记点儿有关 NIO2 socket 部分。 在NIO1中,我们主要用到的有这个三类channel:ServerSocketChannel,SocketChannel和DatagramChannel,以及NIO的核心选择器Selecotr。通过这些类的组合就能写出高性能的、非阻塞IO程序,NIO1强调的是非阻塞Non-blocking,当然非阻塞并不仅仅指selector这样的轮询可以一下处理好多请求,这部分的内容可以看我博客的相关文章或者直接看《Reilly - Java NIO》。而NIO.2提出的是异步,异步加非阻塞,就是我们熟悉的AIO。虽然NIO1也能通过其他办法实现异步,比如mina中利用将操作分离,用队列并伴随wait和notify来实现异步,但NIO2给我们提供直接的接口来实现异步,会降低很多开发难度。还是要再提一下异步和非阻塞是没有什么关系的,书上有一段话很好: 当然 NIO.2 也加强了 NIO1 中对 channel 的操作。下面我们看具体的。先总结一下 NIO2 对 channel 上的增强。首先是新增的接口 NetworkChannel ,我们先看

NIO.2特性总结(三)AIO

家住魔仙堡 提交于 2019-12-07 11:32:38
接上一篇 《 NIO.2特性总结(二)增强的通道 NetworkChannel 》 We’ve finally reached the most powerful feature introduced in NIO.2, the asynchronous channel API. 我觉得第一个问题就是同步和异步的区别,The Difference Between Synchronous And Asynchronous。异步IO有时候也会叫overlapped I/O。这里别跟阻塞和非阻塞混淆了。我们这节主要说的是异步的问题,如果你不了解阻塞和非阻塞,你可以看之前的文章,再罗嗦一点,异步和非阻塞不是一个东西。 同步I/O操作:In a synchronous I/O operation, a thread enters into action and waits until the I/O request is completed (the program is “stuck” waiting for the process to end, with no way out)。其实看这段我特别别扭,怎么看怎么像阻塞的解释。不过我在网上查到了这么一段话:阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,前四种都属于同步IO。这么一看好像还是那么一回事儿。具体我还得去核实一下。

一起学Java7新功能扩展——深入历险分享(一)

馋奶兔 提交于 2019-11-30 19:44:07
特此声明:因网友疑问,这里声明一个重要的安全,就是大家所知的java惊现0day漏洞! 8月30日,Oralce紧急发布了新版本的JDK和JRE,原因是发现了一个严重的0day漏洞CVE-2012-4681,远程攻击者可以通过它绕开SecurityManager的限制执行代码! 国内的 Freebuf在分析恶意代码时 发现了其中有这样一段代码,即“我有一只小毛驴,从来也不骑”。 String k1 = "woyouyizhixiaomaol"; String k2 = "conglaiyebuqi"; 如果对该漏洞感兴趣的童鞋请点击( http://www.freebuf.com/vuls/5485.html 国内、 http://www.deependresearch.org/2012/08/java-7-vulnerability-analysis.html 这个为国外分析 )该漏洞一般针对的是applet,国内很少有这样的应用了!(即使有估计也没有几个人挖空心思搞你一个个人电脑!没意义!信息盗卖已经不是新闻了!)国外似乎还有! 建议在浏览器中使用Java的同学立刻 将自己的Java升级到7u7或6u35版本 。 一: java7 语言扩展的简介 2011 年 7 月,在时隔数年之后, java 的一个重大版本 javase7 发布了。在这个新的版本中, java

Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理

二次信任 提交于 2019-11-27 02:45:48
最近事情较多,好久没发文章了。前面关于Java并发的文章中主要介绍了并发的概念、思想、JavaSE5中java.util.concurrent包中的工具类的使用和实现源码的分析。 这篇我们来简要了解一下JavaSE7中提供的一个新特性 —— Fork Join 框架 。 0. 处理器发展和需求背景 回想一下并发开发的初衷,其实可以说是有两点,或者说可以从两个方面看。 对于单核的处理器来说,在进行IO操作等比较费时的操作进行时,如果执行任务的方式是单任务的,那么CPU将会“空转”,知道IO操作结束。如果有多任务的调度机制,则在一个任务不需要CPU支持的时候,CPU可以被调度处理其他任务。简单地讲,并发可以提高CPU计算资源的利用率。 对于多核,或者多个计算资源的情况下,并发可以在某种程度上达到“并行”,即同时运行,缩短了任务完成的时间,提高了任务完成的效率。 我们再来看一下处理器计算能力的发展(讲并发或者并行基本都要提到),Intel的创始人之一Gordon Moore曾经说过一句话,大概意思是: 当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。 我们可以这样理解,处理器的计算能力在一定意义上和芯片上集成的晶体管数量有关,而这项继承技术的发展史飞快的。但是,什么事情都是有一个极限的,提升计算性能仅仅靠增加晶体管数量提高处理器主频是不现实的