并发网2014.11月阅读量Top10
又到了月末,并发网11月Top10的阅读量的文章送到,希望各位客官笑纳!有任何意见和建议,欢迎告诉我们,我们在努力!~
-
Top1 JAVA面试700问(一)
Java环境中的字节码是什么?由Java 编译器生成的一种代码。由JVM生成的一种代码,Java源文件(Java Source File)的别名,一种写在类的实例方法中的代码,答案……(1502人阅读)
又到了月末,并发网11月Top10的阅读量的文章送到,希望各位客官笑纳!有任何意见和建议,欢迎告诉我们,我们在努力!~
Java环境中的字节码是什么?由Java 编译器生成的一种代码。由JVM生成的一种代码,Java源文件(Java Source File)的别名,一种写在类的实例方法中的代码,答案……(1502人阅读)
原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com> 校对:方腾飞
观察者模式是一种行为设计模式。观察者模式的用途是,当你对一个对象的状态感兴趣,希望在它每次发生变化时获得通知。在观察者模式中,观察另外一个对象状态的对象叫做Observer观察者,被观察的对象叫着Subject被观察者。根据GoF规则,观察者模式的意图是:
定义对象之间一对多的依赖关系,一个对象状态改变,其他相关联的对象就会得到通知并被自动更新。
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)
本章节将简要介绍InputStreamReader和OutputStreamWriter。细心的读者可能会发现,在之前的文章中,IO中的类要么以Stream结尾,要么以Reader或者Writer结尾,那这两个同时以字节流和字符流的类名后缀结尾的类是什么用途呢?简单来说,这两个类把字节流转换成字符流,中间做了数据的转换,类似适配器模式的思想。
原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>
备忘录模式是一种行为模式。备忘录模式用于保存对象当前状态,并且在之后可以再次使用此状态。备忘录模式实现的方式需要保证,被保存的对象状态不能被对象从外部访问,目的为了被保存的这些对象状态的完整性。
阅读全文
原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)校对:方腾飞
Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值。
Java反射机制功能强大而且非常实用。举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence(译者注:原作者所编写的框架)所做的那样,或者把脚本中的一段语句在运行期映射到相应的对象调用方法上,就像 Butterfly Container(译者注:原作者所编写的框架)在解析它的配置脚本时所做的那样。
原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>
策略模式是一种行为模式。用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略。
策略模式也被称作政策模式。实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数。使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数。根据Comparator接口不同实现,对象会被不同的方法排序。详细介绍请看java中的排序对象。
原文地址 译者:Zhanggc
有限状态机模式在Erlang design principles里面被很好描述出来.简而言之,它可以被视为一组关系:
State(S) x Event(E) -> Actions (A), State(S’)
这些关系描述为:
如果我们在状态S 和 时间E 发生,我们应该执行动作A 与转换到状态S’.
而Scala 程序语言使构建一个良好内部DSL(领域特定语言)成为可能,后者用于规划有限状态机(请见FSM)。对于用同样方法,由于Java语法冗长不适合构建。本章节介绍通过自身训练效实现相同关注点分离方法。
原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)
内容索引
创建代理
InvocationHandler接口
利用Java反射机制你可以在运行期动态的创建接口的实现。java.lang.reflect.Proxy类就可以实现这一功能。这个类的名字(译者注:Proxy意思为代理)就是为什么把动态接口实现叫做动态代理。动态的代理的用途十分广泛,比如数据库连接和事物管理(transaction management)还有单元测试时用到的动态mock对象以及AOP中的方法拦截功能等等都使用到了动态代理。
阅读全文
原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)
内容索引
java.lang.reflect.Array
创建一个数组
访问一个数组
获取数组的Class对象
获取数组的成员类型
利用反射机制来处理数组会有点棘手。尤其是当你想要获得一个数组的Class对象,比如int[]等等。本节会讨论通过反射机制创建数组和如何获取数组的Class对象。
注意:在阅读Eyal Lupu的博客文章“Two Side Notes About Arrays and Reflection”之后对本文的内容做了更新。目前这个版本参考了这篇博文里面的内容。
阅读全文