自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ljianhui的专栏

也许生于世上,无重要作为,仍有这份积累会留下......

原创 Sublime Test3 常用快捷键

Sublime Test3 常用快捷键我在平时的开发中主要使用C/C++,偶尔也会写写开发PHP的代码,开发中经常会使用Sublime,在这里分享一下自己经常使用的快捷键,做一下笔记,希望也能对其他人有所帮助。其中涉及控制面板、查找替换、跳转、标签、文本操作和窗口操作等内容。

2015-11-19 00:15:57 4755 5

翻译 Linux性能及调优指南(翻译)之Linux内存架构

本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译原文地址:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf原文作者:Eduardo Ciliendo, Takec...

2015-07-03 00:36:03 5445 8

翻译 Linux性能及调优指南(翻译)之Linux进程管理

本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf原文作者:Eduardo Ciliendo, Takec...

2015-07-02 01:55:06 6793 4

原创 C++对象模型之RTTI的实现原理

RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid操作符识别出所有的基本类型(int,指针...

2015-06-14 03:11:19 13432 4

原创 Linux系统的命令源代码的获取方法

我们知道,Linux是开源的,它自带的功能强大的命令也是开源的,也就是说,我们可以获得这些命令的源代码并研究它。那究竟如何获得系统的命令的源代码呢?命令的源代码是一个软件包为单元的,放在一个软件包的源代码中,若要下载一个命令的源代码,就要把这个命令所属的软件包的源代码都下载下来。命令的源代码就在下...

2015-06-11 00:21:08 18720 3

原创 C++对象模型之详述C++对象的内存布局

本文主要讨论继承对于对象的内存分布的影响,包括:继承后类的对象的成员的布局、继承对于虚函数表的影响、virtual函数机制如何实现、运行时类型识别等。由于在C++中继承的关系比较复杂,所以本文会讨论如下的继承情况: 1)单一继承 2)多重继承 3)重复继承 4)单一虚拟继承 5)钻石型虚拟继承

2015-06-08 10:16:48 8760 7

原创 C++对象模型之编译器如何处理函数返回一个对象

1、与经验不符的输出我们知道,当发生以下三种情况之一时,对象对应的类的复制构造函数将会被调用:1)对一个对象做显示的初始化操作时2)当对象被当作参数传递给某个函数时3)当函数返回一个类的对象时所以,当我们设计一下函数(普通或成员函数)时,经验告诉我们,出于效率的考虑,应该尽可能返回一个对象的指针或...

2015-06-02 00:06:07 2750 2

原创 C++对象模型之复制构造函数的构造操作

复制构造函数用于根据一个已有的对象来构造一个新的对象。1、构造函数何时被调用有三种情况会以一个对象的内容作为另一个类的对象的初值构造一个对象,分别是:1)对一个对象做显示的初始化操作时,如class X { ... };X x;X xx = x; // 或 X xx(x);2)当对象被当作参数传递...

2015-06-01 02:16:18 2035 5

原创 C++对象模型之默认构造函数的构造操作

一个类,如果没有任何的用户声明的的构造函数,那么会有一个默认的构造函数被隐式地声明出来。这个被隐式声明的构造函数,究竟什么时候被合成、被编译器合成的默认构造函数究竟执行怎么样的操作,编译器如何处理用户定义的构造函数,就是本文要探讨的问题。 1、默认构造函数何时被合成 如果一个类没有任何的用户...

2015-05-30 01:13:15 2516 2

原创 C++对象模型之简述C++对象的内存布局

在C++中,有两种类的成员变量:static和非static,有三种成员函数:static、非static和virtual。那么,它们如何影响C++的对象在内存中的分布呢? 当存在继承的情况下,其内存分布又是如何呢? 下面就一个非常简单的类,通过逐渐向其中加入各种成员,来逐一分析上述两种成员变量...

2015-05-22 02:28:26 14426 9

原创 android应用开发之View的大小计量单位(px、dpi、dp、dip、sp)

