随笔分类 - Java
摘要:领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。于是我经常听到这样一个问题:怎么才能保证建模的正确性?这听起来是个合理的质疑,但实际上却不是那么有道理。首先我们需要明白建模的目的是什么?如果仅仅是为了描画问题,那么并没有什么对错之分——仅仅是立场和角度的差别;而如果是为了企业业务系统而进行建模,那么这个问题应该变为:如何保证模型能够支撑企业的运营?我想用下面这个例子来简要的回答一下这个问题。在开始分析和建模之前,我们需要知道企业业务系统的目的是什么;而企业业务系统的目的往往跟决策者或者管理的诉求相关。我们现在需要移情到一位管理者身上,看看他的诉求到底是什么..
阅读全文
摘要:<1>依赖依赖关系用虚线加箭头表示,如图所示:上图表示:Animal类依赖于Water类(动物依赖于水)。依赖是类的五种关系中耦合最小的一种关系。因为依赖关系在生成代码的时候,这两个关系类都不会增加属性。这种微弱的关系可以用类之间的相互了解的程度来说明。(下图为代码生成图)由上图可见生成的代码中Animal类的属性中没有增加Water类。那么Animal类如何使用Water类呢,有三种方式:依赖关系的三种表现形式:①Water类是全局的,则Animal类可以调用它②Water类是Animal类的某个方法中的变量,则Animal类可以调用它。代码演示如下: PS:Animal有一个长
阅读全文
摘要:之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。架构演变第一步:物理分离webserver和数据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚
阅读全文
摘要:Don’t Repeat Yourself (DRY) DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法。参考:http://en.wikipedia.org/wiki/KISS_principleProgram to an interface, not an implementation这是设计模式中最根本的哲学,注重接口
阅读全文
摘要:原文:http://scud.blogjava.netCXF是一个比较流行的Web Service框架. ( 当然如果追求更高效, 还可以去搜索ice, thrift, protobuff之类的)近一个月, 断断续续地又好好看了看CXF的一些代码, CXF的文档还是很欠缺,特别是关于内部实现的东西. 从我的感觉来说, 内部实现还是挺复杂的. Inteceptor, Feature, ConduitSelector 这些概念一大堆, 又差不多可以做类似的事情, 真是让人头晕.CXF本身提供了一个FailoverFeature, 可以在调用服务出错时切换到其他服务器, 但是无法做到负载均衡, 我研
阅读全文
摘要:*MappedByteBuffer的创建 在FileChannel上调用map方法 返回一个MappedByteBuffer对象 public MappedByteBuffer map(MapMode mode, long position, long size)
MapMode 映射模式(MapMode 是FileChannel中的一个内部类) 有三个可选值 1.READ_ONLY 只读映射模式 2.READ_WRITE 读/写映射模式 3.PRIVATE 通过put方法对MappedByteBuffer的修改 不会修改到磁盘文件 只是虚拟内存的修改*MappedByteBuffer在父类.
阅读全文
摘要:1.Scatter 从一个Channel读取的信息分散到N个缓冲区中(Buufer).2.Gather 将N个Buffer里面内容按照顺序发送到一个Channel. Scatter/Gather功能是通道(Channel)提供的 并不是Buffer, Scatter/Gather相关接口 类图 ReadableByteChannel WritableByteChannel 接口提供了通道的读写功能 ScatteringByteChannel GatheringByteChannel接口都新增了两个以缓冲区数组作为参数的相应方法 以FileChannel为例*Scatter /**...
阅读全文
摘要:*Buffer: 缓冲区 是特定基本类型元素的线性有限序列 Buffer中的数据结构是原始数据类型的数组 例如 jdk ByteBuffer中定义的byrte数组public abstract class ByteBuffer extends Buffer implements Comparable<ByteBuffer>
{ final byte[] hb;
}
Buffer类图(除去boolean原始类型没有 其他都有)*Buffer的实例化1.Buffer具体子类的allocate方法 例如 ByteBuffer public static ByteBuffer a...
阅读全文
摘要:import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.Channel;
import java.nio.channels.File
阅读全文
摘要:Eclipse版本:Indigo Service Release 2打开c:/windows/fonts()确认该字体存是否存在。 1.C:/windows/fonts/Courier New 右键 ->显示 (window7 C:\Windows\Fonts) window7系统到这一步 问题可能已解决了 重新打开Eclipse Window->preference-->Colors and Fonts看看如果没解决 继续下面步骤2. 关闭Eclipse 修改eclipse目录/plugins/org.eclipse.jface_3.7.0.I20110522-1430.j
阅读全文
摘要:一:服务端web.xml <!-- DispatcherServlet --> <servlet> <servlet-name>Spring-DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> &
阅读全文
摘要:一:服务端(HessianServlet暴露服务)web.xml <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <!-- 一个服务对应一个HessianServlet ? --> <init-param> <param-name>home-class</param-name> <para
阅读全文
摘要:import java.util.LinkedHashMap;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock; public class LRUCache<K, V> extends LinkedHashMap<K, V> { private static final long serialVersionUID = -656812640814484468L; /** 默认最大容量 */ private static final int DEF
阅读全文
摘要:环境:1、sun jdk1.6.02、jprofiler_windows_6_0_2.exe安装1. jdk, 安装略...2. jprofiler安装一路next 到Enter license key 界面key :L-Larry_Lau@163.com#78484-akisfpr22a5j#268在一直next到finish 很简单配置监控tomcat web项目剩下的三步都默认 一路next下去 完成启动
阅读全文
摘要:一:发布服务web.xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listene
阅读全文

浙公网安备 33010602011771号