自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

Groovy:运行期把方法mixin到对象实例

Groovy:运行期把方法mixin到对象实例从Groovy 2.1 开始我们可以在运行期把方法mixin到对象实例。这个mixin和class的mixing用法很不一样,他需要调用对象实例的metaClass属性的mixin方法。class Parrot { static String speak(String text) { /"$text" Polly...

2013-05-30 22:17:31 153

Apache Mina 文档翻译 - 第七章 - Handler

第七章 - HandlerIoHandler处理所有MINA产生的IO事件。这个接口是在过滤器链的尾端,是所有活动的集线器。IoHandler有以下方法:    sessionCreated    sessionOpened    sessionClosed    sessionIdle    exceptionCaught    messageReceived    messageSent...

2013-05-30 21:59:02 77

Groovy: 通过mixin的方式把函数添加到类

Groovy: 通过mixin的方式把函数添加到类在Groovy中我们可以通过@Mixin注释自爱编译期或运行期动态的想以后的类添加方法。例如:class Pirate { def talk(text) { "Aargh, walk the plank. ${text}" }}// 编译期mixin到Talk类. 这里可以把Pirate...

2013-05-29 23:21:10 260

Apache Mina 文档翻译 - 第六章 - 传输协议

第六章 - 传输协议前面的章节中我们已经接触到了TCP和UDP传输协议。这章中我们主要关注一下APR和串口通信。 APR传输APR (Apache Portable Runtime - Apache可移植运行环境)具有很好的可延展性和性能并且能同原生的服务器技术整合在一起。MINA中提供了对APR的支持。下面我们通过一个时间服务器的例子来学习怎么在MINA中使用APR传输。前提条...

2013-05-29 22:56:31 110

Apache Mina 文档翻译 - 第五章 - 过滤器

第五章 - 过滤器IoFilter是MINA的重要组件之一, 它可以过滤在IoService和IoHandler的所有IO事件和请求。 如果你有Web应用程序开发经验, 你会发现它和Servlet的过滤器十分相似。MINA提供了很多可以直接使用的过滤器,这大大简化了网络应用程序的开发,例如:    LoggingFilter:记录所有事件和请求    ProtocolCodecFilter:...

2013-05-28 23:23:20 95

Apache Mina 文档翻译 - 第四章 - Session

第四章 - Session会话(Session)是MINA的最重要的部分之一:每当一个客户端连接到服务器,MINA都会创建一个新的会话,并且会一直保存在内存中,直到客户端断开连接。会话用来存放连接的持久化信息和请求处理过程中需要的任何信息, 这些信息会存在于整个会话生命周期。会话状态会话是有状态的,并且状态会发生变化:    连接:会话创建并且可用。    空闲:在一段时间内会话没有...

2013-05-27 23:37:56 101

Apache Mina 文档翻译 - 第三章 - IoService

第三章 - IoService在第二章我们已经看到无论在服务端还是在客户端,MINA里的IoService接口都是所有IO服务实现的基类。它负责处理你的应用程序和远程主机之间的交互,收发消息, 管理会话和连接等工作。IoService是一个接口,在服务端被实现为IoAcceptor,在客户端被实现为IoConnector。在这一章中我们会了解到下面的内容:    IoService简介   ...

2013-05-26 22:52:01 125

使用string.EndsWith方法是别忘了用StringComparison.Ordinal!

今天项目(C#项目)中遇到了一个性能问题,在对一个10万字左右文本解析时速度特别慢,用Profiler调查了一下原来大多时间都用在了String.EndsWith这个方法上。 大家现在看下面一段程序。   var sb = new StringBuilder(100000); for (var i = 0; i < 10000;...

2013-05-08 22:47:46 1650

原创 NodeJS vs Netty

周末跟朋友聊天, 一个朋友说NodeJS是个不错的东西, 它的非阻塞异步处理模式比用apache的fork的方式高效. 我在想如果是依靠非阻塞异步处理的方式提升性能的话, 其实现在主流的平台上都有相应的东西, 例如Java的NIO. 我想肯定有人做过比较, 于是我上网搜了一下Node.js vs Netty. 用apache benchmark来做的基于HTTP协议上的Hell...

2013-05-06 10:09:58 3591

启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC....

刚才看到一个博客(http://wangxinchun.iteye.com/blog/1859250)里写了一道面试题: 启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC.... 原文中有很多实现方法。我感觉如果可以用Java5以后的Semaphore实现的话会比较简单,于是写了一个实现:package org.devside.study.sy...

2013-05-04 21:43:23 660

原创 Apache Mina 文档翻译 - 第二章 基础

第二章 - 基础在第一章,我们对Apache MINA有了一个大致的了解。在这一章里我们来研究一下客户端/服务器架构以及如何创建基于MINA的服务器和客户端。我们还会做一下简单的TCP和UDP协议的服务器和客户端。基于MINA的应用程序架构经常有人会问:基于MINA的应用程序是什么样子?在本章中我们会介绍基于MINA的应用程序架构。鸟瞰图 : 这里,我们可以看见MINA是应用...

2013-05-04 20:37:22 122

原创 用VisualVM对Eclipse Virgo服务器进行Profile

在开发上遇到一些性能问题时,我们经常会使用一些Profiler工具对系统进行profile,最常见的是查看内存使用情况或方法调用时间。其中开源工具VisualVM是一个不错的选择。 想了解VisualVM的相关信息可以查看这里:https://visualvm.java.net/http://www.baptiste-wicht.com/2010/07/profile-appl...

2013-05-03 22:35:21 204

原创 自己做一个类似mongofiles的命令行工具来操作GridFS

为什么要自己做一个呢?因为mongodb自带的mongofiles到现在也不能操作和查看某个bucket的下的文件, 只能查看和操作fs下的文件. mongo-java-driver中的那个CLI也不能做这个, 甚至连用户名和密码都不能指定. 所以不如我们自己做一个吧. 代码如下, 不多说了: import com.mongodb.DB;import com.mongo...

2013-05-02 19:38:14 185

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除