Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

《软件设计模式与体系结构》学习笔记:软件设计模式概论

《软件设计模式与体系结构》学习笔记:软件设计模式概论

软件设计模式的概念软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的已被验证的成功解决之道。大量的软件设计模式都是之前从事软件设计开发的前人经过大量的实践而摸索出来的,用于帮助后来者快速高效且高质从事软件开发的。高等学校软件工程系列教材:软件设计模式与体系结构PDF 下载见 http://www.linuxidc.com/Linux/2016-12/138397.htm软件设计模式的要素软件设计模式一般会包含四个基本要素:模式名称:此种...
JDK1.7 ConcurrentHashMap 源码浅析

JDK1.7 ConcurrentHashMap 源码浅析

概述ConcurrentHashMap是HashMap的线程安全版本,使用了分段加锁的方案,在高并发时有比较好的性能。本文分析JDK1.7中ConcurrentHashMap的实现。正文ConcurrentHashMap概述HashMap不是线程安全的,要实现线程安全除非加锁,但这样性能很低。ConcurrentHashMap把整个HashMap数组分成了若干个Segment,每个Segment里有一个数组。添加一个Key时,需要先根据hash值计算出其所...
Java中的关键字 transient

Java中的关键字 transient

阅读目录先解释下Java中的对象序列化关于transient关键字举个例子参考资料先解释下Java中的对象序列化在讨论transient之前,有必要先搞清楚Java中序列化的含义;Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输,一般当我们使用缓存cache(内存空间不够有可能会本地存储到硬盘)或远程调用rpc(网络传输)的时候,经常需要让我们的...
Java开发代码性能优化总结

Java开发代码性能优化总结

代码优化,可能说起来一些人觉得没用.可是我觉得应该平时开发过程中,就尽量要求自己,养成良好习惯,一个个小的优化点,积攒起来绝对是有大幅度效率提升的。好了,将平时看到用到总结的分享给大家。代码优化的目标:减小代码体积提高整个系统的运行效率代码细节优化尽量指定类,方法的final修饰符带有final修饰的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的.为类指定final修饰符可以...
Java 持久化和序列化的简单理解

Java 持久化和序列化的简单理解

1.对象的持久化(Persistence)对象持久化就是让对象的生存期超越使用对象的程序的运行期。将对象存储在可持久保存的存储介质上,在实际应用中,运用相应的对象持久化框架,将业务数据以对象的方式保存在数据库中,如比较早的Hibernate。在一定周期内保持不变就是持久化,持久化是针对时间来说的。数据库中的数据就是持久化了的数据,只要你不去删除或修改。比如在IE浏览器中一次Session会话中Session对象变量也是不变的,是Session容器中持久化。...
Linux应用程序开发示例:LED灯定时闪烁

Linux应用程序开发示例:LED灯定时闪烁

Linux应用程序开发示例:LED灯定时闪烁一、开发平台:beaglebone black二、应用层代码:??先建立文件目录?下面给出代码:三、编译代码?四、运行代码?可以观察到led灯在不断的闪烁。五、分析下面进入/sys/class/gpio目录下观察?我们可以知道,基本上Linux对gpio口的操作都位于这个文件目录下。这个文件可以设置高低电平、输入输出、边沿检测、以及数值等。这个应该是linux定义的标准驱动接口文件。本文永久更新链接地址:http...
C#设计模式-中介者模式

C#设计模式-中介者模式

在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。一、 中介者(Mediator)模式从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊天的话,可能就需要当面才可以了。电话、短信也同样是一个中间平台,有了这个中间平台,每个用户都不...
C#设计模式-迭代器模式

C#设计模式-迭代器模式

一、 迭代器(Iterator)模式迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的话,集合对象就承担太多的责任了,面向对象设计原则中有一条是单一职责原则,所以我们要尽可能地分离这些职责,用不同的类去承担不同的职责。迭代器模式就是用迭代器类来承担遍历集合元素的职责。迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无...
C#设计模式-模板方法模式

C#设计模式-模板方法模式

提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同的内容要完成属于自己的简历。在设计模式中,模板方法模式中模板和生活中模板...
C#设计模式-代理模式

C#设计模式-代理模式

在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。一、 代理(Proxy)模式代理模式按照使用目的可以分为以下几种:远程(Remote)代理:为一个位于不同的地址空间的对象提...
C#设计模式-享元模式

C#设计模式-享元模式

在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。一、 享元(Flyweight)模式在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解决上面那个问题,上面的问题就是重复创建了同一个对象,如果让我们去解...
Java中防止表单重复提交

Java中防止表单重复提交

表单的重复提交: 没有完整的进行一次,先请求表单页面->再提交表单过程而完成数据提交造成的根本原因: 没有完整的进行一次,先请求表单页面->再提交表单过程.造成重复提交的现象:由于服务器缓慢或网络延迟的原因,重复点击提交按钮.已经提交成功,刷新成功页面(forward)(请求转发).已经提交成功,通过回退,再次点击提交按钮注意:回退后,刷新表单页面,重新再提交,这时,不是重复提交,而是发送新的请求,在Firefox下,重复提交到同一个地址的操作...
Node.js 事件循环

Node.js 事件循环

Node.js 事件循环Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.事件驱动程序Node.js...
Matlab 高斯_拉普拉斯滤波器处理医学图像

Matlab 高斯_拉普拉斯滤波器处理医学图像

前言:本程序是我去年实现论文算法时所做。主要功能为标记切割肝脏区域。时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述。NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像还是有一定的借鉴意义想借鉴本文的一定要仔细阅读代码和注释,中间有人机交互部分,空跑会抛异常.dcm数据,有兴趣的可以下载,实测一下代码。dcm数据下载地址:Linux公社资源站下载:----------------------------------------...
Quartz实现任务调度

Quartz实现任务调度

Quartz框架核心概念 Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。 任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义 触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能, 调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行Quartz框架的使用流程 在系统中,对员...
Linux设备管理_kobject_kset_kobj_type

Linux设备管理_kobject_kset_kobj_type

Linux内核大量使用面向对象的设计思想,通过追踪源码,我们甚至可以使用面向对象语言常用的UML类图来分析Linux设备管理的"类"之间的关系。这里以4.8.5内核为例从kobject,kset,kobj_type的分析入手,进而一探内核对于设备的管理方式container_of宏这个宏几乎是linux数据结构的基础,Linux中的链表与传统的链表不同,其链表的节点本身并不包含任何数据,任何想要插入到链表的数据只需要包含一个事先写好的节点//include...
Linux网络驱动--snull

Linux网络驱动--snull

snull是《Linux Device Drivers》中的一个网络驱动的例子。这里引用这个例子学习Linux网络驱动。因为snull的源码,网上已经更新到适合最新内核,而我自己用的还是2.6.22.6比较旧的内核。而网上好像找不到旧版的snull。因此结合《Linux Device Drivers》把最新的snull例子移植到2.6.22.6内核中。移植也相对简单,这里也提供移植好的代码。估计不少网友看到《Linux Device Drivers》的网络...
<< 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 >>