首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

​1970年代-大规模集成芯片(LSI)、ASIC和电子游戏吃豆人诞生

1970年代发展迅速十年,BASIC和C高级编程语言在这十年中被广泛采用,大规模集成芯片(LSI)、ASIC等也被广泛应用到电子游戏中,同时经典游戏《吃豆人》和《星际迷航》也在这个时期诞生,接下来让我们看看这十年电子游戏和...1970年代 大型电脑游戏 ? Will Crowther 1976 年游戏Colossal Cave Adventure屏幕说明。...然而,到了70年代末,情况发生了巨大变化。...虽然1970年代大型机比当时街机和控制台硬件更强大,但通过分时将计算资源分配给几十个同时使用用户需要大大限制了他们能力。...首款掌上液晶游戏机 加上廉价微处理器,手持电子游戏为 1970 年代后期最早手持视频游戏系统铺平了道路。

1.1K50

Lambda诞生

懵懂记得从前有个叫委托东西是那么高深难懂。 委托使用 例一: ? 什么是委托? 个人理解:用来传递方法类型。...(用来传递数字类型有int、float、double,用来传递方法就有委托) 例二: ? 又经过了很久很久... 匿名方法 很多时候委托接收方法是一次性或者方法体是非常简单......细心朋友可能看到了,Func相对于AddDelegate多定义了一个int。多出了那个是指的是返回类型。我们F12看对应定义: ?...C#4中Action和Func有16个参数,足够你用了。 我们等了又等,又过了好久好久... Lambda诞生 ? 我XX,这TM就是亲兄弟啊。...关于第2点,我们使用扩展方法链式编程来解决。 如:(用链式来解决第二点) ? 从此,我们过上了幸福生活... 借《深入理解C#》中一图: ?

54110
您找到你想要的搜索结果了吗?
是的
没有找到

接口诞生

接口诞生 接口其实就是一种标准一种规范。 先从生活中例子讲起,理解含义和概念后,再去理解程序会更容易理解一些。...生活中例子讲完,我们来延申到程序。 每项技术产生,肯定是有其原因。理解了技术诞生经过,一般也就理解了技术本身。 那接口是如何诞生呢?...这时候我们就可以将,父类方法抽象出来,抽象类就这么诞生了,这里抽象类其实已经有了标准和规范意思,抽象方法就可以理解为一个对外标准,子类就是这些标准实现方,然后我们会发现,抽象类还不算彻底抽象...在接口诞生中说过,这种类是没有必要创建实例对象,所以第二个相同点就是不能创建本类对象,只能由子类去实例化子类对象。...在接口诞生我们说过,抽象类更进一步地抽象后就诞生了接口,接口比抽象类更纯粹,因为它没有成员属性,只有方法,子类实现接口后,唯一能做就是重写方法,不像抽象类,子类继承抽象类后,连带父类成员属性一起继承了

27720

JDBC 诞生

这里向大家推荐一篇文章,本文转载自「码农翻身」「JDBC诞生」 网络访问 随着 Oracle, Sybase, SQL Server, DB2, Mysql 等人陆陆续续住进数据库村,这里呈现出一片兴旺发达景象...外部花花世界一下全部打开,很多程序开始离开这个拥挤城镇,住到更加宜居地方去。 可是他们工作还是要读写数据库, 大家都在想办法能不能通过网络来访问数据库镇数据库。...更让人恶心是,每套代码都得处理非常多协议细节,每个使用Java进行数据库访问程序都在喋喋不休抱怨:我就想通过网络给数据库发送SQL语句,怎么搞这么麻烦?...SQL返回结果也得有个抽象概念:ResultSet。 他们之间关系如图所示: ?...无论是任何数据库,只要正确实现了 Driver,Connection 等接口,就可以轻松纳入到JDBC框架下了。 Java终于可以高兴宣布: “JDBC正式诞生了!”

69830

linux0.11看一个进程诞生

这一篇大致说一下进程创建,有兴趣可以参考之前一些文章或者直接上代码https://github.com/theanarkh/read-linux-0.11。 系统有一个GDT表。...该表保存了系统和所有进程tss和ldt描述符信息。tss就是我们平时说进程上下文。每个进程有一个ldt数组,里面保存了代码段和数据段描述符信息。 首先,从一个进程诞生说起。...下面我们来看一下fork过程都做了什么事情。先通过find_empty_process获取一个可用进程id和pcb。pid是进程id。pcb是管理进程结构体。...在这里插入图片描述 进程创建本质就是申请一个新pcb,里面保存了该进程相关信息,假设现在轮到该进程执行。系统会根据tss选择子到gdt表中找到tss结构体地址。...cs寄存器里存是代码段选择子。是0x17。即ldt第二项,和数据段一样。从ldt第二项中找出基地址和限长。基地址+ip得到线性地址值。然后再根据页目录和页表就能得到物理值。

