• 找工作?该复习了!


    我把我找工作中遇到的知识点统计了下,并归类了下,希望可以帮到正在找工作的童鞋们!

    如果觉得有需要增加的可以添加到评论中,方便其他园友复习。

    一、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和UDP
    1。基于连接与无连接
    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模型

  • 相关阅读:
    2020 CCPC Wannafly Winter Camp Day2 E阔力梯的树(树上启发式合并)
    牛客练习赛73D 离别(线段树)
    从零开始部署图书管理系统
    linux下安装nginx(编译安装)及反向代理及负载均衡
    linux下MariaDB安装
    linux下virtualenvwrapper安装
    linux下安装虚拟环境
    linux下安装django2.2
    linux下安装nginx(yum源安装)
    linux系统优化命令--day03
  • 原文地址:https://www.cnblogs.com/hanxi/p/2753993.html
Copyright © 2020-2023  润新知