一、像素(px)与屏幕分辨率1)px(Pixels ,像素):对应屏幕上的实际像素点。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。 2)屏幕分辨率就是在屏幕上显示的物理像素总和,它等于屏幕的宽度上的像素*高度上的像素。在android应用程序的开发上,不会使用屏幕分辨率。...

2015-02-07 10:44:51 5149 2

原创 Linux shell 之 提取文件名和目录名的一些方法

很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等。 下面...

2015-01-26 00:03:00 153877 16

原创 linux下反编译android apk

1、所需要的工具1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等,下载地址:https://code.google.com/p/android-apktool/downloads/list需要下载apktool1.5.2.tar.bz2 和apktool-install-l...

2014-09-01 21:15:34 19273 6

原创 代理模式与Android

代理模式(Proxy)一、   什么是代理模式先来看看官方的说法,代理模式就是为其他对象提供一种代理,以控制对这个对象的访问。 看来这个官方的说法的确有点官方,看了还是让人感觉不点不知所措,还是不明白代理模式是什么,究竟是用来做什么的。 其实代理这个名词,对于我们来说其实并不陌生,生活中有很多关于...

2014-06-09 00:25:54 8531 3

原创 单例模式与Android

单例模式(Singleton)一、  什么是单例模式单例模式,简单点来说就是设计一个类,使其在任何时候,最多只有一个实例,并提供一个访问这个实例的全局访问点。二、  为什么要单例在程序中的很多地方,只有一个实例是非常重要的。例如,在windows中,任务管理器只有一个,无论你点击多少次打开任务管理...

2014-06-08 00:20:28 12335 19

原创 CentOS升级Git

Git现在的版本(我在写下本文时)已经是1.7.12了,然而CentOS的Git的版本却是1.7.1,而且用yum安装的Git的最高版本也只是去1.7.1,当然,如果你在工作使用中没有遇到问题,使用这个版本当然没有什么问题,但是如果你在工作中遇到只有高版本的Git才能支持的任务时,如何升级我们的G...

2014-04-17 00:06:33 31977 6

原创 C++ string类的隐式共享写时拷贝的实现及设计要点

字符串一种在程序中经常要使用到的数据结构,然而在C中却没有字符串这种类型。在C++中,为了方便字符串的使用,在STL中提供了一个string类。该类维护一个char指针,并封装和提供各种的字符串操作。 一、为什么要实现隐式公享写时拷贝 试想一下,如果我们要自己实现一个string类,最简单的方...

2014-04-04 00:08:49 6908 8

原创 二叉搜索树转换为有序双向链表

一、问题描述 输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。 二、实现思路 在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总...

2014-03-28 00:04:30 26600 5

原创 计算机网络运输层之UDP

一、UDP概述 UDP(用户数据报协议,User Datagram Protocol),它只是做了运输层协议能够做的最少工作,除了多路复用和多路分解及一些差错检测外,它几乎没有做任何东西。如果应用程序使用的运输层协议是UDP,则应用程序几乎是直接与IP打交道的。 同时,UDP也是一种无连接的运...

2014-03-25 00:28:21 4445 1

原创 程序运行时的内存空间分布

我们在写程序时,既有程序的逻辑代码,也有在程序中定义的变量等数据,那么当我们的程序进行时,我们的代码和数据究竟是存放在哪里的呢?下面就来总结一下。 一、程序运行时的内存空间情况 其实在程序运行时,由于内存的管理方式是以页为单位的,而且程序使用的地址都是虚拟地址,当程序要使用内存时,操作系统...

2014-03-21 01:33:18 27956 21

原创 计算机网络运输层之多路复用与多路分解

一、什么是多路复用和多路分解 我们知道,在网络上主机与主机之间的通信,实质上是主机上运行的应用进程之间的通信。例如,当你通过Http上网浏览网页时,实质上是你所访问的主机的服务器进程与你本机的浏览器进程在进行通信。试想一下,当你在上网的同时,还挂着QQ,还使用ftp下载大文件,这时就有三个网络上的...

2014-03-21 00:13:10 21525 1

