`
wbj0110
  • 浏览: 1559097 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
简介         Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用ZooKeeper.         所谓ZooKeeper技巧(ZooKeeper Recipes),也可以称之为解决方案, 或者叫实现方案, 是指ZooKeeper的使用方法, 比如分布式的配置管理, Leader选举等
试用配置管理库typesafe.config Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。它也是Akka的配置管理库. Overview 纯java实现,无任何依赖 充分的测试 支持: Java properties, JSON, and a human-friendly JSON superset 可以合并各种格式的配置文件 可以通过文件、urls、classpath加载配置 支持多层嵌套的配置方式 识别Java system pro ...
SBinary 和 Scalacheck的一部分库,广泛使用了隐式参数。让人联想起了Haskell(一种函数式编程语言)的编程风格,我真心的希望在Scala中这种编程风格更加广泛。这是一种非常有用的技术。 作为开始如下多重入参(柯里化)的例子: scala -> def foo(x: Int)(y: Int) = x+y foo: (x: Int)(y: Int) Int   scala -> foo (1) (2) ret0:Int = 3 scala> foo(1, 2); :6: error: wrong number of arguments f ...
胜败兵家事不期,包羞忍耻是男儿——斗牛士fighting,fighting,fighting...       小象学习和使用scala也一段时间了,最初小象学习scala主要为了学习spark生态,但是深入学习scala的一些特性后,深深被scala函数式和面向对象的风格 ...
cala中特质定义:包含一些字段,行为(方法/函数/动作)和一些未实现的功能接口的集合,可以方便的实现扩展或混入到已有类或抽象类中。      scala中特质(trait)是一个很有用的特性,在程序设计中可以 更好的抽象现实,使程序更关注各自功能和更好的将程序拆分成多个特质模块,使程序具有更强的扩展性。熟悉java的同学,可以将特质理解为抽象类,但是scala中可以在一个类中同时混入多个特质(使用extends 或with),而java中一个类只能继承一个抽象类,如果要实现多个抽象类就必需使用多继承。scala中很多基础类型功能扩展都使用了特质的特性,例如,基础类型中的布尔操作和比较接口 ...
package cn.yangg.scala.base.init   import java.io.Closeable import java.nio.channels.ServerSocketChannel import java.net.InetSocketAddress import java.nio.channels.SocketChannel import java.nio.charset.Charset import java.nio.ByteBuffer import akka.actor.Actor import java.nio.channels.Sele ...
package cn.yangg.scala.base.init   object Start { def main(args:Array[String]){   valpath="/Users/yangguo/tool/mvn.ln"   valurl="http://www.baidu.com"       readDataUseJavaApi(path)   readDataUseScalaApi(path)     readDataFromUrl(url) } def readDataUseJavaApi(path:St ...
package cn.yangg.scala.akka.init   import akka.actor.Actor import akka.actor.Props import akka.actor.ActorRef import akka.actor.Terminated import akka.event.Logging import akka.actor.ActorSystem import akka.pattern.ask import scala.util.Success import scala.util.Failure import scala.conc ...
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。   Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 IO                NIO 面向流            面向缓冲 阻塞IO           非阻塞IO 无 选择器   面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是 ...
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示:   创建管道 通过Pipe.open()方法打开管道。例如:
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。   打开 DatagramChannel 下面是 DatagramChannel 的打开方式:
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子:
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器。 一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。   打开 SocketChannel 下面是SocketChannel的打开方式:
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。   打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAccessFile来获取一个FileChannel实例。下面是通过RandomAccessFile打开FileChannel的示例:
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 下面是本文所涉及到的主题列表: 为什么使用Selector? Selector的创建 向Selector注册通道 SelectionKey 通过Selector选择通道 wakeUp()
Global site tag (gtag.js) - Google Analytics