BB两句
说起来,真是一个悲伤的故事,做了几年的技术,一些基本概念还是记不清,之前一直知道进程和线程的区别,如要真的要问我什么是进程、什么是线程这些基础,我还真的就懵逼了,果真,最近面试的时候还真遇到了,当时只说出了自己的理解,不过在这儿还是整理一下吧。
线程和进程
进程,Process,是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体
——摘自百度百科
线程,thread,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
——摘自百度百科
以上是定义,至于区别就是我们经常看到的几个方面的区别:
-
本质上,进程是系统资源分配的基本单位,线程是任务调度和执行的基本单位;
-
在内存分配上,系统会为每个进程分配不同的内存空间,而线程则不会,他们只能共享系统分配给他们所依存的进程的资源;
-
另外在包含关系方面,线程是隶属于进程的。
还有问的比较多的就是面向对象的三个特征,切记,这里不是需要你去找女朋友或者男朋友的三个特征,这个要搞清楚。
面向对象相关
一般先是说一下什么是面向对象(oop),那什么是面向对象呢,面向对象是相对于面向过程而言的,它将构成问题的各个事务分解成各个对象,用来描述这个事务在整个解决问题的步骤中的行为。然后开始介绍三个特征:封装、继承、多态。
-
封装:将对象属性和行为看成一个不可分割的整体,并且把它的实现细节隐藏起来,对外界暴露接口来控制对象属性的读写操作;
-
继承:在已有类的基础上定义新的类,而不需要把已有类的内容重新定义一遍,新定义的类成为子类,被继承的类成为父类或者基类,在通过extends关键字实现继承之后,子类也就拥有了父类的非私有的成员属性和方法;
-
多态:同一个行为具有多种不同表现形式或形态的能力,一般分为运行时多态和静态多态,静态多态可以简单的理解为方法重载,在一个类中操作,动态多态可以理解为方法的重写,一般需要两个及两个以上具有继承关系的类。另外多态的三个必要条件是继承、重写和父类引用指向子类对象。
ioc 控制反转
参考:https://blog.youkuaiyun.com/qq_42709262/article/details/81951402
控制反转,面向对象编程中的一种设计原则,可以降低计算机代码之间的耦合度。通过ioc容器控制对象的创建,所谓反转,即对象只是被动的接受依赖对象
再逼逼两句
目前我整理的暂时这么多,其他的以后整理,如果有错误的话,欢迎指正。
加入我的行列
QQ群:
微信公众号