面试碰到的技术题

[持续更新]

1. 面向对象和面向过程的区别?

面向过程就是像流水线一样,分析出解决问题所需要的步骤,然后用解决方法(函数)将这些步骤一个一个实现,最后的时候再一个一个调用即可。而面向对象是需要解决的问题分解成各个对象,将解决问题的结构抽象成了对象,它并不是为了解决问题的一个步骤,而是为了更好的描述整个问题的行为,从而更好的解决庞大复杂的问题。

不管是面向对象还是面向过程,都体现了一种代码重用的思想,都希望可以提高工作的效率。面向过程重用的是函数,而面向对象重用的是类。

2. C和C++有什么不同?

C是一个结构化语言,它的重点是在于算法和数据结构,C程序要首先要考虑的是如何通过一个过程,对输入进行运输得到输出结果。而对于C++,首先要考虑的是如何构造一个对象模型,让整个模型能够匹配对应的问题,这样可以通过获取对象的信息得到输出或者过程控制。C和C++最大的区别是解决问题的思想和方法不一样。

3. 请描述进程与线程的差别。

进程是程序的一次执行。而线程可以理解为进程中的一段程序片段。进程间是相互独立的,这表现在内存空间,上下文环境上;而线程运行在进程空间内。进程较难突破进程边界存取其他进程间的存储空间,而线程处于进程空间内,所以同一进程内的线程贡献同一存储空间。除非引入线程技术,同一进程内的两端代码不能同时执行。线程是属于进程的,当进程退出时所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占用的资源。

原文地址:https://www.cnblogs.com/scnutiger/p/1590046.html