搜集下面试题目吧---长期更新

来源:互联网 发布:centos jdk rpm 编辑:程序博客网 时间:2024/04/30 10:24

1.c/c++内存分配


内存分配方式有三种: 

(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 

(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 

(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。 


2.指针和引用的区别

1) 引用必须初始化

2)引用无法绑定到另外的对象,一旦定义,无法转移;指针可指向新对象;

3)引用即别名;指针则开辟新内存空间存地址


3.进程和线程的区别

1)一个进程可以包括多个线程

2)一个进程的内存空间是共享的,每个线程都可以使用这些内存空间

操作系统的设计,因此可以归结为三点:

(1)以多进程形式,允许多个任务同时运行;

(2)以多线程形式,允许单个任务分成不同的部分运行;

(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。



0 0
原创粉丝点击