自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

君临天下的博客

每天进步一点点,邮箱:xd_wy92_yan13&126.com(&换作@即可)。

  • 博客(83)
  • 收藏
  • 关注

原创 程序员成长之路---“学习”与“面试笔试”总结篇之曲折的成长历程与求职历程

“学习”与“面试笔试”总结篇之曲折的成长历程与找工作历程1. 学习之曲折的成长历程2. 面试笔试之曲折的找工作历程

2015-10-31 17:49:46 1949 1

原创 JAVA简单项目"购物系统"的整个开发过程详解(内含源码和注释)

1. 购物系统的需求分析和类划分    购物系统本身是一个十分复杂的系统,有很多细节问题如果深究会更加复杂,并且一般购物系统都是网页类型的,要有一个友好的界面,但是作为一个简单项目,该项目只是为了给JAVA初学者介绍一下开发的基本思想,以及面向对象时应该怎样去设计框架和实现流程,所以只是基于eclipse开发的一个简单的项目,并没有GUI的参与,并且很多细节问题作为后续研究,整体的设计

2015-10-28 10:47:28 47185 4

原创 C语言中“指针”作为“函数参数”时的注意事项

C语言中“指针”作为“函数参数”时的注意事项

2015-10-23 16:58:43 15021 10

原创 君临天下,无所畏惧:博客开始篇

博客开始篇  作为一名即将毕业的研究生,想起来自己这些年经历的点点滴滴,感悟很多。起初接触CSDN的时候,完全只是为了下载一些资源,也为了得到积分花了不少心思,后来才慢慢了解到CSDN也有很强大的博客,当我有疑问的时候经常看这些对应的博客,后来学到了很多知识,也收获很多,在此要感谢CSDN这个平台。  说起来惭愧,从研一到现在,做过很多很多项目,在这些实践和学习中都总结了很多知识,但是

2015-10-23 10:57:48 1265 4

原创 strtok函数的使用注意事项

strtok函数的使用注意事项    strtok函数

2016-01-13 16:36:53 38965 8

原创 设计模式系列(十四)组合模式(Composite Pattern)

设计模式系列(十四)组合模式(Composite Pattern)    组合模式

2015-12-22 21:07:01 960

转载 C++模板类之理解编译器的编译模板过程

C++模板类之理解编译器的编译模板过程        以前经常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。    我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。

2015-12-20 21:27:18 3423

原创 设计模式系列(十三)迭代器模式(Iterator Pattern)

设计模式系列(十三)迭代器模式(Iterator Pattern)    迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露器内部的表示。也就是说,迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露其内部的表示,把游走的任务放在迭代器上,而不是聚合上,这样就简化了聚合的接口和实现,也让责任各得其所。    学过面向对象编程语言的朋友一定对迭代器这个设计深有

2015-12-20 20:40:40 1041

原创 设计模式系列(十二)模板方法模式(Template Method Pattern)

设计模式系列(十二)模板方法模式(Template Method Pattern)    模板方法模式是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。    在最开始先来说一个和模板方法模式关系比较紧密的原则:“好莱坞原则”,即别调用我们,我们会调用你。形象的来说就是,别打电话给我,在我需要

2015-12-13 16:41:04 944

原创 设计模式系列(十一)外观模式(Facade Pattern)

设计模式系列(十一)外观模式(Facade Pattern)    外观模式提供了统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式的意图是简化接口,让用户更加方便使用。举例来说,如果在家里布置了一个家庭影院,包括电影显示器,遥控器,爆米花机器等,当你想要享受一场电影的时候,你需要打开显示器、操作遥控器的一系列按钮、打开爆米花机器等,也就是说享

2015-12-11 20:35:13 679

原创 设计模式系列(十)适配器模式(Adapter Pattern)

设计模式系列(十)适配器模式(Adapter Pattern)    适配器模式是将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器实现了客户与具体实现的解耦,简单来说,适配器模式就是改变接口以符合客户的期望。例如:我们生活中常见的插座的适配器、无线网卡适配器、电源适配器等,这些都是用来进行不同接口的转换,更具体的来说就是我们手机充电的时候可能只需

2015-12-11 19:45:42 803

