- 博客(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关注的人