• 等级
  • 49577 访问
  • 125 原创
  • 2 转发
  • 32566 排名
  • 5 评论
  • 12 获赞

面试中遇到的问题总结

面筋 死锁的概念,如何避免死锁? 两个或者两个以上线程在执行过程中,因争夺资源而产生互相等待的现象,若无外力作用,他们都将无法推进下去,此时,称系统处于死锁。 四个条件,互斥,请求保持,不可剥夺,环路等待。 破坏任一条件即可 预防破坏请求保持,进程必须一次申请所有需要的资源。资源分层,破坏环路等待。 避免是在进程每次申请资源时判断是否是安全操作。银行家算法里,安全是绝对的,不安全不一定...

2018-09-13 15:26:37

C++类型转换

https://www.nowcoder.com/questionTerminal/5e5bb7214788436cb966e67305a8041e?pos=242&mutiTagIds=138&orderByHotValue=1 看一道题: 假设定义了ClassA* pA2,下面正确的代码是? class A { public: virtual void FunTest...

2018-08-17 21:31:52

动态规划练习

数字和为sum的方法数 给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入 5 15 5 5 10 2 3 输出 4 思路:暴力不行。sum值是指定的,但是解空间肯定是最小单位为1进行增长,所以想到dp[i][j]表示前缀为 i ,能组成值为 j 的可能性个数。然后行...

2018-08-13 17:48:04

C++11新特性

C++11新特性 初始化变量 自定义类型可以用大括号(构造列表) 构造列表还可以作为函数参数和返回值 在定义变量时检测精度丢失问题 自动类型 auto回炉重造,在编译期间推到变量类型。主要用在复杂类型减少代码量,比如 std::vector<int>::iterator it auto不能做函数参数,定义类的non-static成员变量,实例化模板 decltype可以...

2018-08-12 10:31:49

C++STL库探究

C++STL库探究 C++STL库探究 六大组件 空间配置器 仿函数 容器 选择vector ,list ,deque ? vector实现细节 list实现细节 deque和vector的差异 关联容器 关联容器和序列容器的差异 STL即标准模板库,封装了一些常用的数据结构和算法 它的价值是从小来说,给用户直接提供了一套高效的算法接口,并且讲算法和数据容器分离,让算法...

2018-08-09 17:05:01

基于CGI搭建网络数据采集站

基于CGI搭建网络数据采集站 http是被应用最为广泛的协议,所以我做项目首先从学习技术角度出发,在github找到开源项目minihttp,并对其进行拓展开发。 项目整体思路 编写目标是编写一个小型http服务器,能正确处理来自浏览器的请求。开发环境是Linux下的C语言编写。 其次需要服务器支持CGI技术,可以让用户执行服务器上的CGI程序,实现搜索引擎的类似功能。 从底层编写的服...

2018-08-05 23:15:43

数据包在网络中的传输路径

IP协议&链路层协议 数据包在网络中的传输路径 从一个问题入手,在浏览器中输入url后发生的事情? 首先url是能在网络中唯一标识一个资源地址的定位符。格式是 协议://域名:端口/资源. 概述:查询DNS服务器将域名转化为目标主机IP地址,进行三次握手建立TCP连接,之后浏览器向服务器发送一个HTTP请求,服务器接收到请求报文,分析请求报文后返回响应报文携带浏览器所请求的资源...

2018-08-05 11:28:01

C++智能指针剖析

智能指针 智能指针的版本 auto_ptr scoped_ptr shared_ptr 循环引用问题 智能指针 什么是智能指针? 程序里有一些指针管理着资源,比如文件指针,指向malloc动态分配空间的指针。这些指针在使用完后必须被释放,否则有内存泄露问题。而程序员往往会因为程序执行流复杂而疏忽了释放这些指针指向的资源,所以,智能指针智能在自动释放资源。 这里的概...

2018-07-20 16:47:29

I/O多路转接服务器设计(select,poll,epoll)

I/O多路转接服务器设计(select,poll,epoll) I/O多路转接服务器设计(select,poll,epoll) 理解IO 阻塞和非阻塞 异步和同步 select服务器的设计思路 epoll服务器 epoll的优点——对应select,poll 理解IO IO就是用户向操作系统索取或发送数据的过程,linux系统实现的是缓存IO。 缓存IO就是底层数据到...

2018-07-19 15:20:50

“直播”俄罗斯方块——linux服务器编程

“直播”俄罗斯方块 概述:一个玩家客户端,多个观战客户端,一个服务器。玩家进行操作,同步游戏信息到服务器,服务器向所有观战客户端实时转发。观战者可以看到下一个图案。 展示: 代码地址: 使用说明: ./server 8080 ./client 127.0.0.1 8080 ./viewer 127.0.0.1 8080 单机版设计思路: model部分 每一个图形用一个...

2018-07-19 15:12:25

C++泛型编程——模板,容器实现

