一些面试题:
Linux系统编程:
1.说一说进程和线程的区别?
进程:资源分配的最小单位
线程:程序执行的最小单位
进程:有独立的地址空间
线程:没有单独的地址空间
说一说IPC有哪些方式?各自的优缺点?你最常用哪种?
管道(pipe):管道可用于具有亲缘关系的进程间通信,是一种半双工的方式
匿名管道(named pipe):命名管道克服了管道没有名字的限制,具有管道功能外,还允许无亲缘关系的进程间通信
信号(single):信号是比较复杂的通信方式,用于通知接收进程的有事件发生,除了进程间通信外,进程还可以发送信号给进程本身
消息队列:消息队列是消息的链表,消息队列克服信号承载信息量少.
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用的IPC形势,是针对其他通信机制运行效率较低而设计的..
内存映射:内存映射允许任何多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它
信号量:主要作为进程间以及同一进程不同线程之间的同步手段
套接字:更为一般的进程间通信机制,可用于不同机器之间的进程间通信
3.说一说TCP和UDP的区别?
TCP:面向连接的协议.三次握手,四次挥手
UDP:非连接的协议,传输数据之前源端和终端不建立连接,当它想连接的时候就简单的去抓取来自应用程序的数据,尽快的把它扔到网络上
说TCP建立连接和断开连接的过程?
5.说一说孤儿进程,守护进程,僵尸进程? 怎么避免僵尸进程?怎么创建守护进程?
僵尸进程:是一个进程使用fork创建子进程,子进程退出,父进程并没有调用wait或waitpid去去收回子进程的系统资源
守护进程:是创建守护进程时有意把父进程结束,子进程做相应的处理.
孤儿进程:是因为父进程异常结束了,子进程还在
6.子进程从父进程继承哪些资源?
fork后父子进程只共享代码段,其他父进程资源会得到继承,但不共享存储空间
.说一说poll,epoll和select的区别吧?
poll:poll和select在本质上没有多大差别,但是poll没有最大文件描述符
epoll:Linux特有 epoll是poll的一种优化,适合于处理大量的fd
select:跨平台,select支持文件数量比较小,默认是1024
8.编写shell脚本获取当前用户的所有进程的进程编号和名称.
==========================================================================
C语言:
1.简单说一说内存分区吧?
静态区
文字常量区
栈区
堆区
代码区
2.说一说结构体怎么对齐?
结构体总长度
结构体内各个数据成员的内存对齐,即改数据成员相对结构体的起始位置;
.说一说大端和小端吧? 怎么判别是大端传输还是小端传输?
大端:数据的地位保存在内存的高地址中,数据高位保存在低地址中
小端:数据的低位保存在数据的低地址中,高位保存在数据的高地址中
4.说一说C语言编译器处理回调函数的方式吧?
5.简单说一说栈和队列的区别吧
队列:先进先出
栈:先进后出
6.写一个程序找出链表的倒数第k个元素的值.
7.说一说柔性数组(0长度数组)的用法吧.
柔性数组通常用来实现变长数组,常见在TLV数据结构中,在C/C++标准中不准使用
=============================================================================
C++:
1.说一说面向对象的特性吧?
封装,继承,多态
2.C++是怎么实现多态的?
虚函数,抽象类,覆盖,模板
3.纯虚函数占空间吗? 纯虚函数怎么创建实例?
纯虚函数占4字节,虚指针…..
纯虚函数不可以实例化
4.说一说C++底层是怎么实现引用的?哪引用和指针的区别是什么?
引用没有const,指针可以const
指针可以多级,引用只能一级
指针的值可以空,引用的值不能为空,引用在定义的时候必须初始化
5.说一说定位new的用法吧?定位new就是预先分配一块内存,再new出来的对象放入此内存块中
6.C++中静态成员函数有什么特性?
静态成员函数没有this指针
静态成员函数不能virtual
静态成员函数不能重载
静态成员函数不能const
7.说一说快速排序的时间复杂度是多少?
8.写一个简单单例程序吧?
class CSing
{
public:
static CSing * getIn()
{
if(m_pInst ==NULL)
m_pInst = new CSing();
return M_pInst;
}
private:
CSing(){}
static CSing * m_pInst;
};
=============================================================
数据库:
1.说一说有哪些关系型数据库和非关系型数据库?
关系型:Oracle MySQL
非关系型数据库:Redis
2.说一说什么是数据库的事务?
单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全的不执行
3.游标的作用是什么?
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
4.mysql怎么创建一个用户?
CREATE USER ‘username’@’locahos’ BIN BY ‘password’;
5.写一条SQL语句查询员工表中的所有姓’王’的员工的’薪水’.并且按照所在部门分组,按照年龄从大到小排序输出.
=============================================================
其他:
1.说一说你对云计算和大数据理解吧
4.路由器和交换机分别属于T哪一层设备?
5.怎么提高客户端和服务器的通信效率?
6.现在只有一个公网IP地址,怎么让公司内部100台设备能上网?
7.怎么防止SQL注入?
分隔线—————-