一面(群面):签到,填资料,然后12个人一组,5分钟看资料,然后轮流自我介绍并说明自己观点,再无领导小组讨论,最后一人总结发言,面试官问谁觉得发言少的举手,举手的人挨个说明为什么自己发言少。我就属于没说话的那种,最后也举手了,居然我会过一面。
然后马上二面,技术面。
1.自我介绍。
2.不是计算机专业的,自学的吗?
3.手写一个客户端。
4.了不了解数据库
5.会不会写sql。
6.c语言中内存分配,比如变量放在哪,就那几个区。
栈区stack:由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作类似于数据结构中的栈
堆区heap:一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。它与数据结构中的堆是两回事,分配方式倒是类似于链表。
全局区(静态区)static:全局变量和静态变量的存储时放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
文字常量区:常量字符串放在这里。程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
7.堆和栈的区别。
8.如何避免死锁。
加锁顺序(线程按照一定的顺序加锁)
加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁)
死锁检测
破坏死锁的必要条件。银行家算法。
(前三点是网上查的,后两点是翻书的,这里把合在一起)
9.closewait和timewait的区别。
10.如何判断大端,小端
#include <stdio.h>
int main(){
union{
int n;
char ch;
} data;
data.n = 0x00000001; //也可以直接写作 data.n = 1;
if(data.ch == 1){
printf("Little-endian\n");
}
else{
printf("Big-endian\n");
}
return 0;
}
11.特长。
12.期望薪资。
13.有什么要问的。