《Jersey用户指南》–序言

序言

此书是Jersey 2.23.1的用户手册。我们努力及时更新这本手册因为Jersey 2.23.1增加了一些新的功能。当您在阅读这本用户手册的时候, 请同时参考我们的Jersey  API 手册从而进一步理解Jersey 的功能和API。

如果您也想给这本手册贡献一点力量或者对这本手册没有涵盖的内容抱有疑问,请联系我们:users@jersey.java.net。同时,如果您在这本用户手册上发现任何错误, 请把发现的问题注册到Jersey JIRA Issue Tracker上的文档部分 阅读全文

《Netty in Action》中文版—第六章 ChannelHandler和ChannelPipeline

本文翻译自《Netty in Action》第六章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • ChannelHandler和ChannelPipeline APIs
  • 检测资源泄露
  • 异常处理

在前一章,你学习了Netty的数据容器ByteBuf。在这一章我们会在你已经学过的知识的基础上探讨Netty的数据流和处理模块。你会开始看到这个框架的一些重要元素被组合到一起了。

你已经了解到,ChannelHandler在一个ChannelPipeline中被链在一起,将所有的处理逻辑组织起来。我们会在这一章学习有关这两个类的各种用例,以及另一个重要的相关类,ChannelHandlerContext。

理解所有这些组件之间的相互作用是用Netty创建一个模块化的,可复用应用的关键。
阅读全文

Java实现 二叉搜索树算法(BST)

作者:李强强(泥瓦匠)

“岁月极美,在于它必然的流逝”
“春花 秋月 夏日 冬雪”
— 三毛 阅读全文

Commons IO 官方文档

本文翻译自 Commons IO 官方文档 译者:MagicWolf

Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分

  • Utility classes – 包括一些静态方法来执行常用任务
  • InputInputStreamReader 实现
  • OutputOutputStreamWriter 实现
  • Filters – 多种文件过滤器实现(定义了 IOFileFilter接口,同时继承了 FileFilterFilenameFilter 接口)
  • Comparators – 用于文件比较的多种java.util.Comparatot实现

阅读全文

Spark机器学习库(MLlib)指南

spark-1.6.1

机器学习库(MLlib)指南

MLlib是Spark的机器学习(ML)库。旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。

MLllib目前分为两个代码包:

  • spark.mllib 包含基于RDD的原始算法API。
  • spark.ml 则提供了基于DataFrames 高层次的API,可以用来构建机器学习管道。

《JAVA8开发指南》使用流式操作

本文翻译自《JAVA开发指南》第三章  

本章中,你将学习到怎样使用Stream API进行开发。首先,你将会了解Stream API背后的机制,什么是流以及流的用处。其次,你将学习到一系列的流式操作、流式数据处理模型以及能让你写出更复杂数据查询的流式集合操作。接下来是如何应用流式操作的例子。最后,你将学习到并行流。

阅读全文

《Jersey用户指南》翻译邀请

7月并发网组织大家翻译《Jersey用户指南》。有兴趣的同学可以通过评论领取,翻译完成之后再并发网直接提交审核。

一次领取一篇,一篇建议领取一个章节,翻译完成之后可以继续领取,领取文章后最好在一个星期内翻译完成,如果不能完成翻译请通过评论告知,以便于其他人可以继续翻译。

阅读全文

《JAVA8开发指南》为什么你需要关注 JAVA8

本文翻译自《JAVA开发指南》第一章  

作者:Raoul-Gabriel Urma   译者:二进制的蛇

本章包含

  • 代码的可读性
  • 多核
  • JAVA8特性的快速指南

JAVA8:为什么你需要关注?

JAVA已经更新了!在 2014 年 3 月,JAVA发布了新版本-JAVA8,JAVA8 引入的一些新特性可能会改变你日常中基本的编码方式。但不用担心,这本简洁的指南会带着你掌握一些要领,现在你就可以开始阅读。

阅读全文

《Java8开发指南》翻译邀请

6月并发网组织大家翻译《Java8开发指南》。有兴趣的同学可以通过评论领取,翻译完成之后再并发网直接提交审核。

一次领取一篇,翻译完成之后可以继续领取,领取文章后最好在一个星期内翻译完成,如果不能完成翻译请通过评论告知,以便于其他人可以继续翻译。

阅读全文

《Redis官方文档》发布和订阅

原文链接

发布/订阅(Pub/Sub)

SUBSCRIBE、UNSUBSCRIBE 和 PUBLISH 这三个命令实现了发布/订阅消息模式(引用自维基百科),发送者(发布者)并不是直接发送它们的消息给指定的接收者(订阅者),而是将消息发布到特定的消息通道,并且不需要知道订阅者(如果有的话)的任何信息。订阅者可以订阅一个或多个感兴趣的消息通道,同时也只会收到他们感兴趣通道的信息,而不用去关心是谁发布的。这种发布者与订阅者的解耦,使其具备更强的扩展性并得到一个更加动态的网络拓扑。

阅读全文

《Netty in Action》中文版—第五章 ByteBuf

本文翻译自《Netty in Action》第五章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • ByteBuf—Netty的数据容器
  • API详情
  • 用例
  • 内存分配

正如我们前面提到的,网络数据的基础单位总是字节。Java NIO用ByteBuffer做它的字节容器,但是这个类使用起来过于复杂,有时候还非常麻烦。

Netty用ByteBuf替代了ByteBuffer,这个强大的实现突破了JDK API的限制,为网络开发者提供了更好的API。

