远景智能笔试

在这里插入图片描述

第一次复习

操作系统只给一个进程一个时间片,不管你内部有多少个线程,我只给你一个,怎么分配是你的事情

第一次做

30%没有听过的题目
50%知道个大概的题目
20%有把握的题目
远景智能笔试题目链接

多线程和多进程

在这里插入图片描述
父子进程间遵循读时共享写时复制。fork函数调用一次,返回两次。在父进程和子进程中各调用一次。子进程中返回值为0,父进程中返回值为子进程的PID。程序员可以根据返回值的不同让父进程和子进程执行不同的代码。子进程是父进程的副本,获得了父进程数据空间、堆和栈的副本;父子进程并不共享这些存储空间,共享正文段(即代码段);因此子进程对变量的所做的改变并不会影响父进程。一般来说,fork之后父、子进程执行顺序是不确定的,这取决于内核调度算法。进程之间实现同步需要进行进程通信
SMP:Symmetrical Multi-Processing,对称性多核处理器,多进程可以在不同的核上运行,但是线程不可以跨机器迁移,因为线程是存在于单一的进程之中,只能在一个核上运行

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm)

一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

银行家算法(Banker’s Algorithm)

是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。
在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。
银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。

cookie

在这里插入图片描述

接口的作用

https://www.runoob.com/cplusplus/cpp-interfaces.html#:~:text=C%2B%2B%20%E6%8E%A5%E5%8F%A3%E6%98%AF%E4%BD%BF%E7%94%A8,%E6%8A%BD%E8%B1%A1%E7%B1%BB%20%E6%9D%A5%E5%AE%9E%E7%8E%B0%E7%9A%84%EF%BC%8C%E6%8A%BD%E8%B1%A1%E7%B1%BB%E4%B8%8E%E6%95%B0%E6%8D%AE%E6%8A%BD%E8%B1%A1%E4%BA%92%E4%B8%8D%E6%B7%B7%E6%B7%86%EF%BC%8C%E6%95%B0%E6%8D%AE%E6%8A%BD%E8%B1%A1%E6%98%AF%E4%B8%80%E4%B8%AA%E6%8A%8A%E5%AE%9E%E7%8E%B0%E7%BB%86%E8%8A%82%E4%B8%8E%E7%9B%B8%E5%85%B3%E7%9A%84%E6%95%B0%E6%8D%AE%E5%88%86%E7%A6%BB%E5%BC%80%E7%9A%84%E6%A6%82%E5%BF%B5%E3%80%82

平衡二叉搜索树

平衡是指分布比较均匀,防止出现头重脚轻的情况

SQL执行顺序

在这里插入图片描述

宏函数二义性,只做简单的提花替换在这里插入图片描述

float 和 double

0.6345
float是四个字节,小数点后两位,double是八个字节,小数点后6位,题目中有5个数字和1个标点应该占6个字节,小数点后四位

HTTP状态码

https://www.runoob.com/http/http-status-codes.html
在这里插入图片描述

成员变量和局部变量:类成员变量默认赋初值0

成员变量和局部变量的区别
1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量
1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。
2、成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰;两者都可以定义成final型。
3、成员变量存储在堆,局部变量存储在栈。局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
4、局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
5、成员变量在累加载或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null。(被final修饰且没有static的必须显式赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。
6、局部变量可以和成员变量 同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问
本例中i为成员变量,有默认的初始值,如果定义在方法内部,就没有初始值

排序复杂度

堆排序最坏情况时间下的时间复杂度为 O(nlog2n) ;希尔排序最坏情况时间下的时间复杂度为 O(n1.5) ;快速排序、冒泡排序最坏情况时间下的时间复杂度为 O(n2) 。

私有地址和环回地址

私有地址有:
A类:10.0.0.0到10.255.255.255
B类:172.16.0.0到172.31.255.255
C类:192.168.0.0到192.168.255.255
在这里插入图片描述

Linux命令

cat /proc/cpuinfo:查看一台linux机器的CPU信息 du:查看该目录占用文件系统数据块的情况
cat /proc/swaps:查看SWAP分区信息
df -lh:查看硬盘信息

进程间通信

Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket)
Linux线程间通信:互斥量(mutex),信号量,条件变量
Windows进程间通信:管道、消息队列、共享内存、信号量 (semaphore) 、套接字(socket)
Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)

数据库DML

*DML:数据操纵语言Manipulation

INSERT、UPDATE、DELETE

数据库模糊chaxun

%代表任意长度(长度可以为0)的字符串
_(下横线)代表任意单个字符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值