原创 设计模式系列(九)命令模式(Command Pattern)

设计模式系列(九)命令模式(Command Pattern)    命令模式是将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。命令模式将行为请求者与行为执行者解耦,从而实现了松耦合的原则。例如:去餐厅点餐的时候,顾客只负责点餐,然后交给服务员,服务员将订单交给厨师去做,最后顾客开始享用美味的饭菜,但是整个过程顾客只关心自己点了什么,而不关

2015-12-10 20:10:51 950

原创 设计模式系列(八)单例模式(Singleton Pattern)

设计模式系列(八)单例模式(Singleton Pattern)    单例模式就是确保一个类只有一个实例,并提供一个全局的访问点。具体来看,就是指定义的某个类,在程序运行期间,只允许有一个实例对象,即在内存中仅仅有一块内存用来存储这个类的唯一的实例对象,程序运行期间不允许出现第二个该类的实例对象。    很多会问,为什么定义了一个类却只实例化一个对象。这个主要是因为,有时

2015-12-07 11:28:18 880

原创 设计模式系列(七)简单工厂模式、工厂方法模式和抽象工厂模式对比

设计模式系列(七)简单工厂模式、工厂方法模式和抽象工厂模式对比    在前面的三篇文章中,依次讲解了简单工厂模式、工厂方法模式和抽象工厂模式,这篇文章主要对其进行简单的对比和概括,详细部分大家可以参考前三篇文章。    简单工厂模式:点击打开链接    工厂方法模式:点击打开链接    抽象工厂模式:点击打开链接    下面我们来总体看一下这三个模式的例

2015-12-05 13:16:19 804

原创 设计模式系列(六)抽象工厂模式(Abstract Factory Pattern)

设计模式系列(五)抽象工厂模式(Abstract Factory Pattern)    抽象工厂模式

2015-12-04 16:47:48 775

原创 设计模式系列(五)工厂方法模式(Factory Method Pattern)

设计模式系列(五)工厂方法模式(Factory Method Pattern)

2015-12-04 16:10:31 798

原创 设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method)

设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method)    简单工厂模式又被成为静态工厂方法,所以其外文名一般是Static Factory Method。其属于创建型模式,本质上并不属于23种GOF设计模式之一,这种模式可以称之为一种编程习惯,算是一种比较良好的设计习惯。那么什么是简单工厂设计模式呢?从概念上来

2015-12-04 09:56:16 902

原创 设计模式系列(三)装饰者模式(Decorator Pattern)

设计模式系列(三)装饰者模式(Decorator Pattern)    装饰者模式是指动态地将责任附加到对象上,而不必改变原类文件。对于扩展功能,装饰者模式提供了继承以外的另一种扩展对象功能的方式,不过装饰者模式比继承更加具有弹性。装饰者模式允许行为可以被扩展,而无须修改现有的代码。它使用组合和委托的方式来实现。    装饰者模式的设计原则是:开放-关闭原则,即对扩展开放

2015-12-01 21:18:10 684

原创 设计模式系列(二)观察者模式(Observer Pattern)

设计模式系列(二)观察者模式    观察者模式是指在对象之间定义一对多的依赖,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知,并自动更新,这里有主题和观察者之分,一般也可以称为发布/订阅模式。最简单的例子就是订阅报纸,比如说自己作为观察者,订阅了"人民日报"这个主题,那么当人民日报出新的报纸的时候就会及时送到自己即观察者的手中。    观察者模式的实现方法有很多种,一

2015-12-01 17:33:52 716

原创 设计模式系列(一)策略模式(Strategy Pattern)

设计模式系列(一)策略模式     设计模式作为一种经验的总结,只要使用恰当可以帮助我们解决很多问题,尤其是实现代码的复用和扩展。现在先来看看第一种设计模式,即策略模式(Pattern:Strategy)。     策略模式是指定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 (1)优点:可以动态地改变对象的行为,主要是通过组合和多

2015-12-01 17:23:17 1008

原创 用EA(Enterprise Architect)将C++的".h"文件转换成UML类图