1.4K11

Hadoop 诞生历史

Lucene 诞生 故事发生于 1997 年某个下午,Doug Cutting 在电脑上敲下 Lucene 第一个版本代码。 Apache Lucene 是一款搜索引擎,可以理解为百度。...Cutting 开始了新工作,也就是给互联网上网页增加索引,华盛顿大学研究生 Mike Cafarella 也加入了他工作。...这个新系统主要目的是抽象集群存储,使其呈现为一个可靠文件系统,从而向用户隐藏所有操作复杂性。...与以前分布式编程模型相比,这证明了 API 优雅程度。 MapReduce 贡献一个很核心思路是不应该为了处理数据而被迫移动数据。相反,应该将程序发送到数据所在位置。...Facebook 贡献了 Hive,它是基于 MapReduce SQL 引擎。 2008 年,也是第一家专注于 Hadoop 专业系统集成商诞生一年。

1.2K40

信息超新星诞生

上世纪80年代内地宣扬“知识大爆炸”,其实也是“信息能”体现形式之一。中国抓住了这次机会,经过三十余年励精图治,一跃成为世界第二大经济体,未被开除“球籍”(这可是当年有识之士最担忧问题)。...文章内容 信息超新星诞生 文/Michael Saylor 译/邹韬 移动技术将改变商业运作方式,它将改变整个工业以及它们所推动经济。...然而,直到20世纪60年代商务计算机信息处理技术出现,信息革命才找到它自己“蒸汽机”。 image.png 每一次新计算技术浪潮都带来提高生产率新应用。...我们正在见证一颗超新星诞生。移动计算技术有潜力让这个数据量变得更大。 在网络革命之前,即使最出色商务数据库也只能跟踪购买交易。...我们需要一个无所不在传送装置。20世纪90年代出现台式电脑网络浏览界面是最常见和应用最广泛界面,于是它成为大规模应用软件所采纳最主要界面。

574100

“奥利奥”诞生

甜品来命名。...发布会时间只有短短55秒,可以说比一个简单自我介绍时间还要短。不如说是全球最短发布会了。之所以确定为“奥利奥”,个人认为最大攻城还是这次日全食。因为日全食过程更像奥利奥生产过程。 ?...1.关于通知:以前通知都是一大串,现在我们可以设置重要通知,拦截那些无关紧要通知信息。相当于我们垃圾短信拦截把。...这样好处是在一款设备上,播放影片同时不影响其他工作。 ? 当然,这几个只是比较突出。...,除了几个功能上更新,Android 8.0 还加强了限制后台应用运行来提升设备续航能力,同时还改进了蓝牙音频,并新增了 Google Play Protect 机制,定期扫描所以应用保证设备安全

91260

Linux28岁!开发者“诞生贴”下致谢Linux之父Linus

昨天,众多开发者聚集在28年前Linux诞生贴”下面,向Linux之父Linus Torwalds致谢,这个1991年帖子下,全是满满温暖与感激。 Linux 28岁了!...今天回过头来看,这些特征描述和后来Linux很不一样,很多在当时认为肯定做不到事情,Linux不仅后来一一实现,而且完成很出色。...今天看来,这些论断最后都被Linux后来突飞猛进现实“打了脸”。...这种矛盾曾经在去年Linux维护者大会上集中爆发,导致他从Linux社区暂时休假,并公开为自己言论道歉。...不过,因暴脾气离开社群也好,自省后回归也罢,Linus Torwalds作为Linux之父地位仍然是不可动摇,他对于社区建设和Linux内核维护更新巨大贡献更是有目共睹。

92910

【算法】哈希表诞生

以查找为例:在数组实现查找表中,需要用二分等查找方式进行一系列比较后,才能找到给定键值对位置。而二叉树实现中也存在着一个向左右子树递归查找过程。...相比起哈希表,其他查找表中并没有特定“键”和“键位置”之间对应关系。所以需要在键查找上付出较大开销。...及时调整数组大小必要性 1. 在拉链法实现哈希表中,因为链表存在,可以弹性地容纳键值对,而对于线性探测法实现哈希表,其容纳键值对数量是直接受到数组大小限制。...这种方式不易产生键簇聚集现象, 但会增加计算时间 什么是好哈希函数 在介绍完了解决冲突方式后,我们再回过头来看什么是“好”哈希函数, 一个“好”哈希函数应该是均匀, 即对于键集合中任意一个键...,映射到哈希值集合中任意一个值概率是相等

