Fork me on GitHub
摘要: 比尔·盖茨在上世纪80年代说的“640K ought to be enough for anyone” 也就是“640K内存对哪个人来说都够用了” 那个年代,微软开发的还是DOS操作系统,程序员们还在绞尽脑汁,想要用好这极为有限的640K内存 而现在,我手头的Mac Book Pro已经是16G内存 阅读全文
posted @ 2019-08-17 22:18 公众号-JavaEdge 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢? 反过来,Windows上的程序在Linux上也是一样不能执行的 可是我们的CPU并没有换掉,它应该可以识别同样的指令呀!!! 如果你和我有同样的疑问,那这一节,我们 阅读全文
posted @ 2019-08-16 00:29 公众号-JavaEdge 阅读(944) 评论(0) 推荐(2) 编辑
摘要: 用Google搜异常信息,肯定都访问过 "Stack Overflow网站" 全球最大的程序员问答网站,名字来自于一个常见的报错,就是栈溢出(stack overflow) 从函数调用开始,在计算机指令层面函数间的相互调用是怎么实现的,以及什么情况下会发生栈溢出 1 栈的意义 先看一个简单的C程序 阅读全文
posted @ 2019-08-15 23:07 公众号-JavaEdge 阅读(783) 评论(1) 推荐(2) 编辑
摘要: CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if…else、for这样的条件和循环存在,这些指令也不会一路平直执行下去。 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CPU如何执行指令 CPU里差不多几百亿个晶体管 实际上,一条条计算机指令执行起来非常复杂 好在CPU在 阅读全文
posted @ 2019-08-14 00:48 公众号-JavaEdge 阅读(920) 评论(0) 推荐(1) 编辑
摘要: 在上一篇中,我们谈到过 要提升计算机的性能,可以从上面这三方面着手。 通过指令数/CPI,好像都太难了。 因此工程师们,就在CPU上多放晶体管,不断提升CPU的时钟频率,让CPU更快,程序的执行时间就会缩短。 从1978年Intel发布的8086 CPU开始,计算机的主频从5MHz开始,不断攀升 1 阅读全文
posted @ 2019-08-11 21:36 公众号-JavaEdge 阅读(998) 评论(0) 推荐(2) 编辑
摘要: 0 学习路线的知识点概括 学习计算机组成原理,就是学习计算机是如何协调运行的 计算机组成原理的英文叫Computer Organization Organization 意"组织机构"。 该组织机构能够进行各种计算、控制、读取输入,进行输出,达成各种强大的功能。 把整个计算机组成原理的知识点拆分成了 阅读全文
posted @ 2019-08-10 19:31 公众号-JavaEdge 阅读(1150) 评论(0) 推荐(0) 编辑
摘要: 1 计算机的基本硬件组成 早期,DIY一台计算机,要先有三大件 CPU 内存 主板 1.1 CPU 计算机最重要的核心配件,中央处理器(Central Processing Unit)。 计算机的所有“计算”都是由CPU来进行的。 CPU是一个超级精细的印刷电路版 1.2 内存(Memory) 你撰 阅读全文
posted @ 2019-08-09 02:05 公众号-JavaEdge 阅读(1883) 评论(0) 推荐(2) 编辑
摘要: 任何程序都需要加载到内存才能与CPU进行交流 同理, 字节码.class文件同样需要加载到内存中,才可以实例化类 的使命就是提前加载.class 类文件到内存中 在加载类时,使用的是Parents Delegation Model(溯源委派加载模型) Java的类加载器是一个运行时核心基础设施模块, 阅读全文
posted @ 2019-08-09 01:22 公众号-JavaEdge 阅读(926) 评论(1) 推荐(0) 编辑
摘要: 提到SSH、Telnet等远程终端登录,我相信很多人想到的都是PuTTY PuTTY通常用于Windows,但实际上可以多平台运行,因此不表达为“Windows下的远程终端登录” PuTTY足够成熟、小巧、专注核心任务,并且对编码等常见坑的处理并不缺乏,这其实都是优点。 但PuTTY在额外功能上就同 阅读全文
posted @ 2019-08-07 11:23 公众号-JavaEdge 阅读(1138) 评论(0) 推荐(1) 编辑
摘要: 不知道你有没有产生过这些疑问: 桌面上的图标到底是啥?凭啥我在鼠标上一双击,就会出来一些不可描述的画面?都是从哪里跑出来的? 凭什么我在键盘上噼里啪啦地敲,某个位置就会显示我想要的那些字符? 电脑怎么知道我鼠标点击的是这个地方,又是怎么知道我要输入的是这个地方? 我在键盘上点“a”,是谁在显示器上画 阅读全文
posted @ 2019-08-05 00:54 公众号-JavaEdge 阅读(540) 评论(0) 推荐(0) 编辑