软件开发 - 面试
1. 全局变量和局部变量在内存中的区别?
全局变量存储在全局(静态)存储区;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配内存;
栈:由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数,局部变量,返回值以及函数的返回地址。
堆:用于程序动态申请分配的释放空间。C语言中的malloc和free,C++中的new和delete均是在堆中进行的。正常情况下,程序员申请的空间在使用结束后应该释放,如果没有及时释放,则在程序结束时系统自动回收。
2. 进程和线程的区别?
进程是程序的一次运行,线程可以理解为进程中执行的一段程序片段。
进程之间是独立的,线程运行在进程空间内,同一进程所产生的的线程共享同一内存空间。
线程是属于进程的,当进程退出时该进程所产生的的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。进程和线程都可以有优先级。
浙公网安备 33010602011771号