面试问答题

1 操作系统中同步个异步的区别?分别用在什么场合?
 同步是就是调用者发出一个功能调用时,在没有得到结果之前,该调用就不会返回;异步就是调用者发出一个功能调用后,调用者不能立刻得到返回结果,当处  理这个调用的部件完成后,通过状态,通知或回调来通知调用者。
B/S模式  同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事。

AJAX技术 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕


2 数据库的ACID指什么?

A: 原子性 C: 一致性 I: 隔离性 D: 持久性


3. TCP和UDP的区别以及应用的区别?
主要区别是UDP不能提供可靠的数据传输,而TCP提供可靠的数据传输。

当强调传输的完整性,可靠性,可控性而不是时传输性能时,选择TCP;当强调传输的性能而不是完整性时,如传输视频和多媒体应用,明显选择UDP,在传输数据的时间很短时,也适合用UDP,如DNS.


4. 堆和栈的区别?
 栈区:由编译器自动分配和释放,速度快,但不受程序员控制,一般存放函数的参数指,局部变量值等。其操作方式类似于数据结构中的栈。
 堆区:一般由程序员分配和释放,速度较慢,容易产生内部碎片,若程序员不释放,最终可能由操作系统释放。类似Java语言的话,也会由gc回收释放。
 栈是向下增长的,堆是向上增长的。
5. 进程和线程的区别?
 一个程序至少有一个进程,一个进程至少有一个线程。
 进程在运行时有独立的内存空间,而多个线程共享内存空间。从而极大的提高了程序的执行效率。
 在一个应用程序中,有多个执行部分可以通过多个线程同时执行,但是操作系统并没有把这多个线程当多个独立的应用程序,来实现进程的调度和管理以及资  源分配。这是进程和线程的重要区别。
 进程是系统进行资源分配和调度的一个独立单位。

 线程没有独立的系统资源,它的资源来自系统给进程分配的资源。


6.C语言中#include<>和#include""的区别?
#include<>用于标准库文件或系统提供的头文件,区存放他们的位置去查找他们。

#include""用于用户自定义的头文件,在当前目录下没有找到时,才会去标准库文件中查找。


7.为什么抽象类不能实例化?

因为抽象类没有提供实例化它的构造方法。


8.简述单例模式和工厂模式?
单例模式:确保一个类只有一个对象,并且它自己实例化这个对象后在整个系统中提供。

工厂模式:主要是为创建对象提供过渡性接口,以便将创建对象的过程屏蔽起来,达到提高灵活性的目的。


9.hash冲突的解决方法?

   开放定址法:一旦发生了冲突了,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。

   再散列函数:用一种散列函数发生冲突了,就再使用下一种散列函数,再冲突了,再换一种散列函数,相信总有一个散列函数会解                             决冲突。这种方法使得关键字不产生聚集,但相应的增加了计算的时间。

   链地址法:将所有的冲突的记录存储在一个单链表中,无论有多少个冲突,都只是在当前的位置给单链表增加一个节点。但它查找                          时需要遍历单链表,性能会下降。

  公共溢出区法:就是将冲突的关键字建立一个公共的溢出区来存放。


10.头文件中的ifndef/define/endif的作用?

C语言进行预处理,防止头文件被重复引用。


11.#if和#endif作用?

他们在编译时决定,如果条件成立就编译里面的内容,如果不成立,就不编译。


12.IP组播有哪些好处?

组播是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接受者的网络技术。组播可以大大的节约网络带宽,因为无论有多少个网络地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播技术的核心就是在节约网络资源的前提下保证服务质量。


13.动态链接库的两种方式?

载入时动态链接和运行时动态链接。


14.各种网络协议


15.程序什么时候使用线程?什么时候单线程效率高?

耗时的操作使用线程,提高程序响应。

并行操作使用线程。

在多CPU线程中,使用线程提高CPU的利用率。

改善程序结构,一个既长又复杂的进程,可以考虑分成几个单独的部分,让多个线程区执行他们,这样有利于程序的修改和理解。

其他情况用单线程。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值