一.32位机和64位机的区别
计算机所处理数据的二进制最高位为32和64,后者处理器一次可以可以运行64bit数据,基本上CPU性能是前者的两倍。
二.静态语言和动态语言的区别
动态语言:数据类型在运行时判断,如python
静态语言:数据类型在运行前判断(编译),如 C。
三.进程和线程的区别
一个程序就是一个进程,一个进程包含许多线程。就好比打开一个网页浏览器,就是打开了一个进程,浏览器里面一个个网页就是线程,我们把浏览器关闭的时候,网页也随之结束。
一个CPU只能处理一个进程,那我们不由得有这样一个疑问:为什么我们在打开网易云音乐听歌时候还可以浏览网页?无疑的是,网易云音乐和浏览器都分别是一个进程,当然我们这里不考虑双核的情况,因为单核也可以做到同时打开多个进程并工作。那原因是什么呢?
首先我们明白一点,CPU的处理速度是很高的,这意味着,它可以很快的处理完当前进程,然后处理其他进程,由于处理的时间很短,就好像它是同时处理多个进程一样。打个比方,武侠电影里面我们经常看到猪脚一片残影过去,所有对手同时倒下,这可不是说明猪脚真的有分身,而是对手太菜了,主角一个一个地快速解决了所有敌人,造成了仿佛同时击败敌人地错觉。
可是理解到这里,笔者不由得再次发出疑问:既然CPU可以处理地这么快,为什么还要多线程呢?
这其实是两个方面,多线程是为了CPU在处理单个线程时更高效,是更细致和进一步地操作。
我们在网上查找相关资料的时候经常会查到这样的句子:
进程:程序一旦运行就是进程,进程是资源分配的最小单位
线程:程序执行的最小单位或者说线程是CPU调度的最小单位
我来解释一下,资源分配,分配的是CPU的资源,通常单核处理器(单核CPU)在同一时刻只能处理一个进程,所以说进程是资源分配的最小单位。
而CPU处理程序的时候,通过调用一个个线程来处理,那你可能问了,岂不是说单核处理器每次只能处理一个线程?不是说只处理一个进程吗?对的- -确实是每次处理一个线程,不过由于CPU处理速度太快,所以造成了“同时处理”多个进程或线程的错觉。
四.同步,异步,并发,并行的区别
你可能会注意到其实对于怎么处理进程,CPU其实有许多办法,所以我们再来谈谈同步、异步、并行、并发的区别:
同步:CPU在处理单个进程的时候只处理当前线程,只有当 当前进程处理完后才能去处理下一个。
好处:同步流程对结果的处理始终和前文保持在一个上下文内。
坏处:在比如IO的时候,无法对其他进
程处理,效率比较低。
异步:同时处理多个进程,
好处:效率高
并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。
并发: 在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。
五.异步和多线程的区别
非常好,我们已经知晓了一些概念及其区别。但是,看着异步操作,我们发现和多线程似乎很像欸,这是是怎么回事呢?
多线程是程序设计的逻辑层概念,他是并发运行的一段代码。多线程可以实现线程间的切换运行。且多线程是我们实现异步操作的一种手段。
更细一步的解释我们可以下次来讲。
六、HTTP协议中请求方法Get和Post的区别
最明显的就是:get用于获取数据,post用于提交数据。
七、Anroid四大组件及其功能
1.Activity:活动,用于与用户交互的界面,这也是用户一打开app最先接触到的东西。
2.Service:服务,在用户看不到的地方起作用,即只能在后台运行并和其他组件交互,如音乐播放器。
3.BroadCast Received:广播接收器,在应用程序之间传输数据的组件。
4.Content Provider:内容提供者,提供第三方应用数据。