1.1K100

NAS方案-YSC诞生

前言 最近家里宽带申请到了公网IP,并且上传可以在短暂时间内超过80Mpbs(10秒)(稳定50Mpbs),下载为200Mpbs,准备开启私有云,着手搭建自己NAS,这里也分享点经验和踩坑。...我ssh时候改密码会出现权限BUG,无法更改,这里我后来用3寸显示屏看树莓派连接键盘改密,不知道这不是软件问题 环境搭建 建议下载宝塔,这是最简单最可视化一种方案 https://bt.cn 选择...bt合适版本,用root运行脚本,第一次可能会失败,安装提示配置安装一些基本软件包就行了 安装过程我大概花了5~10分钟,挺慢,树莓派单核编译能力即使是4B也是很差。...可道云部署 https://kodcloud.com/ 这里用这个私有云程序进行演示,当然你也可以用owncloud或他们团队做另一个nextcloud,也可用其他 下载源码 宝塔官方已经支持一键部署可道云了...(未写完) 我公网私有云地址 https://fnas.cc:1334

71420

【算法】哈希表诞生

以查找为例:在数组实现查找表中,需要用二分等查找方式进行一系列比较后,才能找到给定键值对位置。而二叉树实现中也存在着一个向左右子树递归查找过程。...相比起哈希表,其他查找表中并没有特定“键”和“键位置”之间对应关系。所以需要在键查找上付出较大开销。...及时调整数组大小必要性 1. 在拉链法实现哈希表中,因为链表存在,可以弹性地容纳键值对,而对于线性探测法实现哈希表,其容纳键值对数量是直接受到数组大小限制。...这种方式不易产生键簇聚集现象, 但会增加计算时间 什么是好哈希函数 在介绍完了解决冲突方式后,我们再回过头来看什么是“好”哈希函数, 一个“好”哈希函数应该是均匀, 即对于键集合中任意一个键...,映射到哈希值集合中任意一个值概率是相等

82370

Docker诞生和架构

docker诞生 Docker 公司起初是一家名为 dotCloud 平台即服务(Platform-as-a-Service, PaaS)提供商。...底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker 就是这样诞生!...Linux包依赖问题 解决了传统开发,部署模式问题,给DevOps带来了落地实现方案 解决了传统虚拟机过于浪费资源问题 更便捷升级和扩缩容 物理机,虚拟机,容器 下图,简单描述了物理机,虚拟机,...我们常见有VMware vSphere、微软Hyper-V,开源KVM、Xen等。 而容器相对于虚拟机而言,就轻量得多。它通过Linux内核虚拟化能力来管理多个容器。...不像虚拟机,需要额外资源来支持多个操作系统运行。

18110

bug是怎么诞生

一、概念Bug,指软件中缺陷,它可能会引发软件失效。二、bug由来Bug一词原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着一些未被发现缺陷或问题,人们也叫它“bug”。...而代表电脑程序出错“bug” 这名字,正是由赫柏所取。1945年9月9日,下午三点。哈珀中尉正领着她小组构造一个称为“马克二型”计算机。...这还不是一个完全电子计算机,它使用了大量继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀小组日以继夜地工作。机房是一间第一次世界大战时建造老建筑。...:不影响产品运行、不会成为故障起因、但对产品外观和下道工序影响较大缺陷1、次要功能不能正常实现2、操作界面错误(包括数据窗口内列名定义,含义不一致)例如:列名与列名下内容不一致3、查询错误、数据错误显示...等等,这个直接关系到个人利益和前途,另外测试存在也是为了让程序没有bug,作为开发我们更应该和测试配合打造更好产品。

1.1K40

比特宇宙-TCPIP诞生

这样效率太低了,如果一条线路给你们占用了,别人要经过这条线是不是得一直等着? Linux:说有道理,那你有什么好主意?...Linux:你问题怎么这么多,快说! Windows:帝国之内有许多公司都需要经贸合作,如何能进一步区分是哪家公司信息呢?...Windows:这恐怕不太现实,帝国公司经常在变化,每天诞生消亡不计其数,还有些公司根本不做国际化贸易,不需要网络通信,这种办法不好操作。...Linux:这,,, Unix:今天时间也不早了,要不明天继续讨论这个议题如何,今天收获已经不少了。 Linux:好,我回去再琢磨琢磨。 ☆ 第二天 ☆ Unix:两位昨晚休息的如何?...帝国内部再给自己公司编个码,既然你说到公司会不断消亡和诞生,那这个号码就动态生成。

38710

年轻代与老年代调优笔记