在这一章我们会展现同ByteBuffer相比,ByteBuf的出色功能和灵活性。这也让你从大体上更好地理解Netty数据处理的方式,并且为第六章ChannelPipeline和ChannelHandler的讨论做好准备。
阅读全文

《Netty in Action》中文版—第四章 传输

本文翻译自《Netty in Action》第四章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

 

本章包含

  • OIO—阻塞传输
  • NIO—异步传输
  • 本地传输—JVM内部的异步通信
  • 嵌入式传输—测试你的ChannelHandler

经过一个网络的数据通常是同一种类型:字节。这些数据是如何移动的基本上取决于被我们称之为网络传输的概念,这个概念帮我们抽象了底层的数据传输机制。用户不关心细节,他们只关心他们的字节数据被可靠地传送和接收。

阅读全文

数据库必会必知 之 SQL四种语言:DDL DML DCL TCL

作者:泥瓦匠 原文链接:传送门
今天群里面讨论,DDL 还是 DML,我这种小白还是总结下他们的区别吧。

阅读全文

《Netty in Action》中文版—第三章 Netty的组件和设计

本文翻译自《Netty in Action》第三章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含

  • Netty的技术和架构方面
  • ChannelEventLoopChannelFuture
  • ChannelHandlerChannelPipeline
  • Bootstrapping

在第一章我们总结了Java高效能网络编程的历史和技术基础,这为概述Netty的核心概念和构造模块提供了一个背景。

在第二章我们把讨论范围扩展到应用开发。通过创建一个简单的客户端和服务器你学到了bootstrapping,获得了一些亲自实践核心ChannelHandler API的经验。与此同时,你也验证了你的开发工具是可以正常工作的。

以这些内容为基础,在本书剩下的部分,我们会从两个不同但是密切联系的角度来研究Netty:做为一个类库和做为一个框架。这两个方面对用如何Netty开发高效,可重用,可维护的代码都很关键。

从一个高层次的角度来看,Netty解决了两个相应领域的问题,我们可以大体上称其为技术上的(technical)和结构上的(architectural)。首先,它的异步和事件驱动基于Java NIO实现,在高负载下能保证最好的应用性能和可扩展性。第二,Netty包含了一系列用来解耦应用逻辑和网络层的设计模式,简化了开发的同时最大限度地提升了可测试性,模块化和可重用性。

随着我们更具体地学习Netty的单个组件,我们将会密切关注这些组件是如何配合来支持结构的最佳实践(best practices)。遵循同样的原则,我们就能收获Netty提供的所有好处。在这个目标的指引下,在这一章,我们会回顾下到目前为止我们已经介绍过的主要概念和组件。

3.1 ChannelEventLoopChannelFuture

下面几个小节会对我们讨论的ChannelEventLoopChannelFuture类增加一些细节,它们合起来可以被看成是Netty的网络抽象(Networking abstraction)

  • ChannelSockets
  • EventLoop—控制流,多线程,并发
  • ChannelFuture—异步通知

阅读全文

InterruptedException 和 interrupting threads 的一些说明

原文链接 作者:  译者:simonwang

如果InterruptedException没有检测到异常,可能没人会注意到它,这会导致很多bug不被发现。而检测到这个异常的人大多数都是草率地、不恰当地处理着它。

阅读全文

《React官方文档》之教程Tutorial

原文链接 译者:jella77

教程Tutorial

 我们建立一个简单但实际的评论框,Disqus, LiveFyre或Facebook可以提供实时评论,评论框可以放在一个博客中。

我们提供:

  • 可以看到所有评论的视图
  • 提交评论的表单
  • 通过Hooks可以自定义后端

阅读全文

事务必会必知

作者:泥瓦匠 原文链接:传送门

事务,大家所熟悉的事务(Transaction),基本上会就往Spring事务靠。其实Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。这篇总结下数据库事务。 阅读全文

我们的垃圾收集器

原文链接

(译者注:这篇博文发表在2008年,虽然年代有些久远,但是文中说到的垃圾收集器我们至今还在使用,作者也谈到了对于G1垃圾收集器的期望。)

最近我在白板上给客户化了一个图表,他们似乎对这个有点兴趣,所以我想我可以重画一遍来给你们消遣。

Collectors1

阅读全文

《Netty in Action》中文版—第二章 你的第一个Netty应用

本文翻译自《Netty in Action》第二章  

作者:Norman Maurer, Marvin Allen Wolfthal   译者:桃小胖

本章包含:

  • 创建开发环境
  • 编写一个Echo服务器和客户端
  • 编译测试应用

在这一章我们将会向你展示如何创建一个基于Netty的客户端和服务器。这两个应用很简单—客户端送消息到服务器,服务器再将该消息送回客户端—不过,基于两个原因,这个练习很重要。

首先,它提供了一个创建和验证开发工具及环境的试验台。如果你打算用书里的示例代码来准备你自己的开发,那么这一点很重要。

第二,你能积累一些亲手实践前一个章节提到的Netty关键部分的经验:用ChannelHandlers来创建应用逻辑。这能帮你为从第三章开始的Netty API深入学习做好准备。
阅读全文

哪个线程执行 CompletableFuture’s tasks 和 callbacks?

原文链接  作者:Tomasz Nurkiewicz   译者:simonwang

CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念。但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时候。而这篇文章的目的就是要描述线程是怎样使用CompletableFuture的。

阅读全文

return top