- 博客(96)
- 资源 (22)
- 收藏
- 关注
原创 vim中执行shell命令
vi中执行shell命令有两种显示方式:在一个临时缓冲区显示命令执行的结果将命令执行的结果粘贴在光标所在行的下一行,或者指定行号粘贴。1 在一个临时窗口显示命令执行的结果vi命令 :!command 例如: vi执行命令 :!ls 结果: vi版本不同,显示的方式不同,在这里的临时缓冲区还可以看到上次执行命令的结果2 将命令执行的结果粘贴在光标所在行的下一行vi中执行
2015-07-27 16:24:40
2166
1
原创 C++要点(1)mutable关键字
本文主要介绍一下内容1 mutable语义2 const语义3 mutable和const的关系mutable提供的灵活性mutable语义在C++中,mutable是为了突破const的限制而设置的。 被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也可以被修改。
2015-05-13 10:34:13
1111
原创 服务器编程入门(11)TCP并发回射服务器实现 - 单线程select实现
问题聚焦:当客户端阻塞于从标准输入接收数据时,将读取不到别的途径发过来的必要信息,如TCP发过来的FIN标志。因此,进程需要内核一旦发现进程指定的一个或多个IO条件就绪(即输入已准备好被读取,或者描述符已能承接更多的输出),它就通知进程。这个机制称为I/O复用,这是由select, poll, epoll函数支持的。编译环境: Ubuntu12.0
2014-03-31 11:58:40
2055
原创 服务器编程入门(10)TCP回射服务器实现 - 并发
问题聚焦: 在前面我们大概浏览了一下服务器编程需要掌握的一些知识和技术,以及架构思想。 实践,才是检验真理的唯一标准。。从这节起我们将在这些技术的基础上,一步步实现以及完善一个服务器,同时也是对这些技术的更深入的思考。 本节我们将实现一个简单的回射服务器,包括TCP连接,文本处理,并发(多进程实现),以及子进程退出后的处理动作。功能描述
2014-03-27 19:37:10
1812
原创 笔试面试(4)百度2014软件开发工程师笔试题详解
一.简答题1.简述iso的7层设计2.如何在多个进程间进行数据共享(至少写出3种)3.简述TCP与UDP的区别......
2014-03-17 14:41:45
3247
原创 设计模式(15) 迭代器模式(Iterator)C++实现
问题聚焦: 当我们在KTV唱歌的时候,会使用控制系统进行切歌、选中、删除、插到队首等功能,而这是我们无需知道歌曲在曲库中是如何存放的。 这便是迭代器模式的思想:提供一种方法访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 对于迭代器我们并不陌生,C++标准库中的容器都提供了迭代器访问模式。当我们自定义某些聚合型类提供给客户使用的时候,并不希望暴露对象内部的构造
2014-03-14 13:15:49
3246
原创 笔试面试(3)阿里巴巴2014笔试题详解(9月22北京)
第一部分 单选题(前10题,每题2分;后10题,每题3分。选对得满分,选错倒扣1分,不选得0分)1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是() A、几微秒,几毫秒,几十毫秒 B、几十纳秒,几十微秒,几十毫秒 C、几十纳秒,几十微秒,几十毫秒 D、几微秒,几十微秒,几十毫秒
2014-03-12 17:39:51
4850
8
原创 设计模式(14) 命令模式(Command)C++实现
问题聚焦: 感觉后面的一些模式都比较抽象,每个模式都尽量写一个demo辅助理解。 命令行模式主要是将请求本身封装为对象,从而使你可用不同的请求参数化客户类。 解耦了调用操作的对象和具有执行该操作所需信息的那个对象
2014-03-11 19:41:20
2583
原创 笔试面试(1)腾讯2014校园招聘软件开发类笔试试题
把基本经典的书籍认真看看,那些笔试面试的都不是什么问题。但是,专门的突击和训练还是很有必要的。好的offer是可以通过充分的准备刷到的。我们就从各大公司的套题开始刷起吧,中间再穿插一些专题。今天先看看腾讯的2014年校招的软开笔试题。考试时长:120分钟一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1 已
2014-03-10 19:55:55
5955
1
原创 服务器编程入门(9)多线程编程
问题聚焦: 在简单地介绍线程的基本知识之后,主要讨论三个方面的内容: 1 创建线程和结束线程; 2 读取和设置线程属性; 3 线程同步方式:POSIX信号量,互斥锁和条件变量。
2014-03-07 14:19:04
1736
原创 服务器编程入门(8)多进程编程
问题聚焦: 进程是Linux操作系统环境的基础。 本篇讨论以下几个内容,同时也是面试经常被问到的一些问题: 1 复制进程映像的fork系统调用和替换进程映像的exec系列系统调用 2 僵尸进程 3 进程间通信的方式之一:管道 4 3种System V进程通信方式:信号量,消息队列和共享内存
2014-03-05 09:44:19
5524
原创 服务器编程入门(7)I/O复用
问题聚焦: 前篇提到了I/O处理单元的四种I/O模型。 本篇详细介绍实现这些I/O模型所用到的相关技术。 核心思想:I/O复用
2014-02-25 19:49:33
2591
原创 服务器编程入门(6)高性能服务器程序框架
问题聚焦: 核心章节。 服务器一般分为如下三个主要模块:I/O处理单元(四种I/O模型,两种高效事件处理模块),逻辑单元(两种高效并发模式,有效状态机)和存储单元(不讨论)。
2014-02-24 09:44:27
7191
5
原创 服务器编程入门(5)Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范。 工欲善其事,必先利其器,这篇主要来探讨服务器程序的一些主要规范。
2014-02-20 23:00:51
2495
1
原创 服务器编程入门(4)Linux网络编程基础API
问题聚焦: 这节介绍的不仅是网络编程的几个API 更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系。 这节主要介绍三个方面的内容:套接字(socket地址)API,socket基础API,和网络信息API。
2014-02-20 10:03:59
3673
原创 ODOA(2) 求二叉树中两个节点的最大距离(C语言实现)
问题描述;如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。
2014-02-18 23:54:44
8103
原创 服务器编程入门(3)TCP协议详解
问题聚焦: 本节从如下四个方面讨论TCP协议: TCP头部信息:指定通信的源端端口号、目的端端口号、管理TCP连接,控制两个方向的数据流 TCP状态转移过程:TCP连接的任意一端都是一个状态机 TCP数据流:两种主要类型:交互数据流,成块数据流 TCP数据流的控制:保证可靠传输和提高网络通信质量,两个方面:超时重传,拥塞控制
2014-02-17 19:01:46
2261
原创 设计模式(13) 对象行为型模式和职责链模式
问题聚焦: 行为模式,将你的注意力从控制流转移到对象间的联系通信方式上来。 本节所介绍的职责链,是典型的松耦合设计模式。 职责链模式可以相应多个请求接受者,选择其中最合适的处理者。
2014-02-14 10:26:50
1638
原创 ODOA(1) 翻转句子中单词的顺序(C语言实现)
问题描述:翻转句子中单词的顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理例如:输入“I am a student.”,则输出“student.a am I”。
2014-02-12 23:36:09
4104
原创 Effective C++(19) 设计class犹如设计type
问题聚焦: 这一节不涉及代码,但是我们需要明确的一点是,思想比代码要重要得多。 设计优秀的classes是一项艰巨的工作,就像设计好的types一样。 我们应该带着和“语言设计者当初设计语言内置类型时”一样的谨慎来研讨class的设计。
2014-02-11 09:44:53
1329
原创 Effective C++(18) 让接口更容易被正确使用,不易被误用
问题聚焦: 从这个条款开始,我们把注意力转移到软件设计和声明上来,具体的说就是,C++接口的设计和声明。 所谓软件设计,就是以一般习惯的构想开始,演变成细节的实现,最终开发针对性的特殊接口。 接口的设计和声明的一个最基本的准则是:让接口容易被正确使用,不容易被误用。 引入新类型是预防接口被误用的常见手段之一。
2014-02-11 09:14:59
1233
原创 设计模式(12) 代理模式(PROXY)
问题聚焦: 这个模式是对象结构型模式的最后一个。学习完就可以进入下一种类型的模式了。 代理模式的主要目的:控制对某个对象的访问(如通过拒绝某些访问实现访问权限的控制,或进行加载等耗时操作的优化)。
2014-02-10 08:51:10
1532
原创 设计模式(11) 享元模式(FLYWEIGHT)
问题关注: 如果让我们设计一款文字编辑器,面向对象的设计方式肯定是首选。 一种可能的设计方式是,将文档中的每个字符,每行,每列都认为是一个对象,提高程序的灵活性的同时,可以想象,将会耗费大量内存。 享元模式,就是为了应对这种情况——共享对象,细粒度处理而无需高昂的代价。
2014-02-08 15:20:39
1350
原创 设计模式(10) 外观模式(FACADE)
问题聚焦: 设计一个系统时,比较常见的做法是将它划分为若干个小的系统,互相协作,组成一个大的系统。 那么,在设计这些小系统时,需要注意一些什么呢? 外观模式为什么可以让子系统更加容易的使用呢?(最小化子系统之间的通信和相互依赖关系,即降低耦合度)
2014-02-07 18:03:30
1372
原创 设计模式(9) 装饰器模式(DECORATOR)
问题聚焦: 有时候,希望某个类增加新功能的时候,往往会生成一个子类。 但是,这种方式有时候略显臃肿,其次,这种方法是静态的,不够灵活。 因此,针对这种给对象动态添加功能的需求,大牛们给出了本节的装饰器模式。
2014-02-04 13:51:47
1551
原创 设计模式(8) 组合模式(COMPOSITE)
问题聚焦: 结构型模式的本质是:对象组合。 而本节所展示的模式,就是典型的结构型模式。 那对象组合成什么结构呢?组合模式主要将对象组合成树形结构,表示”部分-整体“的层次结构。
2014-02-04 01:16:49
2493
1
原创 设计模式(7) 桥接模式(BRIDGE)
问题聚焦: 上一节讲了对象结构型模式,其主要的思想是对象的组合。并接触了一个典型的适配器模式。 这一节再讲一个常用的桥接模式,其主要的思想是抽象部分与实现部分的分离,使得抽象部分与系统平台分离开来,从而实现可移植性。 桥接主要指抽象部分和实现部分之间的关系。
2014-02-02 23:37:25
1476
原创 Effective C++(17) 以独立语句将newed对象置入智能指针
问题聚焦: 使用了资源管理对象(如智能指针),就一定是安全的吗?显然不是。 资源泄露发生可能在于,在“资源被创建”和“资源被转换为资源管理对象”两个时间点之间有可能发生异常干扰。
2014-02-02 20:17:41
1257
原创 Effective C++(16) 成对使用new和delete时要采取相同的形式
问题聚焦: 我们都知道,new和delete要成对使用,但是有时候,事情往往不是按我们预期的那样发展。 对于单一对象和对象数组,我们要分开考虑 遇到typedef时,也需要搞清楚,是单一对象类型还是对象数组类型
2014-02-02 19:45:28
1277
原创 Effective C++(15) 在资源管理类中提供对原始资源的访问
问题聚焦: 资源管理类是为了对抗资源泄露。 如果一些函数需要访问原始资源,资源管理类应该怎么做呢?
2014-02-01 23:30:16
1643
原创 服务器编程入门(2)IP协议详解
问题聚焦: IP协议是TCP/IP协议族的核心协议,也是socket网络编程的基础之一。这里从两个方面较为深入地探讨IP协议: 1,IP头部信息(指定IP通信的源端IP地址,目的端IP地址,指导IP分片和重组,和指定部分通信行为); 2,IP数据包的路由和转发(发生在除目标机器之外的所有主机和路由器上)。
2014-01-24 09:26:42
2074
原创 Effective C++(14) 在资源管理类中小心copying行为
问题聚焦: 上一条款所告诉我们的智能指针,只适合与在堆中的资源,而并非所有资源都是在堆中的。 这时候,我们可能需要建立自己的资源管理类,那么建立自己的资源管理类时,需要注意什么呢?
2014-01-23 09:29:41
1528
原创 服务器编程入门(1)TCP/IP协议族
问题聚焦:简单地梳理一下TCP/IP各层的功能和常用协议详细了解ARP(数据链路层)和DNS(应用层)协议的工作原理
2014-01-22 19:35:49
4116
原创 设计模式(6) 结构型模式和适配器模式(ADAPTER)
问题聚焦:结构型模式:对象组合适配器模式:使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
2014-01-20 09:26:43
1422
原创 python进阶(4) getattr的用法
问题聚焦:熟悉getattr的应该知道,getattr(a, 'b')的作用就和a.b是一样的那么这个内建函数有什么作用呢,最方便的无疑是使用它来实现工厂方法(Factory Method)模式另外,在回调函数里也经常使用这个函数,对回调理解不深,这里不再举例
2014-01-10 12:18:34
8733
1
原创 设计模式(5) 单例模式(SINGLETON)
问题聚焦:让类自身负责保存它的唯一实例,并且保证没有其他实例可以被创建。单例模式使用起来比较简单,但是当单例类有子类并且数目不定时,需要用一个注册表管理它,这一部分讲的不清楚,以后补充。
2014-01-09 16:18:34
1438
原创 设计模式(3) 工厂方法(Factory Mehod)
问题聚焦:工厂方法与抽象工厂的区别别名:虚构造器(Virtual Constructor)
2014-01-06 18:59:07
1497
命令模式(C++实现)
2014-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人