如何使用EA(Enterprise Architect)工具使C++程序生成UML类图    本篇文章主要针对于C++程序的UML类图生成方法介绍。大家可以在网上先搜索Enterprise Architect工具,下载后安装使用,这个工具很强大,不过本文只介绍最简单的UML类图生成方法,仅针对于C++的.h文件,过程也很简单。(1)点击Creat a New Project

2015-12-01 11:27:08 7556 1

原创 用MyEclipse将java文件转换成UML类图

用MyEclipse将java文件转换成UML类图    在学习设计模式或者与别人交互设计模式的思想时,UML类图的制作是必不可少的。通常,我们会直接绘制UML类图,对于学生来说,通用的工具就是微软的Visio,这个工具想必大家经常用来画各种图,流程图、网络图、数据流图,当然可以画UML类图,使用起来十分方便,不过Visio的鸡肋之处就是不支持JAVA的UML类图,估计是微软自家开发,

2015-11-26 11:40:11 22615 3

转载 同步调用、回调和异步调用区别

同步调用、回调和异步调用区别    该文章转载自:http://blog.csdn.net/dan_blog/article/details/7897852    作者:danhuang    同步调用是以一种阻塞式调用   比如说:古代的长城的烽火传递信息,现在我们假设每个烽火只能看到相邻的烽火状态,每个烽火的状态只有亮和暗。   现在有A、B、C、D

2015-11-24 17:39:19 1699

原创 C语言实现链表之双向链表(十五)测试用例

