Java Nio

最近在看Netty的源码,顺便了解了一下Java的Nio, 结合JDK源码过了一遍Java NIO Tutorial。下面对其中的一些知识点做下总结。

Java Nio 有三个关键的组件,Channel, Buffer, Selector.

Channel and Buffer

主要包括以下几种Channel和Buffer

  • FileChannel (文件)
  • DatagramChannel (UDP)
  • SocketChannel (TCP)
  • ServerSocketChannel (TCP Server)

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer

Channel 和 Buffer 之间的数据传输

动态解决Maven依赖

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-aether</artifactId>
<version>0.7.19</version>
</dependency>

GroovyShell永久区内存泄露

今天想在项目中用一下Groovy,主要是为了动态的执行用户配置的命令。代码大致如下:

1
2
3
4
Binding binding = new Binding();
binding.setVariable("R",new RuleFunc());
GroovyShell shell = new GroovyShell(,binding);
shell.evaluate("Groovy Command");