收集于各个地方,作为一个非科班表示多写这样的解释啊
1.概念:并行,并发
你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行
2.缓存 (来自聊天记录)
A:对缓存的理解:内存缓存和本地缓存,内存缓存类似于数组啊,map之类的实现方式,本地缓存类似于数据库,文件之类的
B:缓存可以是任何形式,唯一的共同点,就是你把数据放到了一个更容易取得的地方
你去请求网络,数据在服务器需要下载下来。这个下载过程你觉得太慢,于是,加入缓存,放了一份在硬盘。下次,你直接从硬盘拿,这个就比原来快很多了
现在你在加载图片,从硬盘加载还是太慢,索性放了一份在内存。还是一样的道理,我们把数据放在一个“更容易取得的”地方
你在操作数据,数据从内存读到 CPU 太慢,CPU 在内部加入 cache,一样是放在一个更容易获取数据的地方
3.Maven(来着知乎)
类比做菜,你可能像做个红烧小排(HongshaoxiaopaiApp),你需要的材料是:
小排(xiaopai.jar),要小猪的(version=little pig)。酱油(jiangyou.jar),要82年的酱油(version=1982)盐(yan.jar)糖(tang.jar),糖要广东产的(version=guangdong)生姜(shengjiang.jar)茴香(huixiang.jar)
于是,你要去菜场买小排,去门口杂货店买酱油,买盐……可能你家门口的杂货店还没有1982年的酱油,你要去3公里外的农贸市场买……你买原材料的过程估计会很痛苦,可能买到的材料不是1982年的,会影响口感。在你正式开始做小排前,你会为食材的事情,忙得半死。现在有个超市出了个盒装版的半成品红烧小排,把生的小排,1982年的酱油,盐,广东产的糖等材料打包成一个盒子里,你回家只要按照说明,就能把红烧小排做出来,不用考虑材料的来源问题。Maven就是那个超市,红烧小排就是你要开发的软件,酱油、盐什么的就是你开发软件要用到的jar包——我们知道,开发java系统,下载一堆jar包依赖是很正常的事情。有了maven,你不用去各个网站下载各种版本的jar包,也不用考虑这些jar包的依赖关系。Maven会给你搞定,就是超市的配菜师傅会帮你把红烧小排的配料配齐一样。现在你应该明白Maven是做什么的了吧