C语言实现链表之双向链表(十五)测试用例    上一篇文章给出了最后的两个函数,即链表打印和排序,这篇文章将给出所有函数的测试用例,即ListTestTop.c文件。/*******************************************************************************************

2015-11-24 17:36:16 1030

原创 C语言实现链表之双向链表(十四)链表打印

C语言实现链表之双向链表(十四)链表打印    上一篇文章给出了获取数据对应的结点的函数,本篇文章将给出链表打印。/*============================================================================== * 操作 :打印链表中的所有结点的数据元素* 操作前:pHeadNode为链表的头

2015-11-24 17:33:43 1255

原创 C语言实现链表之双向链表(十三)获取数据对应的结点

C语言实现链表之双向链表(十三)获取数据对应的结点    上一篇文章给出了判断链表是否为空以及获取链表长度的两个函数,本篇文章将给出一个比较特殊的函数,说其特殊并不是因为功能,而是因为函数的参数,下面请看程序。/*==============================================================================

2015-11-24 17:31:49 776

原创 C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度

C语言实现链表之双向链表(十二)判断链表是否为空和获取链表长度    上一篇文章给出了设置结点数据与获取结点数据的两个函数,本篇文章将给出判断链表是否为空和获取链表长度的函数,共两个函数。/*============================================================================== * 操作 :检

2015-11-24 17:31:13 3979

原创 C语言实现链表之双向链表(十一)设置结点数据与获取结点数据

C语言实现链表之双向链表(十一)设置结点数据与获取结点数据    上一篇文章给出了删除任意结点的函数,本篇文章将给出设置结点数据的函数以及获取结点数据的函数,共两个函数。/*============================================================================== * 操作 :对结点的数据元素进行

2015-11-24 17:28:35 628

原创 C语言实现链表之双向链表(十)删除任意结点

C语言实现链表之双向链表(十)删除任意结点    上一篇文章给出了插入任意结点的函数,本篇文章将给出删除任意结点的函数。/*============================================================================== * 操作 :删除任意结点* 操作前:ppHeadNode为链表的头指针的二级

2015-11-24 17:27:05 1014

原创 C语言实现链表之双向链表(九)在任意位置插入结点

C语言实现链表之双向链表(九)在任意位置插入结点    上一篇文章给出了删除尾结点的函数,本篇文章将给出在任意位置插入结点的函数。/*============================================================================== * 操作 :在任意位置插入结点* 操作前:pHeadNode为链表

2015-11-24 17:25:13 1029

原创 C语言实现链表之双向链表(八)删除尾结点

C语言实现链表之双向链表(八)删除尾结点    上一篇文章给出了在尾结点之后插入结点的函数,本篇文章将给出删除尾结点的函数。/*============================================================================== * 操作 :删除尾结点* 操作前:ppHeadNode为链表的头指针的二

2015-11-24 17:24:33 2727

原创 C语言实现链表之双向链表(七)尾结点后插入结点

C语言实现链表之双向链表(七)尾结点后插入结点    上一篇文章给出了删除头结点的函数,本篇文章将给出在尾结点后插入结点的函数。注意双向链表中前向指针的处理,与单向链表对比学习一下。/*============================================================================== * 操作 :在尾结点

2015-11-24 17:22:25 1817

原创 C语言实现链表之双向链表(六)删除头结点

C语言实现链表之双向链表(六)删除头结点    上一篇文章给出了在头结点之前插入结点的函数,本篇文章将给出删除头结点的函数。依旧需要注意的是对前向指针的处理。/*============================================================================== * 操作 :删除头结点* 操作前:pp

2015-11-24 17:19:48 2266

原创 C语言实现链表之双向链表(五)头结点前插入结点

C语言实现链表之双向链表(五)头结点前插入结点    上一篇文章给出了清空链表的函数,本篇文章将给出插入结点---在头结点之前插入的函数。注意对前向指针的处理。/*============================================================================== * 操作 :在头结点之前加入一个新结点*

2015-11-24 17:16:49 1544 1

原创 C语言实现链表之双向链表(四)清空链表

C语言实现链表之双向链表(四)清空链表    上一篇文章给出了创建链表的函数,本篇文章将给出清空链表的函数,程序如下。/*============================================================================== * 操作 :清空链表,释放结点内存,将链表重置为空表* 操作前:ppHeadN

2015-11-24 17:13:45 2072

原创 C语言实现链表之双向链表(三)创建链表

C语言实现链表之双向链表(三)创建链表    上一篇文章已经给出了第一个函数,即为结点分配内存并初始化,这篇文章将给出第二个函数,即创建链表。这个函数比较常用,但是可能需求不一样,注意,双向链表在建立的时候,要对前向指针进行处理,也并不复杂,只要将前向指针指向前面的结点即可,下面看程序。/*========================================

2015-11-24 17:08:50 1136

原创 C语言实现链表之双向链表(二)结点内存申请及数据初始化

C语言实现链表之双向链表(二)结点内存申请及数据初始化    在上一篇文章中已经给出了整体的设计框架,现在讲逐一给出每一个函数的实现,为了一一讲解,清晰一点,将分开介绍。    本篇文章将给出MyList_Bidirection.c---实现文件的第一个函数,即对链表中的一个结点申请内存并对其内部的数据进行初始化的函数。程序如下,由于是第一个函数,所以会给出整个文件的前面部

2015-11-24 17:04:57 1620

原创 C语言实现链表之双向链表(一)头文件

C语言实现链表之双向链表(一)头文件     前面已经出过一个单向链表的系列,这里给出双向链表的实现,这一系列的实现与单向链表有很多类似之处,大家可以参考单向链表的系列。        单向链表的系列(一)的链接是:点击打开链接    双向链表主要就是加上了一个前向指针其他的并没有太多变化,直接进入正题。    本次设计的链表操作库主要包含三个文件,分别

2015-11-24 16:57:17 2081

原创 JAVA中序列化和反序列化中的静态成员问题

JAVA的序列化和反序列化中的静态成员问题    关于这个标题的内容是面试笔试中比较常见的考题,大家跟随我的博客一起来学习下这个过程。    JAVA中的序列化和反序列化主要用于:(1)将对象或者异常等写入文件,通过文件交互传输信息;(2)将对象或者异常等通过网络进行传输。    那么为什么需要序列化和反序列化呢?简单来说,如果你只是自己同一台机

2015-11-22 14:13:25 7842 4

原创 《Python基础教程第二版》学习笔记(一)第一章 基础知识

《Python基础教程第二版》学习笔记(一)第一章 基础知识    在学习过C/C++以及JAVA后,准备学习一门脚本语言,当然python不止是脚本语言这么简单,它应该被称为高级动态编程语言。由于有一定其他语言的编程基础和项目经验,所以经过几番斟酌之后,选择了《Python基础教程第二版》这本书来进行入门学习,以前学习的时候习惯用笔记本做笔记,这次采用一种全新的形式,我直接采用pyt

2015-11-19 22:39:20 2359

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除