后台开发:核心技术与应用实践

2020-01-12  本文已影响0人  Howie_9891

一.C++编程常用技术

'#'include<>常用来包含系统提供的头文件

'#'include"":先从当前目录进行查找,如果找不到那么就从标准头目录中进行查找

2.形参和实参:

形参只有被调用的时候才分配内存单元,在调用结束的时候立即释放内存单元

3.函数模板

在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能

4.引用时一种变量类型,用于为一个变量起一个别名。经过声明之后,两个都代表同一个变量。声明一个引用变量的时候,必须同时初始化。函数执行期间,不可以将其再作为其他变量的引用

5.如果既要提高程序的引用,又要使得传递给函数的数据不在函数中被改变,应该使用引用

6.共用体

二.面向对象的C++

1.成员函数

私有的成员函数只能被本类中其他成员函数使用,而不能在类外被调用。成员函数中可以使用类中的任何成员,包括公用的和私有的

2.类的封装性

3.构造函数

4.析构函数

析构函数的目的不是删除对象,而是在撤销对象占用的内存之前完成一些清理工作,使得这些内存可以供新的对象使用

5.类的静态数据成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有对象的静态数据成员都共享这一块静态存储空间,这就为对象提供了一种互相通信的方法

6.静态成员函数和非静态成员函数的区别为:非静态成员函数有this指针,而静态成员函数没有this指针。

7.纯虚函数:编译器要求在派生类中必须予以重载以实现多态性

8.单例模式:

定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法来获取单例

9.封装,继承,多态

三.常用STL的使用

1.字符串

2.map的三种插入方式

3.set

为什么map和set的插入删除效率比其他的要高?

四.编译

1.步骤:

2.ELF的文件类型

readelf -h add.o显示add.o的ELF Header的文件头

五.调试

1.top命令:可以实时显示系统中各个进程的资源占用状况

2.ps命令:列出当前在运行的进程的快照

3.Linux程序内存空间布局

4.堆栈的区别

  • 栈是由系统自动分配;堆需要程序员自己申请,并指明大小(在C语言中使用malloc函数,在C++中使用new)。
  • 申请之后系统的相应不同:对于栈,只需要栈的剩余空间大于所申请的空间,系统就为他提供内存,苟泽就报错;堆中首先找记录空闲内存地址的链表
  • 栈是向低地址扩展的数据结构,是一块连续的内存的区域。如果申请的空间超过栈的剩余空间,将提示overflow;堆是向高地址扩展的数据结构,是不连续的内存区域。堆的大小受限于计算机系统中有效的虚拟内存,因此堆得空间比较灵活,也比较大
  • 堆是由系统自动分配,速度较快,但程序员是无法控制的;堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来方便
  • 栈快捷但是自由度小,堆比较麻烦,但是自由度大

六.TCP协议

见网络部分整理

七.网络IO模型

1.四种网络IO模型

  • 阻塞IO模型:(IO操作需要彻底完成之后才返回到用户空间)
  • 非阻塞IO模型:IO操作被调用之后立即返回给用户一个状态值,不需要等到IO操作彻底完成
  • 多路IO复用模型:有一个函数(例如select)会不断地轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程(select/epoll的优势并不是对于单个连接能够处理得更快,而是在于能够处理更多的连接)
  • 异步IO模型:两方互不等待,互不堵塞

八.网络分析工具

1.常见命令

九.多线程

见Mysql与Java 多线程部分的整理

十.进程

1.进程的创建:

2.fork()函数

3.exit和return的区别

4.孤儿进程和僵尸进程

5.守护进程

如果不想让某个进程不因为用户或终端或其他的变化而受到影响,就必须把这个进程变为守护进程

十一.进程间通信

1.方式

十二.HTTP协议

1.返回码:

2.CGI:一个Web服务器提供信息服务的标准接口,通过CGI接口,Web服务器就可以获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。

十三.常用类库

JSON-----

上一篇 下一篇

猜你喜欢

热点阅读