原创 设计实现C++内存的半自动释放

C++的一大优点就直接提供了内存的申请和使用功能,让程序员可以根据自己的需要,通过alloc系列函数或new运算符来申请使用内存,但是C++却不像java或C#那样,提供了垃圾的自动回收机制,我们申请的内存要由自己来管理、自己来释放,也就是说,C++把内存管理的责任完全交给了程序员。申请资源是简单...

2014-02-22 00:21:55 6091 4

转载 HTTP协议头部与Keep-Alive模式详解

1、什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Kee...

2014-02-21 23:13:11 5431 1

原创 使用C语言实现“泛型”链表

看到这个标题,你可能非常惊讶,C语言也能实现泛型链表?我们知道链表是我们非常常用的数据结构,但是在C中却没有像C++中的STL那样有一个list的模板类,那么我们是否可以用C语言实现一个像STL中的list那样的泛型链表呢?答案是肯定的。下面就以本人的一个用C语言设计的链表为例子,来分析说明一下本...

2014-01-25 00:09:03 12214 21

原创 用汇编实现数字转化为字符串的函数itoa

对于熟悉C语言的大家来说说,itoa这个函数大家一定不会陌生。itoa是广泛应用的非标准C语言扩展函数,它的功能是:将任意类型的数字转换为字符串。 为了更加清楚地让我们知道,如何使用汇编语言来实现这个函数,下面先以用C语言自己实现一个itoa函数,再来说明使用汇编语言实现方法及思想。因为...

2013-12-28 01:34:52 10473 1

原创 编写无溢出除法的汇编子程序

一、为什么除法会溢出 看到这个标题,你可能会问汇编中不是有div指令来实现除法运算吗?为什么我们还要自己写一个子程序来实现除法?为了说明我们为什么需要自己写一个实现除法的子程序,还得从除法为什么会发生溢出说起。 在汇编中,如果要使用除法运算,我们可以使用div指令,它实现的就是除法的功能,但是...

2013-12-21 00:15:11 15946 16

原创 我的2013——学习生活总结

2013年即将结束,大三的一半即将过去,回顾这一年的种种,个人认为这一年过得还算充实和丰富。下面就从各个方面对这一年的学习生活情况总结一下。 一、学习技术方面 今年学校开设的课程加上自己自学的知识还真是接触和学习了不少的IT方面的技术。 1、学校开设的一些课程 包括数据结构、计算机组成原理...

2013-12-19 00:09:18 7871 46

原创 查找文本文件中的关键字

查找文本文件中的关键字,说白了就是以文本文件作为输入,进行字符串匹配,找返回其第一次出现的下标位置。但是由于数据是以文本文件的形式作为输入的,如何存储和进行匹配就成为了一个问题。下面以两种方法来介绍如何操作。注:本文中采用的字符串匹配算法只是普通的字符串匹配算法,重点在对文件处理和分块查找。 ...

2013-12-18 00:36:55 21499 7

原创 【博客之星评选】我为什么坚持写博客

今天无意中在CSDN的博客之星评选活动看到自己竟然是候选人之一,真的是十分的惊讶也十分的高兴。对于喜欢写东西、喜欢分享的我来说,已经忍不住用文字来记录一下今天的美好心情,同时也让我回想起我是如何开始在CSDN上写博客,并为什么坚持下来的。 如果大家觉得我写的博客还可以,请投我一票支持一下我吧!...

2013-12-16 00:03:03 4181 30

原创 编写输出C风格字符串的汇编子程序

一、C语言是如何输出字符串的 为了更加清楚地说明这个子程序,先来说说如何在C语言中输出一个字符串。在C语言中,我们要输出一个字符串,通常可以这样做: char str[]="hello!"; printf("%s", str); 它表示从地址str开始以AS...

2013-12-15 01:21:51 3990 7

原创 用汇编语言编写程序打印ASCII表

打印一个ASCII表在高级程序设计语言中是一个非常简单的程序,但是用汇编又该如何编写呢? 一、设计思路 我们可以按15行*16列的表格形式显示ASCII码为10H一100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白...

