本节课,我会继续剖析一些,你们提出的,有代表性的问题(以后端问题为主),主要包括以下几个方面:
后端技术部分真的比前端技术部分难吗?
怎样更好地理解栈和栈桢(有几个同学提出的问题很好,有必要在这里探究一下)?这样,你对栈桢的理解会更加扎实。
有关数据流分析框架。数据流分析是后端技术的几个重点之一,需要再细化一下。
关于 Java 的两个知识点:泛型和反射。我会从编译技术的角度讲一讲。
接下来,进入第一个问题:后端技术真的难吗?正确的学习路径是什么?
后端技术真的难吗?该怎么学?
有同学觉得,一进到后端,难度马上加大了,你是不是也有这样的感觉?我承认,前端部分和后端部分确实不太相同。
前端部分偏纯逻辑,你只要把算法琢磨透就行了。而后端部分,开始用到计算机组成原理的知识,要考虑 CPU、寄存器、内存和指令集,甚至还要深入到 CPU 内部,去看它的流水线结构,以便理解指令排序。当然,我们还要说清楚与操作系统的关系,操作系统是如何加载代码并运行的,如何帮你管理内存等等。另外,还涉及 ABI 和调用约定,NP 完全的算法等等。看上去复杂了很多。
虽然比较复杂,但我认为,这并不意味着后端更难,只意味着知识点更多。可这些知识,往往你熟悉了就不难了。