- 博客(39)
- 收藏
- 关注
原创 面向对象编程六大原则
[b]里氏替换原则[/b]:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版定义::所有引用基类的地方必须能透明地使用其子类的对象。在使用里氏代换原则时需要注意如下几个问题: (1)子类的所有方法必须在父类中声明...
2017-08-30 23:39:16
183
原创 扇入和扇出
扇入和扇出的概念是指应用程序模块之间的层次调用情况扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程序高。扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中...
2017-08-30 23:19:06
1538
原创 系统架构敏感点,权衡点
系统架构风险:架构设计中潜在的、存在问题的架构决策带来的隐患敏感点:为了实现某种特定的质量属性,一个或多个系统组件所具有的特性权衡点:影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性...
2017-08-28 00:08:16
5077
原创 实体类、边界类和控制类
[b]实体类、边界类和控制类[/b]实体类: 实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。边界类: 边界类是系统内部与系统外部的业务主角之间进行交互建模...
2017-08-23 16:42:39
1907
原创 数据库关系代数表达式
一、关系代数的9种操作: 关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五个基本操作: 并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π) 四个组合操作: 交(∩)、联接(等值联接)、自然联接(RcrossS)、除法(÷) 注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选...
2017-08-23 15:59:47
13674
4
原创 HDFS 与 GFS 的设计差异
[b]HDFS 与 GFS 的设计差异[/b] 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的 [b]写入模型[/b] HDFS 在考虑写入模型时做了一个简化,就是同一时刻只允许一个写入者或追加者。 在这个模型下同一个文件同一个时刻只允许一个客户端写入或追加。 而 ...
2017-08-23 14:02:34
510
原创 综合布线七大子系统
综合布线七大子系统 综合布线系统是开放式结构,能支持电话及多种计算机数据系统,还能支持会议电视、监视电视等系统的需要。综合布线系统可划分成七个子系统,工作区子系统;配线(水平)子系统;干线(垂直)子系统;设备间子系统;管理子系统;建筑群子系统;光缆传输系统。 一、工作区子系统 一个独立的需要设置终端的区域,即一个工作区,工作区...
2017-08-23 00:54:52
8256
原创 理解业务需求、用户需求、功能需求
业务需求(Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market r...
2017-08-18 00:47:10
4610
原创 开发模型
瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求 ->分析->设计->编码->测试的阶段进行,每一个阶段都可以定义明确的产出物和验证准则.瀑布模型在每一个阶段完成后都可以 组织相关的评审和验证,只有在评审通过后才能够进入到下一个阶段. 由于需要对每一个阶段进行验证,...
2017-08-18 00:38:31
148
原创 架构风格说明
[b]管道和过滤器风格[/b] 在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的 过滤器必须是独立的实体,它...
2017-08-10 00:04:04
214
原创 常见架构风格
常见架构风格一、客户端-服务器 将系统分为两个应用,其中客户端向服务器发送服务请求。二、基于组件的架构 把应用设计分解为可重用的功能、逻辑组件,这些组件的位置相互透明,只暴露明确定义的通信接口。三、分层架构 把应用的关注点分割为堆栈组(层)。四、消息总线 指接收、发送消息的软件系统,消息基于一组已知格式,以便系统无需知道实际接收者就能互相通信。五、N层/三层架构...
2017-08-09 23:46:04
638
原创 java中线程池
最近在看线程池的类容,自己动手实现一个[code="java"] package cn.RJ.utils;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;i...
2016-06-26 16:31:03
83
JAVAEE开发中小主意点
自己在开发中遇到了一些问题,在解决了问题后随笔记之。。 一、中文验证码 [code="java"] Random random = new Random(); String randomStr = null; for(int i = 0 ; i < 4 ; i++){ int randomInt = 0x4e00 + rando...
2016-01-03 21:56:43
80
原创 JAVA常用加密技术
JAVA常用加密技术加密 最近看到公司一个以前项目的MD5加密方式,让我对JAVA加密感觉到一些兴趣,但是公司的MD5加密是自己写的一个MD5工具类算法类进行加密。但窝了解到一些其他的加密方式。 一、DES加密 DDES(Data Encryption Standar 数据加密标准算法)是一种常见的对称密钥加密算法,加密者使用密...
2015-12-15 23:39:20
159
原创 jvm常用设置
在我们实际工作中,可能会经常对JVM有一些设置,但是很多设置都是知其然不知其所以然,今天找了下资料,归纳一下:-Xms:java Heap初始大小, 默认是物理内存的1/64。-Xmx:ava Heap最大值,不可超过物理内存。-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一 。增大年轻代后,将会减小年老代大小,可以根据监控合理设置。-Xss...
2015-09-08 22:48:02
100
原创 SqlServer相关
转载: (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚...
2015-08-03 23:47:13
153
java RMI
[size=xx-small][align=center]JAVA RMI相关[/align][/size] 分布式计算是解决大型应用的一种重要手段。它指的是一种应用程序的设计模式,其中的程序,所处理的数据和计算能力都分布于网络中。这样可以很好地平衡各个计算机的处理能力。 套接字:套接字(socket)为两台计算机之间的通信提供了一种机制,让您不必...
2015-07-23 23:04:12
124
原创 java jdbc 连接池
经常使用hibernate,在使用hibernate的时候经常使用到DBCP和C3P0的连接池,某天自己突然想起自己来实现一个连接池。test了下,效果还可以,随记录之[code="java"]import java.sql.Connection;import java.sql.DriverManager;import java.util.Stack;public cl...
2015-07-21 00:18:53
78
java 流传输压缩包
有的时候,页面上的下载文件是从后台使用流的形式下载来的,而不是直接使用src,这样有很多好处,资源的路径是隐藏的了,不会再页面处就可以查看到资源。 原理:浏览器接收到后台传来的信息首先要解析的是:content-type,,然后处理数据。这里需要设置content-type为application/zip.浏览器接收到这个content-type就会认为它是一个二进制的压缩文件,就会在窗口提...
2015-07-14 23:14:34
1057
原创 java 网络传输文件
package sterning;import java.io.BufferedInputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.net.Serv...
2015-06-01 21:14:41
135
原创 java MD5加密
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。 Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可以获取字符串...
2015-03-30 14:41:29
114
原创 java 并发容器
在多线程的开发中经常会碰到数据的并发修改,并发存取,因此正确的使用不同的容器很关键,直接影响到数据的正确性。下面主要记录下三种重要的队列,以及一种非常使用的 双端队列 。1、同步容器 主要代表有Vector和Hashtable,以及Collections.synchronizedXxx等。 锁的粒度为当前对象整体。 ...
2014-12-18 23:19:38
74
原创 java设计模式 之 builder模式
最近在看java设计模式,看到builder模式感觉十分不错,遂记之,以加深理解和学习、、[code="java"]public class Hero { private final Profession profession; private final String name; private final HairType hairType; private fin...
2014-12-11 22:19:37
103
原创 网上见到一篇compareTo文章较好,收藏之
1、compareTo(Object o)方法是java.lang.Comparable接口中的方法,当需要对某个类的对象进行排序时,该类需要实现Comparable接口的,必须重写public int compareTo(T o)方法,比如MapReduce中Map函数和Reduce函数处理的 ,其中需要根据key对键值对进行排序,所以,key实现了WritableComparable接...
2014-12-04 21:04:19
103
java 类加载异常分析
在编程中我们经常遇到:ClassNotFoundException / NoClassDefFoundError / NoSuchMethodError / NoSuchMethodException这几个异常和错误。 这事由于jvm加载机制不同引起的,如果我们知道这些知识就能快速判断出问题出在哪儿。 ClassNotFoundException: 当应用程序试图...
2014-11-11 23:04:33
343
spring中使用声明式事物的配置
声明意味着我们告知spring某个bean的某个方法需要事物管理,之后spring就会保证此方法被调用时,会有对应的事物贯穿其中。次实现方式完全依赖AOP对方法进行拦截。 声明式事务的最大好处在于我们无需修改既有代码。方法实现过程中,我们压根无需为其添加事务管理支持。 xml配置 [code="java"] //..省略 ...
2014-10-27 22:45:02
110
hibernate 和 spring 整合的事物管理
由于以前没有深入接触到spring,对spring的事物支持不了解,以前自己参与的一些系统中,出现过在业务逻辑层一个小步出错,但是前面的步骤已经持久化,不能回滚。只能通过定时器读取日志,发现出错就删除这条记录。在最近较为深入的了解spring,发现spring对事物的支持能解决这一问题。 一、如果多个数据源(使用spring的jta事物管理策略) org.springf...
2014-10-15 22:06:46
117
Hibernate 和 spring 整合使用
在hibernate和spring时总结的一些知识,以供将来查询和使用。 spring针对hibernate的整合做了许多的努力,当我们使用spring时,对hibernate的使用变得更加简单。 hibernate通过sessionFactory创建session,spring对hibernate进行了无缝的整合,无需自己写代码实现通过Configuration.buildS...
2014-10-14 21:28:27
119
原创 hiernate 集中管理session
问题: 使用hibernate 一般会使用到hibernate的延迟加载技术,但是我在第一次使用延迟加载的时候,发现报错,不能取出延迟集合中的值。当时只能不使用延迟加载。原因: 在dao层把数据取出后,已关闭session,而处理延迟的集合是在业务逻辑层,在需要使用延迟的集合的时候,hibernate会去数据库取数据。但是现在session已经关闭,所以不能取出延迟的数据...
2014-10-13 21:55:57
98
原创 java写入txt文件
[code="java"]File file = new File("d:/Data.txt"); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); return; } } Out...
2014-05-22 23:10:07
203
原创 POI读取excel
读取excel大概在java中有两种方法,选用apache的POI读取示例[code="java"]public class ExportStandName { /** * 取得标准表中的标准字段放在一个map的key中 * * @return standMap */ private Map readStandExcel() { Map sta...
2014-05-22 23:05:44
107
原创 定时器 quartz 和 spring
最近学习了一个quartz 和spring 的定时调度这个技术的关键是。xml文件的配置问题[code="java"] 0 05 23 * * ?" work...
2014-04-17 23:30:48
71
JavaScript添加收藏方法
由于在最近做的项目的页面需要添加收藏的功能。写下这个方法来解决这个问题[code="java"]function AddFavorite() { var sURL = window.location; //你自己的主页地址 var sTitle = document.title; //你自己的主页名称 try { window.externa...
2014-04-15 20:36:03
208
java 基于Struts2的 文件上传和下载
文件上传:页面代码:[code="java"][/code]action中代码:[code="java"]String uploadPath =ServletActionContext.getServletContext().getRealPath("/reviseUpload")+ "\\" + this.getMyFileFileName(); ...
2014-04-03 22:56:02
111
原创 java IO
[code="java"]import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class Test6 { public static String read(Str...
2014-03-23 23:23:19
94
原创 自己写的一个JDBC工具类
在最近的一段时间写毕业设计,由于本科阶段的毕业设计不是特别大的项目,所以在数据库连接的这一块就使用了JDBC没有使用框架,但是发现一个好的JDBC工具类也不是那么好写,把自己的记录下来以便以后学习和提高[code="java"]import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLEx...
2014-03-11 20:00:02
388
原创 JAVA EE里的一些配置文件
这段时间在写毕业设计,用到了SSH三大框架的一些技术,但是自己在配置配置文件的时候发现自己对一些配置文件的了解和记忆还不是很牢靠,现在整理下一些常用的配置文件,以便下次使用和复习web.xml[code="java"] 120 contextConfigLocation classpath://spring/**/*.xml...
2014-03-11 19:56:21
139
java汉字数字转换成阿拉伯数字
今天做一个日期转换的时候发现有些时间是用大写汉字写成的,需要转换成相应的数字值才能使用SimpleDateFormat进行格式刷。 问题描述:在月份和日的时候有十几、二十几、这样的数组出现如果直接转成相应的数组就会转成10X或者20X。 解决方法:写一个汉字对应数字的Map,当年份的时候直接在Map中取出对应数字即可,在月份和日的时候就单独写个方法解决。 方法思路: M...
2014-02-20 17:14:22
855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人