
软件工程、原理
文章平均质量分 63
马如林
桂林电子科技大学计算机硕士,15年+的编程和架构经验,美国PMI认证PMP,Oracle认证Java程序员,信息系统项目管理师,软件设计师,CET6。
展开
-
计算机必读经典教材图书推荐
以下图书值得一读。 0 C程序设计语言(英文版.第2版)1 计算机组成原理(附光盘1张) 2 汇编语言(第2版)3 计算机组成与体系结构:性能设计(原书第8版)4 软件工程实践者的研究方法(原书第6版) 5 编译原理(第2版)6 数据库系统概念(原书第5版)7 操作系统设计与实现(第三版)8 算法导论(原书第2版)9 设计模式--可复用面向对象软件的原创 2012-03-11 09:56:30 · 3194 阅读 · 0 评论 -
缓冲区溢出
缓冲区溢出:通俗的讲就是内存读写问题。一般包括:堆和栈的溢出,当然也可以包括代码区等。下面的例子可以用来实施攻击,因为它修改了函数的执行跳转。 #include "stdafx.h"#include stdio.h>#include string.h>void vulFunc(char* s) ...{ char buf[10]; strcpy(buf,原创 2008-03-25 15:13:00 · 852 阅读 · 0 评论 -
函数调用和栈的内存分配过程分析
学习程序到底怎么调用的和内存怎样分配的,其实了解函数的调用和堆栈的内存管理是很有必要的。程序的代码是存放在代码区的,一般代码区为只读的,不可修改的,道理很简单就是程序的安全性。其他的常量什么的也有自己的内存区域, 栈的调用过程一般是内存地址向下分配的。首先来看一个简单的例子:VC6.0测试// struct.cpp : Defines the entry point for t原创 2008-03-29 19:19:00 · 3906 阅读 · 0 评论 -
堆与栈有什么区别?
堆与栈有什么区别?一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区转载 2008-03-25 14:11:00 · 1137 阅读 · 1 评论 -
IIS本机可以访问局域网不可以的问题
一般都是防火墙的问题1 首先要别的机器能够ping通2 检查windows防火墙,将其关闭。 网络邻居-》本地连接-》右键属性-》高级-》设置网络防火墙-》关闭原创 2008-03-15 20:11:00 · 1299 阅读 · 0 评论 -
迭代模式
1 接口public interface Iterator...{ void first(); void next(); boolean isDone(); Object currentItem();} 2 抽象类abstract public class Aggregate...{ public Iterator createItera原创 2008-03-05 01:33:00 · 753 阅读 · 0 评论 -
Bridge桥接模式
《设计模式》一书对Bridge是这样描述的:将抽象与其实现解耦,使它们都可以独立地变化。大致意思是说:将一组实现与另一组使用他们的对象分离。这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)。下面是《Design Patterns Explained》书中的例子。其结构图如下: 下面是它的实现:abstract class转载 2008-03-04 20:57:00 · 741 阅读 · 0 评论 -
facade模式实例
门面类可以通过门面类进行各类的通讯,而且各类自身也可以直接被调用。1 有一个类package com.javapatterns.facade;public class SignalOutput...{ public SignalOutput() ...{ } public void sigStar() ...{ Syste原创 2008-03-04 20:27:00 · 1039 阅读 · 0 评论 -
第四个设计模式:装饰模式
第四个设计模式:装饰模式装饰模式是对对象功能增强时,平时使用继承的一种替代方案一.UML示意图:二.组成部分:1. 抽象构件:原始的功能接口2. 具体构件:具体的原始功能类3. 装饰角色:持有具体构件类的对象,以便执行原有功能4. 具体装饰:具体扩展的功能在这里三.例子代码:使用装饰模式来演示一个对”行走”功能扩展转载 2008-03-03 20:03:00 · 755 阅读 · 0 评论 -
推荐一个学习设计模式的地方及其合成模式的介绍
地址:http://www.javaeye.com/topic/121148:合成模式 合成模式把部分和整体关系用树结构表示,是属于对象的结构模式。合成模式要对组合的对象进行管理,所以在一定位置给予对象的相关管理方法,如:add(),remove()等.合成模式中对象的管理有两种方案。1.安全方式:此方式只允许树枝构件有对象的管理方法。2.透明方式:此方式只允许树枝和树叶都有对象的转载 2008-03-03 19:54:00 · 853 阅读 · 0 评论 -
Java的适配器模式
将一个东西转换为在此基础上改善的一个东西,就是适配器模式的用武之地。1 原有类具有的功能package com.javapatterns.adapter.classAdapter;public class Adaptee ...{ /**//* * 原有类具有的功能 */ public void sampleOperation1() ...{原创 2008-03-03 19:15:00 · 740 阅读 · 0 评论 -
数据结构大纲
数据结构 带结构的数据元素的结合绪论1.1 数据结构讨论范围1.2 基本概念数据数据结构数据的逻辑结构 l 线性l 树形l 图状l 集合关系的映像方法:(表示的方法)顺序映像:存储位置的相邻来表示链式映像:以附加信息(指针)表示后继关系数据类型抽象数据类型原创 2008-08-27 23:37:00 · 916 阅读 · 0 评论 -
Intel CPU 结构及编程介绍
有几本关于这方面的书,下载了看看,会对计算机系统有个更好的理解。 Intel Architecture Software Developer Manual Basic ArchitectureInstruction Set ReferenceSystem Programming Guide原创 2008-09-09 23:01:00 · 1651 阅读 · 0 评论 -
版本控制
Setup-Subversion-1.5.1.en-us.msiTortoiseSVN-1.5.1.13563-win32-svn-1.5.1.msi 安装配置的参考:http://www.javaeye.com/topic/166346原创 2008-10-15 20:43:00 · 815 阅读 · 0 评论 -
Linux源码阅读推荐阅读图书
Linux.Kernel.Development.2nd.Edition. Robert Love Understanding.The.Linux.Kernel Daniel P. Bovet & Marco Cesati 汇编语言 王爽80X86汇编语言程序设计教程 杨季文 C程序设计语言 Kernigham & Ritchie 操作系统设计与实现 A原创 2012-03-11 09:51:10 · 2687 阅读 · 0 评论 -
JavaEE程序员必读图书大推
下面是我根据多年的阅读和实践经验,给您推荐的一些图书:第一部分: Java语言篇1 《Java编程规范》 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下。对基础讲解的很不错。2 《Java核心技术:卷Ⅰ基础知识》 星级: 适合对象:初级,中级 介绍:官方机构图书,你怎么也得原创 2011-09-18 15:21:49 · 31957 阅读 · 42 评论 -
关系数据库及NoSql图书大推荐
原文请访问www.marulin.com原创 2011-09-26 08:07:53 · 4472 阅读 · 3 评论 -
推荐一本敏捷开发图书
敏捷软件开发:原理、模式和实践。原创 2010-11-16 20:55:00 · 1701 阅读 · 0 评论 -
以前使用的SVN配置
如下原创 2010-06-21 21:58:00 · 1042 阅读 · 0 评论 -
svn基本配置
<br /><br />1 svnadmin create svnrepo<br /> 创建库<br />2 创建用户名和密码<br /> 修改conf/svnserve.conf<br /> passwd<br /> 修改passwd <br />3 svnserve -d -r svnrepo <br /> -d是后台运行 -r是超级管理员 目录名称<br /> 启动服务器后不可以关闭。<br />sc create svn binpath= "/"C:/Program原创 2010-07-20 19:30:00 · 916 阅读 · 0 评论 -
同步方法
互斥(mutex)和信号量semaphore Mutex是一种简单同步方法 Lock(mutex) access(critial area)UnLock(mutex) 互斥类似于1个门 1把锁 1把钥匙 人进去就必须获得钥匙,出来释放钥匙。 得不到钥匙的就等待。 信号量类似于有1个门 1把锁 多个钥匙 人进去也必须获得钥匙,出来释放钥匙,在钥匙没原创 2010-03-14 18:52:00 · 727 阅读 · 0 评论 -
svn配置
Setup-Subversion-1.5.5.msiTortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi svnadmin create e:/svn/E:/svn>svn import e:/webos/ file:///svn/repos/ -m "initial import"E:/svn>svnserve -dsvn://loc原创 2009-06-11 22:49:00 · 1245 阅读 · 0 评论 -
c语言课程设计常用功能
C语言课程设计常用功能,我做了个示例: 主要是学生的一个系统,毕竟学生对这个比较熟悉,而且基本功能都有了。这个有部分排错没写完整,比如数据长度校验。使用vc6.0编译的,如果换作其他的估计换的也不是太多,根据提示修改即可。 /******************************* * title: student managerment system * dat原创 2009-04-19 22:46:00 · 1423 阅读 · 1 评论 -
geekOS操作系统(1)
bochs的配置: bochsrc.txt 的Linux下配置文件: # You may now use double quotes around pathnames, in case# your pathname includes spaces.#==============================================================原创 2009-03-22 19:06:00 · 2015 阅读 · 0 评论 -
模板模式
1 抽象类,提供模板abstract public class Account...{ protected String accountNumber; public Account() ...{ accountNumber = null; } public Account(String accountNumber) ...{原创 2008-03-05 01:04:00 · 703 阅读 · 0 评论 -
第三个设计模式:策略模式
今天给大家介绍第三个设计模式:策略模式一.策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用UML示意图二.组成部分:1. 环境角色:持有一个策略类引用2. 抽象策略3. 具体策略:相关的算法或操作三.代码例子1. 抽象策略package com.eekq.strategy; public interface IStrate转载 2008-03-03 20:09:00 · 712 阅读 · 0 评论 -
操作系统实验(geekOS实践)
通过分析、编译GeekOS系统的源代码并生成磁盘映射文件,来进一步了解操作系统的原理。并在Bochs模拟器下模拟启动,来了解操作系统的基本原理和系统的启动过程。程序在Linux系统环境下使用。当然你也可以在Windows下安装虚拟机。 1 实验目的 通过分析、编译GeekOS系统的源代码并生成磁盘映射文件,来进一步了解操作系统的原理。并在Bochs模拟器下模拟启动原创 2006-08-15 11:45:00 · 10958 阅读 · 3 评论 -
Ascii精解
为什么空为0,数字0为0x30呢a为0x61h,A为0x41h。。。。。。呢?因为的原因可能有很多,但是我发现至少有如下好处: 因为空经常用,所以用0来出来。可以带来的好处是速度快。而0为0x30,9为0x39则根据7位编码可以根据与00100000来判定是否为数字。同样的道理可以判断0x4*和0x6*等来看字符是否是字母或者大小写等。原创 2006-12-09 14:01:00 · 1399 阅读 · 0 评论 -
正则表达式简述
Regular Expression:正则表达式由数学家Stephen Kleene于1956年提出 。据称是不会失业的技术之一说白了 就是字符串匹配不过不明白的是 怎么不叫规则表达式而叫正则表达式呢?按照英文也是规则啊。原创 2006-12-02 20:50:00 · 1100 阅读 · 0 评论 -
需求分析
需求分析最重要的是明白用户需要什么? 简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。需要主意的是从系统设计师而不是程序员的角度来考虑问题。最后的结果是需求分析说明书。一般步骤:1 问题识别(相关的人和事以及业务流程处理等3方面)2 分析问题3 整理4 出规格说明5 评审它的下一阶段是系统设计阶段。需原创 2006-11-29 17:34:00 · 1191 阅读 · 0 评论 -
C语言的typedef使用(46)
C语言允许用typedef说明一种新类型名,说明新类型名的语句一般形式为: typedef 类型名 标识符;/**//************************************************************ Copyright (C), 1998-2006, Rx. Co., Ltd. FileName: mainApp.cpp Author: l原创 2006-10-13 09:49:00 · 1005 阅读 · 0 评论 -
VC支持汉字吗?
支持原创 2006-10-12 17:47:00 · 826 阅读 · 0 评论 -
C语言指针类型最需要的是什么(45)
地址。 指针就是传地址,找内容。原创 2006-10-12 17:36:00 · 953 阅读 · 0 评论 -
23种设计模式及其对应实例
下面是我对设计模式的理解并自以为所对应的实例(是我学设计模式时读书笔记的部分):一 : 单例模式(Singleton) 账本类:1 单一实例 2 给多个对象共享 3 自己创建。网页计数器 二:策略模式(Strategy) 使用QQ泡MM时使用外挂 客户端 :ME 抽象类: 外挂 具体:策略(图片,笑话,名人名言)图书销售算法(不同书本折扣原创 2006-09-15 20:44:00 · 2181 阅读 · 0 评论 -
Project应用
下面是我应用Project的学习计划:原创 2006-09-11 15:25:00 · 999 阅读 · 0 评论 -
单据前面补零的优化实现方法
一般我们开发的软件对有单据的,一般都有个序列号的要求。如果前面不够的则要补零。比如需要7位数的编号如果是一号则为0000001。对其编程有许多方法但是怎么实现比较好呢?1 下面首先看一个我Delphi下的实现方法:首先取得字符串的长度,一般可以从数据库等地方读出。然后我们取其长度可以Trim一下去掉空格。然后使用case语句进行添加。 Len:=Length(str); cas原创 2006-09-07 20:57:00 · 1416 阅读 · 0 评论 -
CISC模型微处理器设计(VHDL实现)
(1) 实验题目设计一台CISC模型机,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。( A类)(2) 嵌入式CISC模型机数据通路框图 图1 模型机数据通路框图(3) 操作控制器的逻辑框图 图2 操作控制器逻辑框图(4) 模型机的指令系统和指令格式1 指令系统本系统设计了10条指令:I原创 2006-08-12 21:55:00 · 7675 阅读 · 2 评论 -
安装程序制作(Install Shield)
对于初学程序制作的人来说,制作一个安装程序是他们所未遇到的问题。大家一般也就知道用别人的安装程序安装,而不知道是怎么做的。其实,制作一般的安装程序不是一件多难的事。可以说,比写代码容易多了。只是大家觉得它是多么高深莫测的东西。或者,由于老板,上司怕你对整个项目了解太多而不给机会而不会。实际上,安装程序就是适当的文件拷贝到适当的地方。 本文结合我以前写给公司的安装程序截图来原创 2006-08-14 20:53:00 · 3032 阅读 · 0 评论 -
设计模式大全
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类原创 2006-12-22 21:07:00 · 86292 阅读 · 11 评论 -
Java的工厂模式(Factory)之二
前文的工厂模式的产品创建过程只有一个工厂,如果实际过程中需要多个工厂, 则需要将工厂进行抽象,这就产生了工厂方法模式:实例:1 Product抽象,使用接口实现package com.javapatterns.factorymethod;public interface Product...{} 2 具体产品 具体产品之一package com.j原创 2008-03-01 17:03:00 · 907 阅读 · 0 评论