泛型编程 模板技术 模板实例化 模板的使用 模板参数 模板特化 函数模板特化 类模板特化 容器适配器 分离编译模式 泛型编程 泛型编程是编写和类型无关的逻辑代码,是代码复用的另一种手段。模板是实现泛型编程的一种技术。 以往要编写一个通用的函数有3种方法,函数重载,使用公共基类,宏函数。 然而函数重载需要对各种类型一一枚举,且一个错个个错。第二种继承公共基类并重写虚...

2018-07-15 09:15:17

TCP设计思想

TCP设计思想 连接管理 三次握手过程 四次挥手过程 流量控制 拥塞控制 滑动窗口 报文段格式 6个标志位: TCP异常终止 TCP?UDP TCP设计思想 TCP是传输层的可靠传输协议,而传输层以下的网络层不提供可靠传输,因此TCP协议必须做一些措施,出错重发,超时重发,以及在接收方来不及接收时告诉发送方降低速度。TCP还要满足高性能要求,所以非常复杂。 ...

2018-07-09 17:34:04

Socket套接字网络编程(H)

网络编程Socket套接字 首先明白,IP地址和MAC地址的区别是什么? 变和不变的区别。在数据的传输过程中,必然经过路由器连接起来的一个个局域网,在局域网里通过MAC地址给目的主机或者下一跳路由器发送数据,因此MAC地址是不停的变换的,而源和目的IP不能改变,IP是查询路由表的方向标,IP变了就找不到目的地。 如此便不需要IP直接用硬件地址不好吗? 事实上存在着各种各样的网络,各...

2018-07-06 10:02:09

C++多态——虚函数,调用原理

多态分为静态多态和动态多态 什么时候形成动态多态 函数重载,同名隐藏,重写 抽象类 多态调用原理 什么是多态? 通俗的,一个事物有多种状态,在C++里是指一个基类成员函数被不同的派生类或者基类调用,有不同的结果。用基类的指针或引用操纵多个类型的能力被称为多态 多态分为静态多态和动态多态 静态多态是在编译期间完成,根据函数参数实参判断需要调用的函数。以此形成了...

2018-07-01 16:37:40

C++继承概念——权限,对象模型,菱形虚拟继承

访问权限和继承权限 派生类默认的成员函数 赋值兼容规则 菱形继承和虚拟继承 什么是继承? 继承是面向对象设计的重要部分,允许在原有类特性上进行扩展和代码复用! 符合认知上的从浅入深的过程。 访问权限和继承权限 访问权限是指对于本类或者对象的成员来说的,继承权限是在访问权限的基础上谈的,这一点很容易理不清。 访问权限: private: 只能由该类中的函数、其友...

2018-07-01 10:30:22

C++大整数类

实现了 + - * ,除法还没有完成。 利用string类模拟手工加减乘。 头文件 #pragma once #include <string> #include <iostream> using namespace std; typedef long long INT64; class BigData { public: friend ostream&a...

2018-06-28 10:36:55

网络基础——TCP/IP五层模型

网络基础——TCP/IP五层模型 局域网和广域网 局域网LAN是通过交换机和路由器连在一起的一些主机,广域网的概念比局域网规模大一些,但是没有明显的界限区分两者。 局域网通信原理 在数据链路层有两种使用信道的方式,点对点和广播。点对点的作用是用户在接入互联网之前必须先访问某个ISP,其中使用的就是点对点通信方式。 局域网使用广播方式,因为局域网具有地域范围和主机数有限的特点,所以局域网具...

2018-06-27 15:52:50

海量数据处理(转)

海量数据处理(转) 位图和布隆过滤器实现: https://blog.csdn.net/mxrrr_sunshine/article/details/80451189 常见问题: https://blog.csdn.net/zhangye3017/article/details/79431449...

2018-06-27 15:02:26

Linux作业控制(前后台)和守护进程

Linux进程间关系和守护进程 进程间的关系有哪些 之前学过父进程通过fork创建子进程,其实还有一种进程间关系是进程组。 进程组可以接受同一终端的各种信号,比如ctr+c就是给一个进程组发的中断信号而不是个单个进程,所以说进程组通常和一个作业相关联。 组长进程可以创建进程组,但是组内只要有进程就一直存在。 例如在shell界面下用两个管道执行三个命令,就要在shell进程下fork...

2018-06-27 10:06:21

哈希搜索(多次探测,哈希桶)

哈希搜索(闭散列,开散列) 为什么提出哈希? 顺序搜索和二叉树搜索中,元素存储位置和元素关键码之间没有联系。因此在查找一个数据时,必须经过关键码的多次比较,搜索效率取决于比较次数。而一个理想的搜索是不经过比较,直接拿出数据,建立关键码和存储位置的关系。 哈希冲突的产生与解决 不同的关键码通过相同的哈希函数计算出相同的地址,产生冲突。 因此在设计哈希函数时,要尽量避免冲突,...

2018-06-26 15:22:45

MineYuer

咸鱼大学生
关注
  • 中国
奖章
  • 持之以恒