5、文件系统原理:如何用1分钟遍历一个100TB的文件?

文件及硬盘管理是计算机操作系统的重要组成部分,让微软走上成功之路的正是微软最早推出的个人电脑PC操作系统,这个操作系统就叫DOS,即Disk Operating System,硬盘操作系统。我们每天使用电脑都离不开硬盘,硬盘既有大小的限制,通常大一点...

后端技术面试 38 讲

4、网络编程原理:一个字符的互联网之旅

我们开发的面向普通用户的应用程序,目前看来几乎都是互联网应用程序,也就是说,用户操作的应用程序,不管是浏览器还是移动App,核心请求都会通过互联网发送到后端的数据中心进行处理。这个数据中心可能是像微信这样的自己建设的、在多个地区部署的大规模机房,也可...

后端技术面试 38 讲

3、Java虚拟机原理:JVM为什么被称为机器(machine)?

人们常说,Java是一种跨平台的语言,这意味着Java开发出来的程序经过编译后,可以在Linux上运行,也可以在Windows上运行;可以在PC、服务器上运行,也可以在手机上运行;可以在X86的CPU上运行,也可以在ARM的CPU上运行。 因为不同操...

后端技术面试 38 讲

2、数据结构原理:Hash表的时间复杂度为什么是O(1)?

大概十年前,我在阿里巴巴工作的时候,曾经和另一个面试官一起进行一场技术面试,面试过程中我问了一个问题:Hash表的时间复杂度为什么是O(1)?候选人没有回答上来。面试结束后我和另一个面试官有了分歧,我觉得这个问题没有回答上来是不可接受的。而他则觉得,...

后端技术面试 38 讲

1、程序运行原理:程序是如何运行又是如何崩溃的?

软件的核心载体是程序代码,软件开发的主要工作产出也是代码,但是代码被存储在磁盘上本身没有任何价值,软件要想实现价值,代码就必须运行起来。那么代码是如何运行的?在运行中可能会出现什么问题呢? 程序是如何运行起来的软件被开发出来,是文本格式的代码,这些代...

后端技术面试 38 讲

0、开篇词:掌握软件开发技术的第一性原理

计算机软件开发是一个日新月异的领域,几乎每天都有新的技术诞生。每隔几年,软件开发领域就会进行一次大的技术潮流变换,所以身处其中的软件开发技术人员也常常疲于奔命,不断学习各种新知识、新技术,生怕被这个快速变革的时代所抛弃。 但是每次从头开始学习一个新的...

后端技术面试 38 讲

23、结束语:真正的高贵,不是优于别人,而是优于过去的自己

你好,我是袁武林。 不知不觉中,在大家的耐心陪伴下,即时消息专栏的更新马上就要结束了。 首先,要感谢各位同学对我的信任和宽容,给我这个机会,让我能够在这段短暂的时间里,带领大家一起来学习即时消息这一门古老但又充满活力的技术。 对我来说,这是一段非常特...

即时消息技术剖析与实战

22、答疑解惑:不同即时消息场景下架构实现上的异同

你好,我是袁武林。 随着专栏最后一个进阶篇模块的更新后,咱们的即时消息专栏课程,到这里就要告一段落了。首先,感谢你在这段时间里对专栏的持续关注,也非常高兴看到你一直在积极地思考和学习。 在专栏的讨论区,同学们也都十分活跃,都在热情地留言和互动讨论,留...

即时消息技术剖析与实战

21、期末实战:为你的简约版IM系统,加上功能

你好,我是袁武林。 在期中实战中,我们一起尝试实现了一个简易版的聊天系统,并且为这个聊天系统增加了一些基本功能。比如,用户登录、简单的文本消息收发、消息存储设计、未读数提示、消息自动更新等。 但是期中实战的目的,主要是让你对IM系统的基本功能构成有一...

即时消息技术剖析与实战

20、存储和并发:万人群聊系统设计中的几个难点

你好,我是袁武林。 我在场景篇的第10讲[“自动智能扩缩容:直播互动场景中峰值流量的应对”]中,分析了直播互动场景中,容易出现瓶颈的原因主要在于:“直播间人数多,短时间内活跃度高,消息的扇出量巨大”。 那么,对于同样属于多人互动的群聊场景来说,虽然在...

即时消息技术剖析与实战