JAVA ’ 目录归档

《C#并发编程经典实例》—— Rx基础

声明:本文是《C#并发编程经典实例》的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文。

LINQ 是 对 序 列 数 据 进 行 查 询 的 一 系 列 语 言 功 能。 内 置 的 LINQ to Objects( 基 于 IEnumerable<T>) 和 LINQ to Entities( 基 于 IQueryable<T>) 是 两 个 最 常 用 的 LINQ 提 供 者。另外还有很多提供者,并且大多数都采用相同的基本架构。查询是延后执行(lazily evaluated)的,只有在需要时才会从序列中获取数据。从概念上讲,这是一种拉取模式。 在查询过程中数据项是被逐个拉取出来的。

Reactive Extensions(Rx)把事件看作是依次到达的数据序列。因此,将 Rx 认作是 LINQ to events( 基 于 IObservable<T>) 也 是 可 以 的, 它 与 其 他 LINQ 提 供 者 的 主 要 区 别 在 于, Rx 采用“推送”模式。就是说,Rx 的查询规定了在事件到达时程序该如何响应。Rx 在 LINQ 的基础上构建,增加了一些功能强大的操作符,作为扩展方法。

阅读全文

状态模式在领域驱动设计中的使用

原文链接  作者:   译者:陈振阳

领域驱动设计是软件开发的一种方式,问题复杂的地方通过将具体实现和一个不断改进的核心业务概念的模型连接解决。这个概念是Eric Evans提出的,http://www.domaindrivendesign.org/这个网站来促进领域驱动设计的使用。关于领域驱动设计的定义,http://dddcommunity.org/resources/ddd_terms/,这个网站有很多的描述,DDD是一种软件开发的方式:

  1. 对于大多数的软件项目,主要的精力应该在领域和领域的逻辑。
  2. 复杂的领域设计应该基于一个模型。

DDD促进了技术和领域专家之前的创造性的合作,迭代地接近问题的概念核心。注意,在没有领域专家的帮助时,一个技术专家可能不会完全理解一个领域的错综复杂,当然,没有技术专家的帮助,一个领域专家实际上也不能应用它的知识到项目中。

阅读全文

Java IO: 其他字符流(下)

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中的PushbackReader,LineNumberReader,StreamTokenizer,PrintWriter,StringReader,StringWriter。

阅读全文

Java IO: 其他字节流(上)

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中的PushbackInputStream,SequenceInputStream和PrintStream。其中,最常用的是PrintStream,System.out和System.err都是PrintStream类型的变量,请查看Java IO: System.in, System.out, System.err浏览更多关于System.out和System.err的信息。

阅读全文

函数式编程 Functional Programming

原文链接

在Java程序员的世界里,第一要素是“类”,而在函数式编程里,第一要素则是“函数”。完全不同的编程理念,确实很难让函数式编程出现在Java工程师日常工作的代码中。

阅读全文

并发性能优化 – 降低锁粒度

原文链接  作者:Adrianos Dadis 译者:买蓉(sky.mairong@gmail.com) 校对:方腾飞

在高负载多线程应用中性能是非常重要的。为了达到更好的性能,开发者必须意识到并发的重要性。当我们需要使用并发时, 常常有一个资源必须被两个或多个线程共享。

在这种情况下,就存在一个竞争条件,也就是其中一个线程可以得到锁(锁与特定资源绑定),其他想要得到锁的线程会被阻塞。这个同步机制的实现是有代价的,为了向你提供一个好用的同步模型,JVM和操作系统都要消耗资源。有三个最重要的因素使并发的实现会消耗大量资源,它们是:

  • 上下文切换
  • 内存同步
  • 阻塞

阅读全文

Java IO: 字符流的Piped和CharArray

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader、PipedWriter、CharArrayReader、CharArrayWriter。

阅读全文

JAVA中的命令模式实例教程

原文链接  作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>

命令模式是一种行为模式,因此,它处理的是对象的行为。命令模式为系统中不同的对象提供中性化的交流媒介。根据GoF的定义,命令模式是:

通过封装一组完全不相关的对象相互之间的的交互及通讯来完成松耦合。
允许某一个对象的行为的变化是独立于其他对象的。

在企业级应用中,命令模式是非常有用的,它使得多个对象可以相互交流。如果一些对象与另一些对象直接交流,系统组件之间是紧耦合的方式。这种方式导致系统具有更高的可维护性,可扩展的灵活性变得很低。命令模式专注于提供一个调解人介于需要交流的对象之间来帮助完成对象间的松耦合。
阅读全文

Java IO: 字符流的Buffered和Filter

作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader、BufferedWriter、FilterReader、FilterWriter。

阅读全文

JAVA中的观察者模式实例教程

原文链接  作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>  校对:方腾飞

观察者模式是一种行为设计模式。观察者模式的用途是,当你对一个对象的状态感兴趣,希望在它每次发生变化时获得通知。在观察者模式中,观察另外一个对象状态的对象叫做Observer观察者,被观察的对象叫着Subject被观察者。根据GoF规则,观察者模式的意图是:

定义对象之间一对多的依赖关系,一个对象状态改变,其他相关联的对象就会得到通知并被自动更新。

阅读全文

Java IO: InputStreamReader和OutputStreamWriter

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本章节将简要介绍InputStreamReader和OutputStreamWriter。细心的读者可能会发现,在之前的文章中,IO中的类要么以Stream结尾,要么以Reader或者Writer结尾,那这两个同时以字节流和字符流的类名后缀结尾的类是什么用途呢?简单来说,这两个类把字节流转换成字符流,中间做了数据的转换,类似适配器模式的思想。

阅读全文

Java IO: Reader和Writer

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

Reader

原文链接

Reader是Java IO中所有Reader的基类。Reader与InputStream类似,不同点在于,Reader基于字符而非基于字节。换句话说,Reader用于读取文本,而InputStream用于读取原始字节。

阅读全文

Java IO: 序列化与ObjectInputStream、ObjectOutputStream

作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com)

本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和ObjectOutputStream。

Serializable

原文链接

如果你希望类能够序列化和反序列化,必须实现Serializable接口,就像所展示的ObjectInputStream和ObjectOutputStream例子一样。

阅读全文

69道Spring面试题和答案

原文地址    译者:深海(1422207401@qq.com)  校对:方腾飞

目录

  • Spring 概述
  • 依赖注入
  • Spring beans
  • Spring注解
  • Spring数据访问
  • Spring面向切面编程(AOP)
  • Spring MVC

Spring 概述

1. 什么是spring?

Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

阅读全文

Java Reflection(十二):动态类加载与重载

原文地址 作者: Jakob Jenkov 译者:叶文海(yewenhai@gmail.com)
内容索引
类加载器
类加载体系
类加载
动态类加载
动态类重载
自定义类重载
类加载/重载示例
Java允许你在运行期动态加载和重载类,但是这个功能并没有像人们希望的那么简单直接。这篇文章将阐述在Java中如何加载以及重载类。
你可能会质疑为什么Java动态类加载特性是Java反射机制的一部分而不是Java核心平台的一部分。不管怎样,这篇文章被放到了Java反射系列里面而且也没有更好的系列来包含它了。
阅读全文

return top