- 浏览: 35620 次
- 性别:
- 来自: 成都
最新评论
-
lkl:
很好的一篇文章
hibernate 和 spring 整合的事物管理
文章列表
今天做一个日期转换的时候发现有些时间是用大写汉字写成的,需要转换成相应的数字值才能使用SimpleDateFormat进行格式刷。
问题描述:在月份和日的时候有十几、二十几、这样的数组出现如果直接转成相应的数组就会转成10X或者20X。
解决方法:写一个汉字对应数字的Map,当年份的时候直接在Map中取出对应数字即可,在月份和日的时候就单独写个方法解决。
方法思路:<伪码>
Map<String,String>chineseMap=new HashMap<String,String>();
chineseMap.put("一& ...
里氏替换原则:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版定义::所有引用基类的地方必须能透明地使用其子类的对象。
在使用里氏代换原则时需要注意如下几个问题:
(1)子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。根据里氏代换原则,为了保证系统的扩展性,在程序中通常使用父类来进行定义,如果一个方法只存在子类中,在父类中不提供相应的声明,则无法在以父类定义的对象中使用该方法。
(2) ...
扇入和扇出的概念是指应用程序模块之间的层次调用情况
扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程序高。
扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过
大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入
更加恰当的说法是:描述负载状况的一种描述方式
系统架构风险:架构设计中潜在的、存在问题的架构决策带来的隐患
敏感点:为了实现某种特定的质量属性,一个或多个系统组件所具有的特性
权衡点:影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性
实体类、边界类和控制类
实体类:
实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。
边界类:
边界类是系统内部与系统外部的业务主角之间进行交互建模的类。边界类依赖于系统外部的环境,比如业务主角的操作习惯、外部的条件的限制等。它或者是系统为业务主角操作提供的一个GUI,或者系统与其他的系统之间进行一个交互的接口,所以当外部的GUI变化时,或者是通信协议有变化时,只需要修 ...
一、关系代数的9种操作:
关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。
五个基本操作:
并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)
四个组合操作:
交(∩)、联接(等 ...
HDFS 与 GFS 的设计差异
我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的
写入模型
HDFS 在考虑写入模型时做了一个简化,就是同一时刻只允许一个写入者或追加者。
在这个模型下同一个文件同一个时刻只允许一个客户端写入或追加。
而 GFS 则允许同一时刻多个客户端并发写入或追加同一文件。
允许并发写入带来了更复杂的一致性问题。
多个客户端并发写入时,它们之间的顺序是无法保证的,同一个客户端连续追加成功的多个记录也可能被打断。 这意味着一个客户端在连续写入文件 ...
综合布线七大子系统
综合布线系统是开放式结构,能支持电话及多种计算机数据系统,还能支持会议电视、监视电视等系统的需要。综合布线系统可划分成七个子系统,工作区子系统;配线( ...
业务需求(Business requirement)表示组织或客户高层次的目标。
业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。
用户需求(user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需 ...
瀑布模型/改进的瀑布模型
虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求 ->分析->设计->编码->测试的阶段 ...
管道和过滤器风格
在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全 ...
常见架构风格
一、客户端-服务器
将系统分为两个应用,其中客户端向服务器发送服务请求。
二、基于组件的架构
把应用设计分解为可重用的功能、逻辑组件,这些组件的位置相互透明,只暴露明确定义的通信接口。
三、分层架构
把应用的关注点分割为堆栈组(层)。
四、消息总线
指接收、发送消息的软件系统,消息基于一组已知格式,以便系统无需知道实际接收者就能互相通信。
五、N层/三层架构
用与分层风格差不多一样的方式将功能划分为独立的部分,每个部分是一个层,处于完全独立的计算机上。
六、面向对象
该架构风格是将应用或系统任务分割成单独、可重用、可自给的对象,每个对象包含数据,以及与对象相关的行为。
...
最近在看线程池的类容,自己动手实现一个
package cn.RJ.utils;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
/**
* 线程池
* @a ...
自己在开发中遇到了一些问题,在解决了问题后随笔记之。。
一、中文验证码
Random random = new Random();
String randomStr = null;
for(int i = 0 ; i < 4 ; i++){
int randomInt = 0x4e00 + random.nextInt(0x9fa5 - 0x4e00);
randomStr += (char)randomInt;
}