翔如菲菲

其实天很蓝,阴云总会散;其实海不宽,此岸连彼岸.

导航

文章分类 -  Java

闭包的概念、形式与应用
摘要:闭包的概念、形式与应用摘自:http://www.ibm.com/developerworks/cn/linux/l-cn-closure/index.html#resources简介:随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,我们经常听到一个名词——闭包,很多人会问闭包是什么?闭包是用来做什么的?本文汇集了有关闭包的概念、应用及其在一些编程语言中的表现形式,以供参考。什么是闭包?闭包并不是什么新奇的 阅读全文

posted @ 2013-03-12 17:00 翔如飞飞 阅读(1111) 评论(0) 推荐(0)

【转】浅谈java输入输出流
摘要:流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样,如下图:Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的:在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基 阅读全文

posted @ 2012-10-31 10:50 翔如飞飞 阅读(184) 评论(0) 推荐(0)

Registry of Singleton 模式
摘要:考虑使用Singleton 模式时拥有子类别的问题,在Singleton模式中的getInstance()通常是一个静态方法,不能在子类别中重新定义它,关于子类别实例的产生交由getInstance()来进行是最好的选择,例如:publicclassSingleton{privatestaticSingletoninstance=null;privateSingleton(){//....}publicstaticSingletongetInstance(){if(instance==null){//getEnv表示系统环境变数Stringstyle=getEnv("style&qu 阅读全文

posted @ 2012-09-23 16:12 翔如飞飞 阅读(196) 评论(0) 推荐(0)

JSON 入门指南
摘要:尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 XML,还是客户端用 JavaScript 解析 XML,都常常导致复杂的代码,极低的开发效率。实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。 现在, JSON. 阅读全文

posted @ 2011-04-28 09:23 翔如飞飞 阅读(340) 评论(0) 推荐(0)

【转】垃圾回收系列(4):GC性能调优及总结
摘要:本文为垃圾回收讲座第四篇,也是最后一篇。前三篇(一、二、三)分别介绍了手工管理内存带来的一些问题,一些经典的GC算法以及CLR与JVM在垃圾回收方面的比较。本文将会简单介绍垃圾回收性能调优的话题,以及给大家推荐一些垃圾回收的资料和开源项目。 GC性能调优 无论对于哪方面的调优,数据库调优、网络调优还是垃圾回收调优,其遵循的过程都是一样的:首先要评估现状,当前的状况是什么样的,收集相关的数据; 再次设定一个目标,即我们调优要达到什么目的,而不是盲目的进行调整;然后做一些调优方面的尝试,并对调优的结果进行验证,看看尝试调优的结果如何,最后 再进行一些细微调整。调优的过程不是一蹴而就的,而是我们可能 阅读全文

posted @ 2011-02-25 14:29 翔如飞飞 阅读(614) 评论(0) 推荐(0)

【转】垃圾回收系列(3):CLR与JVM垃圾回收器的比较
摘要:本文为垃圾回收讲座的第三篇,在前面两篇(一、二)文章里介绍了手工管理内存带来的一些问题,以及一些经典的GC算法。本文我们主要关注微软的CLR与JVM垃圾回收器方面的比较。我们知道CLR和JVM都采用了分代式垃圾回收器,而分代式垃圾回收器则基于以下几点假设: 1. 对象越新,其生存期就越短 2. 对象越老,其生存期就越长 3. 对堆的一部分执行GC比对整个堆执行GC要快 CLR和JVM尽管都采用了分代式垃圾回收器,但是它们在很多处理方面都有些不同:分代机制,大对象堆,回收模式,回收算法,寻找存活对象效率等。 分代机制 在CLR中,对象按年龄可以分为三代:第0代、第1代、第2代,如下图所示: 在这 阅读全文

posted @ 2011-02-25 14:28 翔如飞飞 阅读(400) 评论(0) 推荐(0)

【转】垃圾回收系列(2):几种经典的垃圾回收算法
摘要:本文是关于垃圾回收讲座的第二篇,第一篇为《垃圾回收系列(1):没有GC,世界将会怎样》。 本文主要关注垃圾回收算法。垃圾回收机制,最早出现于世界上第二元老语言Lisp,Jean E. Sammet曾经说过,Lisp语言最长久的共享之一是一个非语言特征,即代表了系统自动处理内存的方法的术语极其技术——垃圾收集 (GC,Garbage Collection)。接下来我们介绍几种经典的垃圾回收算法,这些算法尽管出现于60、70年代,但是现在的CLR、JVM等上面的垃圾回收器,仍然 使用了它们。 引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一 阅读全文

posted @ 2011-02-25 14:27 翔如飞飞 阅读(336) 评论(0) 推荐(0)

【转】垃圾回收系列(1):没有GC,世界将会怎样
摘要:最近在公司内部做了一次关于垃圾回收的讲座,我打算用几篇文章把讲座的内容整理出来,供大家参考。在开始之前,我们有必要稍微复习一下内存分配的主要方式,大多数主流语言都支持三种内存分配方式: 1. 静态分配:静态变量和全局变量的分配形式 2. 自动分配:在栈中为局部变量分配内存的方法 3. 动态分配:在堆中动态分配内存空间以存储数据的方式 如何管理堆对象的生命周期,正是我们要探讨的话题。从面向对象的角度来看,每个对象的生命周期应该由自己管理,也就是说,作为一个对象,它知道自己 什么时候被创建,什么时候被销毁。然而事实上却不是这样,因为对象之间有相互引用关系,所以对象往往不知道自己什么时候可以宣告死亡 阅读全文

posted @ 2011-02-25 14:26 翔如飞飞 阅读(268) 评论(0) 推荐(0)

C#和Java的闭包-Jon谈《The Beauty of Closures》
摘要:第一段略。。。大多数讲闭包的文章都是说函数式语言,因为它们往往对闭包的支持最完善。当你在使用函数式语言时,很可能已经清楚了解了什么是闭包,所以我想写一篇在经典OO语言出现的闭包有什么用处应该也是很合适的事情。这篇文章我准备讲一下C#(1、2、3)和JAVA(7以前版本)的闭包。什么是闭包?简单来讲,闭包允许你将一些行为封装,将它像一个对象一样传来递去,而且它依然能够访问到原来第一次声明时的上下文。这样可以使控制结构、逻辑操作等从调用细节中分离出来。访问原来上下文的能力是闭包区别一般对象的重要特征,尽管在实现上只是多了一些编译器技巧。利用例子来观察闭包的好处(和实现)会比较容易, 下面大部份内容 阅读全文

posted @ 2010-05-12 08:48 翔如飞飞 阅读(404) 评论(0) 推荐(0)

【转】关于领域模型的讨论
摘要:关于领域模型的讨论:http://www.javaeye.com/topic/11712http://www.javaeye.com/topic/17579 阅读全文

posted @ 2010-02-25 13:54 翔如飞飞 阅读(163) 评论(0) 推荐(0)

【转】AOP下的权限控制实现
摘要:摘要 面向方面的编程(AOP)是一种新的编程技术,它弥补了面向对象的编程(OOP)在跨越模块行为上的不足。AOP引进了Aspect,它将影响多个类的行为封装到一个可重用模块中,它允许程序员对横切关注点进行模块化,从而消除了OOP引起的代码混乱和分散问题,增强了系统的可维护性和代码的重用性。本文分析传统权限控制的实现方法,并研究了在AOP下权限控制的实现方法。 关键词 AOP;横切关注点; 设计模... 阅读全文

posted @ 2009-06-08 17:19 翔如飞飞 阅读(685) 评论(1) 推荐(0)

泛化,依赖,关联,聚合
摘要:类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。 类与类之间存在以下关系: (1)泛化(Generalization) (2)关联(Association) (3)依赖(Dependency) (4)聚合(Aggregation) UML图与应用代码例子: 1.泛化(Generalization) [泛化] 表示类与类之间的继承关系,接口... 阅读全文

posted @ 2009-04-02 09:17 翔如飞飞 阅读(491) 评论(0) 推荐(0)