2013-12-12 01:45:10 16972 7

原创 计算机网络应用层 之 P2P

一、什么是P2P 对等网络(PeertoPeer,简称P2P)也称为对等连接,是一种新的通信模式,每个参与者具有同等的能力,可以发起一个通信会话。 这个定义有点抽象,下面就来简单地解释一下。粗略地讲,应用程序可以设计成采用客户机/服务器体系结构或对等体系结构(P2P)。我们日常生活中的许多应用...

2013-11-24 00:08:58 9386 5

原创 快速排序中常见中轴选择方法及实现代码

一、选取最后一个元素 在我们的课本中,看到最多的就是选择第一个元素作为中轴,但是在很多书上却选择最后一个元素作为中轴。下面就让我们来一睹选取最后一个元素作为中轴的快排。 注:本文中的所有算法都采用双向扫描法,即,设两个下标i和j,i和右扫描,j向左扫描,直到i不小于j。而当下标为i的数小于中轴...

2013-11-18 00:29:53 10072 9

原创 求数组中第k个最小数

一、问题描述 给定一个数组,数组中的数据无序,在一个数组中找出其第k个最小的数,例如对于数组x,x = {3,2,1,4,5,6},则其第2个最小的数为2。 二、解题思路 本算法跟快排的思想相似,首先在数组中选取一个数centre作为枢纽,将比centre小的数,放到centre的前面将比ce...

2013-11-06 00:19:04 9211 14

原创 计算机网络应用层之域名系统DNS

一、为什么存在DNS 就像我们寄信需要一个地址一样,我们需要向网络上的某台主机通信,也要知道我们的主机的地址。我们知道,这个地址就是IP地址,它是一个可以在因特网上唯一标识一台主机的地址。然而就如我们知道的那样,IP地址只是4个十进制数字,并不符合人们的记忆和使用,而人们希望使用有意义的易于记忆...

2013-11-04 00:35:12 5437 4

原创 交换两个子数组的位置(只使用1个辅助空间)

一、问题描述 其实这是一个非常基本和常用的数组操作,它的描述如下: 有一数组X[0...n-1],现在把它发为两个子数组x1[0...m]和x2[m+1...n-1],交换这两个子数组,使用数组x由x1x2变成x2x1,例如x={1,2,3,4,5,6,7,8,9},x1={1,2,3,4,5},...

2013-11-03 01:19:31 7212 12

原创 求最大连续子数列和(只扫描一次数列)

一、什么是求最大连续子数列和 首先来看看这是个怎样的问题的,问题描述:一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值。注意:当全是负数的情况时,返回最大的那个负数 二、解题思路 这个问题的思路其实非常简单,从左到右扫描数...

2013-10-31 23:27:45 8838 4

原创 单循环赛程安排问题

首先,来解释一下,什么是单循环问题,其实,这是一个我们在实现中经常遇到的问题。 问题描述: 赛程问题:有N个运动员进行单循环赛,即两个运动员都要与其他所有运动员比赛一次。要求每个运动员每天只进行一次比赛,且整个赛程在N-1天内结束,运动员编号由1到N 注:N = 2^k 解题思想: 看到这个问题...

2013-10-31 00:28:26 6289 3

原创 计算机网络应用层之cookie

一、生活中的cookie 无论你知不知道Cookie是什么,在你的生活中,肯定有使用过它。还记得你使用浏览器浏览网页时,当你要登陆时,网页上有一个记住密码或自动登陆的选项,当你选择时,你就使用了Cookie。那么在下次访问该网站时,你可能就已经自动地登陆了,而不需要从重输入用户名和密码,至于它是...

2013-10-27 00:08:01 5750 2

原创 计算机网络应用层之HTTP协议

一、什么是HTTP协议 HTTP是HyperText Transfer Protocol即超文本传输协议的缩写,是Web应用层协议之一。 HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文运行会话。HTTP定义了Web客户机是如何向We...

2013-10-26 01:46:20 30481 6

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