H面试的基础知识(1):一些基础知识的总结
2013-08-12 23:20
441 查看
1.链表和数组的比较 链表:链表可以支持动态内存大小,插入和删除的速度快,空间开销大,不支持随机访问; 数组:数组的大小不能动态扩充,支持随机访问,数组在内存中逐个存放; 2.C++中为什么用模板类。 (1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是平台无关的,可移植性好 (5)可用于基本数据类型 3.程序什么时候应该使用线程,什么时候单线程效率高。 (1)耗时的操作使用线程,提高应用程序响应 (2)并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。 (3)多CPU系统中,使用线程提高CPU利用率 (4)改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独 立的运行部分,这样的程序会利于理解和修改。 4.群硕智力题: 有101个硬币,其中有一个是假币,假币重量和真币不同。现有一个无砝码的天平,只允许称2次。请你告诉我,假币比真币重还是轻? 答案:平分成50,称一次;取重(轻)的50个出来,再平分称一次,如果相等,那么假币轻(重)了;如果不相等,那么重(轻)了; 5.(操作系统) (1) 说明进程的三个基本状态之间转换的原因 a.处于就绪状态的进程,当进程调度程序为之分配了处理机后,进程便由就绪状态转为执行状态; b.当前进程因发生某事件无法执行,如访问了已经被占用的临界资源,就会由执行态转为阻塞态; c.当前进程的时间片用完而暂停执行或者有更高优先级的进程到来,该进程便由执行态转为就绪态; (2) 什么是死锁?产生死锁的原因是什么?必要条件是什么? 死锁是多个进程竞争资源造成的,若无外力的作用,这些进程将永远不能向前推进; 产生死锁的原因:一是竞争资源;二是进程推进顺序非法; 产生死锁的必要条件:互斥条件;请求和保持条件;不剥夺条件;环路等待条件 (3) 创建进程的必要步骤 a.建立一个PCB(进程控制块); b.为进程分配内存等必要资源; c.将PCB接入进程就绪队列; (4) 进程间的互斥 多个进程需要使用临界资源,获得资源的进程可以运行,没有获得资源的进程必须等待,进程间的这种关系叫互斥 可以采用信号量和P,V操作来实现进程间的互斥
相关文章推荐
- 自己总结的有关表单的一些基础知识....表单的类型和属性......
- 自己总结C/C++的一些容易被遗忘的基础知识!
- [C++ 面试基础知识总结] 顺序容器
- Flash制作动画的一些基础知识总结
- 一些面试基础知识点(2)
- 数据库基础知识--数据库知识的一些小总结
- [C++ 面试基础知识总结] 关联容器
- 面试总结之泛型基础知识
- PYTHON 一些基础面试题目总结
- 一些面试可能遇到的基础知识
- 黑马程序员 一些个人总结的小基础知识点
- Android面试基础知识总结
- 一些基础的面试的java知识,普及下。开发和测试都用得到。
- PYTHON 一些基础面试题目总结
- 博弈论的一些基础知识(参考网络资料,学习总结,很好,分享并保存)
- spring基础知识汇总及常见面试题目总结
- 操作系统常见面试的一些基础知识整理
- [C++ 面试基础知识总结] 泛型算法
- 【Linux基础学习之三】Bash的一些基础知识总结(通配符、重定向、管道、命令补全)
- 基础知识总结-前端面试(一)