辰风君的笔记本

Cwind’s Technical Notes

Java 8 Stream API 实战

| Comments

谈起Java Stream API,我们希望能够弄明白它究竟是什么,能够用来做什么,有什么优势,并能够应用于具体场景。分别简述如下。

不是什么

  • Java Stream API 不是输入输出流,与java.io包里的InputStream和OutputStream概念完全不同
  • 不是用于解析XML的XMLStream
  • 不是Valve公司的游戏平台
  • 也不是集合元素,不是数据结构不保存数据

是什么

  • 是Java 8 中引入的新特性,是对集合(Collection)对象功能的增强
  • 是关于算法和计算的,更像一个高级版本的迭代器(Iterator)

MEAN全栈开发:前后端整合

| Comments

本文是由三个部分组成的系列教程的最后一篇。我们将使用MEAN技术栈(MongoDB,ExpressJS,AngularJS和NodeJS)构建一个待办事项应用程序。

第三部分:前后端整合


MEAN全栈开发:AngularJS实战教程

| Comments

本系列教程的主要目的是尽可能清楚地阐释如何使AngularJS与Node.js、Express.js和MongoDB实现的后台服务连接 – 这套技术栈也被称为MEAN stack(M=MongoDB, E = Express.js, A = AngularJS, N = Node.js)。让我们从AngularJS开始。

第一部分:AngularJS

我们将会在一个单独的HTML文件中构建所有的示例,它将嵌入javascript,同时为了简化,我们并不关心样式/CSS。我们将在后续教程中讨论如何利用angularJS模块来分解代码,加入测试以及样式。

轻量级框架与重量级框架

| Comments

事实上“轻量级”与“重量级”并没有确切的定义。轻重量级之分应当考虑如下几个方面:

加载的资源

Spring相对于EJB是轻量级的,但这就好像说大象比鲸轻。
如果你想要运行一个Java EE应用程序,你不能够简单地创建一个应用并直接运行它本身。需要一个JavaEE服务器来运行应用,例如Glassfish,WebLogic或WebSphere。多数应用服务器都是非常巨大并且复杂的,并不容易安装和配置。

EJB应用启动时要消耗大量的资源,内存、CPU等,把所有的服务都加载进来;Spring则是可定制服务,需要什么加载什么。

进程内缓存与分布式缓存的比较

| Comments

在这篇文章里我们将比较当需要对缓存方案进行技术选型时,使用进程内缓存与分布式缓存的优劣。

首先来看一下二者的定义。顾名思义,进程内缓存是与应用程序在相同地址空间的缓存。Google Guava是一个提供了简单进程内缓存API的很好的例子。另一方面,分布式缓存是应用程序的外部扩展,通常部署在多个节点上,共同构成一个大的逻辑缓存。Memcached是一个流行的分布式缓存。Terracotta公司的Ehcache则是一个通过配置可以以任一种方式使用的缓存产品。

Java读写Excel:Apache POI, JXL与OpenCSV

| Comments

前些日子把JXL替换为ApachePOI,原因很简单,JXL在2009年10月已经停止更新,并且不支持Excel 2007 OOXML (.xlsx)格式的文件。事实上把JXL与POI进行比较并不公平,因为JXL只能够操作OLE2格式的Excel(即.xls),而POI则是能够读写xls(x)、doc(x)、ppt(x)的一整套解决方案。

Java文件变更监控的两种实现

| Comments

对文件及文件夹进行修改变更监测有很广泛的应用,例如:

  • 通知配置文件的改变
  • 跟踪某些关键的系统文件的变化
  • 监控某个分区磁盘的整体使用情况
  • 系统崩溃时进行自动清理

从Introspector谈Java内省机制

| Comments

内省
内省是Java语言的一种重要特性。使用内省我们可以在运行时得到一个类的内部信息。这些信息包括方法、属性、构造函数及其他。内省的一个应用是开发使用插件的应用程序。应用程序可以在运行时获取并使用插件类的构造函数、方法和属性。内省也可以应用于创建Java Beans和Javadocs中。