君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 106 下一页

2012年10月15日 #

摘要: 在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销。大多数的实现为了避免这个问题,都采用了线程池模型,并设置线程池线程的最大数量,这由带来了新的问题,如果线程池中有200个线程,而有200个用户都在进行大 阅读全文
posted @ 2012-10-15 22:59 刺猬的温驯 阅读(342) 评论(2) 推荐(0) 编辑

摘要: 在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()相当于创建了一个指定大小的数组,并把它包装为缓冲区对象。或者我们也可以直接将一个现有的数组,包装为缓冲区对象,如下示例代码所示:[java]view plaincopyprint?publicclassBufferWrap{publicvoidmyMeth 阅读全文
posted @ 2012-10-15 22:59 刺猬的温驯 阅读(530) 评论(0) 推荐(0) 编辑

摘要: 在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的Buffer对象。在缓冲区中,最重要的属性有下面三个,它们一起合作完成对缓冲区内部状态的变化跟踪:position:指定了下一个将要被写入或者读取的元素索引,它的值由get()/put()方法自动更新,在新创建一个Buffer对象时,pos 阅读全文
posted @ 2012-10-15 22:58 刺猬的温驯 阅读(341) 评论(0) 推荐(0) 编辑

摘要: 最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/O系统,系统以块的方式处理处理,每一个 阅读全文
posted @ 2012-10-15 22:56 刺猬的温驯 阅读(475) 评论(0) 推荐(0) 编辑

2012年10月14日 #

摘要: 关于本系列本系列文章旨在将您的思维方式向函数式思维方式调整,使您以全新的角度来思考常见问题,并提高您的日常编码工作。本系列介绍了函数式编程概念,函数式编程在Java 语言中运行的框架、在JVM 上运行的函数式编程语言、以及语言设计未来的一些方向。本系列主要面向了解Java 以及其抽象层的工作方式,但缺乏函数式语言使用经验的开发人员。在本系列的第一期中,我首先讨论函数编程的一些特点,并演示如何在Java和其他函数语言中体现这些观念。在本文中,我将继续讨论这些概念,讲解一级函数、优化和闭包。但本期的内在主题是控制:什么时候想要控制、什么时候需要控制、什么时候应该放弃控制。一级(First-clas 阅读全文
posted @ 2012-10-14 21:15 刺猬的温驯 阅读(249) 评论(0) 推荐(0) 编辑

摘要: 面向对象的编程通过封装可变动的部分来构造能够让人读懂的代码,函数式编程则是通过最大程度地减少可变动的部分来构造出可让人读懂的代码。— Michael Feathers,Working with Legacy Code一文的作者,这篇文章是通过微博发表的关于本系列本系列的目标是重新塑造您对函数式编程思想的看法,帮助您从新的角度看待常见问题,找到改​​进日常编码的途径。它探讨了函数式编程的概念,支持在Java 语言中进行函数式编程的框架,运行在JVM 上的函数式编程语言,以及语言设计的一些未来发展方向。本系列面向想了解Java 及其抽象工作、但在使用功能性语言方面经验很少或根本没有经验的开发人员。 阅读全文
posted @ 2012-10-14 20:54 刺猬的温驯 阅读(297) 评论(0) 推荐(0) 编辑

2012年10月13日 #

摘要: Sometimes, you project will have dependency on a jar which is not in officialmavenrepository, and maybe it is propriety jar file which will never be part ofmavenrepository. In this case, you have to put it to your localrepositoryyour self to solve the dependency.There is a install plug in to do this 阅读全文
posted @ 2012-10-13 16:38 刺猬的温驯 阅读(321) 评论(0) 推荐(0) 编辑

2012年10月5日 #

摘要: 转载http://fancyboy2050.iteye.com/blog/1300037最近使用spring mvc开发一个web系统,发现在controller里发生未捕获异常时不出日志。分析DispatcherServlet,初始化handlerExceptionResolversJava代码 /** *Initializethestrategyobjectsthatthisservletuses. *<p>Maybeoverriddeninsubclassesinordertoinitialize *furtherstrategyobjects. ... 阅读全文
posted @ 2012-10-05 22:18 刺猬的温驯 阅读(5446) 评论(0) 推荐(0) 编辑

摘要: 转载http://blog.csdn.net/lin_bei/article/details/1067506我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,<<Java与模式>>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟图片是来自<<Java与模式> 阅读全文
posted @ 2012-10-05 21:59 刺猬的温驯 阅读(245) 评论(0) 推荐(0) 编辑

摘要: 我将按照基类的顺序:InputStream、OutPutStream、Reader、Writer来分别对Java I/O加以总结。java中的流,简单理解就是管道里有流水,这个管道连接了程序和文件。InputStream、OutPutStream是字节输入流的所有类的超类。Reader、Writer是字符输入流的所有类的超类。Java IO流对象(其实大家都和懂啦,我这里再赘述一下)1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出:InputStream 是所有的输入字节流的父类,它是一个抽象类。ByteArrayInputStream、StringBuffer 阅读全文
posted @ 2012-10-05 21:39 刺猬的温驯 阅读(242) 评论(0) 推荐(0) 编辑

上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 106 下一页