找工作必备知识
2015-06-09 21:41
204 查看
一、C
①基本函数实现swap()
reverse()
strcpy()
②五个存储区
③内存对齐
④数组名问题
int a[10];
int *p=a;
p++;p+1;a+1;
a++;//错误,数组名是常量
二、C++
①static的作用②const的作用
③四个类型转换
static_cast<>;
dynamic_cast<>;
const_cast<>;
reinterpret_cast<>;
④placement new
规定对象的存储位置
placement new机制初探
⑤浅拷贝和深拷贝
析构函数,operator=(),拷贝构造函数,三者一般同时自定义(自定义了一个则需定义其它两个)
⑥在C++中引用C的函数和变量
在前面加extern "C"
⑦虚析构函数的作用
防止内存泄露
三、数据结构
①链表创建、添加、删除
②查找时间对比
栈、队列、二叉排序树、hash表
③Btree,Hash
四、算法
①排序插入:直接插入、希尔
交换:冒泡、快速
选择:直接选择、堆排序
归并排序
基数排序
②最短路径
计算一个节点到其他所有节点的最短路径:Dijkstra算法
算法是解决任意两点间的最短路径的一种算法:Floyd-Warshall算法
③贪心法
贪心算法解决部分背包问题
④动态规划
动态规划法之背包问题
五、数据库
①基本语句数据库基本语句
②常用聚合函数
MIN(),MAX(),COUNT(),AVG(),SUM()
③查询语句
数据库查询语句
六、操作系统
①线程和进程的区别
1、 线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。
2、 一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个进程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。
3、 系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),线程组只能共享资源。那就是说,出了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。
4、 与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。
5、 进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。
②进程同步的方式
管道/FIFO/共享内存/消息队列/信号
③线程同步的方式
临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问
互斥量:为协调共同对一个共享资源的单独访问而设计的
信号量:为控制一个具有有限数量用户资源而设计
事件:用来通知线程有一些事件已发生,从而启动后继任务的开始
④进程间通讯的方式
管道:速度慢,容量有限
消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。
信号量:不能传递复杂消息,只能用来同步
共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了一块内存的。
⑤死锁的四个必要条件
互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
循环等待条件(Circular wait):系统中若干进程组成环路,改环路中每个进程都在等待相邻进程正占用的资源。
⑥处理死锁的策略
忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢,因为传说中鸵鸟看到危险就把头埋在地底下,可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像;
检测死锁并且恢复;
仔细地对资源进行动态分配,以避免死锁;
通过破除死锁四个必要条件之一,来防止死锁产生;
七、计算机网络
①TCP和UDP1。基于连接与无连接
2。对系统资源的要求(TCP较多,UDP少)
3。UDP程序结构较简单
4。流模式与数据报模式
5。TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
②TCP/IP四层协议
网络接口层、网间网层、传输层、应用层
③OSI七层网络协议
OSI的7层从上到下分别是
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层
④五种网络I/O
Unix网络编程中的的五种I/O模型
相关文章推荐
- spark学习4 yarn运行
- 解决MyEclipse当确认所有配置都配好后还是无法达到目的的问题
- 某整形数组中除了两个单身整数外, 其余的整数都是成对出现的, 利用C/C++代码求出这两个单身整数。 要求: 时间复杂度o(n), 空间复杂度o(1)------某公司招聘试题
- 修改Active Directory域控制器IP地址
- Android基础系列-----------OpenGL ES(一)
- gem5配置
- android AudioManager 类详解
- PHP设计模式——中介者模式
- MT4平台上mql4实现的基于macd指标的智能交易EA
- C++中 引入虚基类的作用
- linux 下的软路由zebra 安装使用
- 开放模式识别和图像处理之旅
- Android项目中的R文件丢失
- 软件测试的完整分类
- [LeetCode] Remove Duplicates from Sorted Array II
- java设计模式 ----工厂模式
- 两阶段提交协议(2PC)
- 模型 - 视图 - 控制器(MVC)详解
- POJ 2096 Collecting Bugs
- Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?