校招笔试题知识点汇总(持续更新)

1.CriticalSection 临界区。

是每个线程中访问临界资源的那段代码,不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。

2.Socket。

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

3.named pipe 命名管道

命名管道克服了无名管道只能用于亲缘关系进程之间的缺陷。命名管道是建立在实际的磁盘介质或文件系统上而不是只存在于内存中,有自己名字的文件,它提供一个路径名与之关联,任何进程可以在任何时间通过文件名或路径名与该文件建立联系。命名管道引入了一种新的文件类型—FIFO文件(遵循先进先出的原则),并以FIFO的文件形式存在于文件系统中。即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信,实现了通过FIFO不相关的进程也能够交换数据。命名管道一旦建立,之后它的读、写以及关闭操作都与普通管道完全相同。

4.Shared Memory共享内存

共享内存是常用的进程间通信,两个进程可以直接共享访问同一块内存区域。

5.Virtual Memory虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

6.fork()函数

fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,这个新产生的进程称为子进程。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。需要注意的一点:就是调用fork函数之后,一定是两个进程同时执行的代码段是fork函数之后的代码,而之前的代码以及由父进程执行完毕。

fork函数返回两个值

  • 返回一个大于0的值给父进程
  • 返回0给子进程
  • 返回其他值说明fork失败了

转自:http://blog.csdn.net/ww1473345713/article/details/51708003

7.数据库事务(Transaction)

事务提供了一种机制,可用来将一系列数据库更改归入一个逻辑操作。更改数据库后,所做的更改可以作为一个单元进行提交或取消。事务可确保遵循原子性、一致性、隔离性和持续性(ACID)这几种属性,以使数据能够正确地提交到数据库中。转自:https://www.cnblogs.com/sharpest/p/6122352.html

8.常见的版本控制工具

如:git,svn等。转自:http://blog.sina.com.cn/s/blog_5f0e9ca50102v63c.html

9.有关设计模式的知识

http://www.runoob.com/design-pattern/design-pattern-intro.html

10.Mysql的复制相关概念(异步/半同步复制/master-slave等)

https://blog.csdn.net/nanamasuda/article/details/52089499

11.关于文件访问权限,以及修改访问权限

第一列的字符可以分为三组,每一组有三个,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):

  • 第一组字符(2-4)表示文件所有者的权限,-rwxr-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。
  • 第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。
  • 第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。
符号 说明
+ 为文件或目录增加权限
- 删除文件或目录的权限
=
设置指定的权

  • u stands for user.
  • g stands for group.
  • o stands for others.
  • a stands for all.
$ls -l testfile
-rwxrwxr--  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod g=rx testfile
$ls -l testfile
-rw-r-xrwx  1 amrood   users 1024  Nov 2 00:10  testfile

  • chmod 775 aaa 
    除了符号,也可以使用八进制数字来指定具体权限,如下表所示: 
    数字 说明 权限
    0 没有任何权限 ---
    1 执行权限 --x
    2 写入权限 -w-
    3 执行权限和写入权限:1 (执行) + 2 (写入) = 3 -wx
    4 读取权限 r--
    5 读取和执行权限:4 (读取) + 1 (执行) = 5 r-x       
    6 读取和写入权限:4 (读取) + 2 (写入) = 6 rw-
    7 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 rwx

12.各种排序算法的时间复杂度,空间复杂度,稳定性

13.关于内存中存储数据的对齐方式。


许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐。


每个特定平台上的编译器都有自己的默认“对齐系数”(32位机一般为4,64位机一般为8)。我们可以通过预编译命令#pragma pack(k),k=1,2,4,8,16来改变这个系数,其中k就是需要指定的“对齐系数”;也可以使用#pragma pack()取消自定义字节对齐方式。

14.



猜你喜欢

转载自blog.csdn.net/u012198209/article/details/79624622