编程之家(jb51.cc)开发工具栏目主要收集最新程序设计材料,例如:程序设计,设计模式等。
UML概述UML简介UML(Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号
设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就是成为了这个行业中的设计师和施工人员的必须课。软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。UML成为了分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。
对象与类对象的特点状态行为标识对象与类的区别对象是一个存在于时间和空间中的具体实体,而类是一个模型,该模型抽象出一组对象的共同“本质”,即一组公共属性和一组公共方法。当用类创建一组对象时,每一个对象都从类中复制了相同的一组属性和一组公共方法。类是静态的描述,对象是动态的实体;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象,对象是具体。对象的表示在UML中表示一个对象,主要是标识它的名称、属性和操作。对象由一个矩形表示,矩形可以分成2栏或3栏。若只想标识对象的名
什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程化;设计模式使软件工程的 基石脉络, 如同大厦的结构一样;并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引
单一职责原则定义(Single Responsibility Principle,SRP)一个对象应该只包含 单一的职责,并且该职责被完整地封装在一个类中。Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by t
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强烈推荐。原文截图*************************************************************************************************************************原文文本************
主要讲解哈希表原理、冲突、扩容的相关知识
堆(Heap)是一种重要的数据结构,是实现优先队列(Priority Queues)首选的数据结构。
宽度优先搜索,又称BFS,在面试中出现频率仅次于双指针,由于其上手快,难度较低,性价比很高!推荐各位同学们优先掌握。
手把手带你入门动态规划
最常见的动态规划-01背包
双指针算法:同向双指针模板以及相关面试题
二叉查找树的增删查改
数据结构和算法(第 1 章):什么是数据结构和算法
一、复杂度分析首先要明确一点,数据结构和算法本质是解决“快”和“省”的问题。要描述一个算法的好坏就需要用到复杂度分析了,复杂度分析可分为如下两种。时间复杂度空间复杂度时间复杂度就是描述算法的快,空间复杂度则是描述算法的省。一般说的复杂度都是时间复杂度,毕竟现代计算机存储空间已经不那么拮据了,时间复杂度是我们重点研究的内容。二、大 O 复杂度表示法首先看一段代码,求从 1~n 的累加之和。int demo(int n) { int i; int sum = 0;.
一、多级分类问题在实际开发的过程中,会经常遇到多级分类的问题。譬如,导航栏、菜单、商品种类、多级联动、字典表等等的多级分类问题。这时可以新增一个 pid 字段进行数据关联,它本质上其实就是一棵树。树就可以很好的解决多级分类的子分类查询。但是这种方式有一个致命的问题:查询效率过低!!!当我们在程序里查询某个子节点时,要先从根节点进行递归查询,时间复杂度是 O(n)。那么有没有一种方式,改进树的查询效率呢?答案是肯定的!很多树都在标准的树上进行改进过,比如二叉树、红黑树、堆等等。但这都不是重点,今天要
集合是数据结构中基本的结构,它完全和数学中的集合一致,那下面就来看下数学中的集合到底是什么?一、集合是什么集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。其中,构成集合的这些对象则称为该集合的元素。举几个例子,如果以人类为一个集合,中国人就是该集合中的一个元素。如果以 0-100 的自然数为一个集合,0 就是该集合中的一个元素,记作 0∈100,101 不是该集合中的元素,就记作 0∉100。 更详细的请打开高数(一)第一章仔细看看。二、集合的特性集合有下面三个特性:确定性: 给
为了演示不同类型的 ElasticSearch 的查询,我们将使用书文档信息的集合(有以下字段:title(标题), authors(作者), summary(
内存堆和栈的区别 原文: http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.h
常用的算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(
经典的排序算法的总结 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时
布隆过滤算法体会(BlooomFilter) Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这