1、线程和进程区别和联系。什么是“线程安全”

2、C和C++怎样分配和释放内存,区别是什么

  1. 金山笔试题:
     1、C ++为什么经常将析构函数声明为虚函数?
     2、inline和#define的如何定义MAX,区别是什么。
     3、const的用法,如何解除const限制。
     4、智能指针的作用和设计原理。
     5、STL中vetor如何自己设计,关键设计点,函数声明,自定义删除重复元素的函数。
     6、如何用一条SQL语句,删除表中某字段重复的记录。

2011.10.11最新百度电面:
 1、动态链接库与静态链接库的区别(  静态链接库是.lib格式的文件,一般在工程的设置界面加入工程中,程序编译时会把lib文件的代码加入你的程序中因此会增加代码大小,你的程序一运行lib代码强制被装入你程序的运行空间,不能手动移除lib代码。
  动态链接库是程序运行时动态装入内存的模块,格式*.dll,在程序运行时可以随意加载和移除,节省内存空间。
  在大型的软件项目中一般要实现很多功能,如果把所有单独的功能写成一个个lib文件的话,程序运行的时候要占用很大的内存空间,导致运行缓慢;但是如果将功能写成dll文件,就可以在用到该功能的时候调用功能对应的dll文件,不用这个功能时将dll文件移除内存,这样可以节省内存空间
。)
 2、指针与引用的区别(相同点:1. 都是地址的概念;
指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。

区别
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
4. 引用没有 const,指针有 const;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
7. 指针和引用的自增(++)运算意义不一样;
8.从内存分配上看:程序为指针变量分配内存区域,而引用不需要分配内存区域
。)
 3、进程与线程的区别(①从概念上
进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位。
线程:一个进程内的基本调度单位。
线程的划分尺度小于进程,一个进程包含一个或者更多的线程。
②从执行过程中来看
进程:拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。
线程:每一个独立的线程,都有一个程序运行的入口、顺序执行序列、和程序的出口。但是线程不能够独立的执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
③从逻辑角度来看:(重要区别)
多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但是,操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理及资源分配
。)
 4、函数调用入栈出栈的过程
 4、c++对象模型与虚表
 5、海量数据处理,以及如何解决Hash冲突等问题
 6、系统设计,概率算法


  1. map在什么情况下会发生死锁;stl中的map是怎么实现的?(有要参加淘宝面试的朋友注意,淘宝喜欢问STL方面的问题
  1. 十五道百度、腾讯面试基础测试题@fengchaokobe:
     1、写一个C的函数,输入整数N,输出整数M,M满足:M是2的n次方,且是不大于N中最大的2的n次方。例如,输入4,5,6,7,都是输出4 。
     2、C++中虚拟函数的实现机制。
     3、写出选择排序的代码及快速排序的算法。
     4、你认为什么排序算法最好?
     5、tcp/ip的那几层协议,IP是否是可靠的?为什么?
     6、进程和线程的区别和联系,什么情况下用多线程,什么时候用多进程?
     7、指针数组和数组指针的区别。
     8、查找单链表的中间结点。
     9、最近在实验室课题研究或工作中遇到的技术难点,怎么解决的?
     10、sizeof和strlen的区别。
     11、malloc-free和new-delete的区别
     12、大数据量中找中位数。
     13、堆和栈的区别。
     14、描述函数调用的整个过程。
     15、在一个两维平面上有三个不在一条直线上的点。请问能够作出几条与这些点距离相同的线?
              有几个题 http://www.angrywheat.com/ali_campus/


你可能感兴趣的:(杂)