存活区(Survivor) Survivor存在意义,就是减少被送到老年代对象,进而减少Full GC发生。...如果 Survivor空间不足或经历16次Minor GC还能在新生代中存活对象会通过分配担保机制被送入老年代。 老年代负责分配担保让Survivor无法容纳对象直接进入老年代。...如果剩余空间小于转移对象大小,将直接进行 FullGc 进入老年代对象 大对象会直接进入老年代(避免频繁复制) 在程序中长期持有了对象引用(对象年龄达到指定阈值也会进入老年代) survivor 区太小...,只能进入老年代 FullGC 执行 Minor GC(年轻代GC) 时候,JVM 会检查老年代中最大连续可用空间是否大于了当前新生代所有对象总大小 如果大于,则直接执行 Minor GC(年轻代GC...年轻代=eden+2survivor 年轻代和老年代最优比例为1:2。

3.8K50

(图解)人工智能黄金年代:机器学习

1950年代计算机科学方起步,从科学家到一般大众都对于计算机充满无尽想象,不但从大导演弗里茨·朗大都会到作家艾西莫夫机器人三大法则,主流科学界也都预估约莫20到30年左右时间便可以成功创造出与人类智能同样高度的人工智能...然而,人工智能研究很快便面临了瓶颈──机器程序是由人类撰写出来,当人类不知道一个问题解答时,机器同样不能解决人类无法回答问题。...如今,计算机运算能力约为30年前100万倍。 早期的人工智能研究聚焦在逻辑推论方法,专注于模仿人类推理过程思考模式。由于需要百分之百确定事实配合,因此在实务上不容易使用。...除此之外,我们也可从过去天气资料中、找出有下雨天气特征,并在进来一个新天气情境资料时能预测下雨机率,以进行气象预测。...下篇,我们时间轴将来到1980年代,看那时正要大放异彩类神经网络(Artificial Neural Network),是如何在风口前被浅层机器学习(Shallowing Learning)所逆转。

992150

JVM中新生代和老年代

JVM在程序运行过程当中,会创建大量对象,这些对象,大部分是短周期对象,小部分是长周期对象,对于短周期对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频率垃圾回收以确保无谓地垃圾扫描检测...年轻代垃圾回收算法使用是复制算法,复制算法基本思想就是将内存分为两块,每次只用其中一块,当这一块内存用完,就将还活着对象复制到另外一块上面。复制算法不会产生内存碎片。 ?...-XX:InitialTenuringThreshol和-XX:MaxTenuringThreshold 用于设置晋升到老年代对象年龄最小值和最大值,每个对象在坚持过一次Minor GC之后,年龄就加...heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。...GC会逐一问清楚每个对象情况,有没有钱(此对象引用)啊,因为GC想赚钱呀,有钱才可以敲诈嘛。然后富人就会进入Survivor Space(幸存者区),穷人就直接kill掉。

1.6K00

谈AMS诞生和使用

顾名思义,这个组件肯定是用来管理Activity服务,其实不仅是Activity,它还负责四大组件相关启动,切换,调度等等。 具体是怎么被启动,又是怎么进行管理呢?一起看看吧。...(代码基于Android9.0) 服务启动 之前在SystemServer章节说过,系统服务一般都是通过SystemServer进程启动,AMS也不例外。...然后我们要使用相关服务方法时候,就通过Servermanager拿到对应服务引用。...因为这些服务,包括我们今天说AMS都是在SystemServer进程中,而我们实际用到时候是在我们自己应用进程中,所以就涉及到进程间通信了,这里是用Binder机制进行通信。...还有一些特殊状态Activity对应ActivityRecord,比如正在暂停Activity,上一个暂停过Activity。

98850

诞生七年NPU

在高通设想中,Zeroth终极目标就是形成标准化新型处理架构,并且第一次提出了NPU概念,这种芯片已经具备了AI芯片雏形。...有了NPU之后,手机AI性能就能得到大幅提升。 从麒麟970单核NPU、到最新麒麟90002+1三核NPU,NPU升级也伴着华为AI技术发展,最能直观体会到就摄像功能带来进步。...比如取景时智能场景识别功能,可以让系统快速识别拍摄物体和场景,并自动做出优化调教。再比如被广大消费者惊叹“月亮模式”,以及强大智能防抖功能,再包括最新物体识别。...从整个市场上来看,目前AI芯片还处于算法主导到产品主导过渡期,由于各家AI芯片设计不同,AI方案架构方面都有不小区别,像寒武纪“DIANNAO”、谷歌TPU,再到华为达芬奇架构,目前AI芯片设计可谓百花齐放...所以,AI芯片只是提供了手机AI应用基石,真正要挖掘出移动端AI魅力,还需要开发者针对AI芯片能力开发出合适应用。

1.3K40
领券