计算机组成原理重要知识点总结

1. 冯·诺依曼体系结构

五大组件组成:
输入设备, 输出设备, 运算器, 存储器, 控制器.
具体内容:
https://blog.csdn.net/u010593947/article/details/57417504

参考链接:https://www.zhihu.com/question/58408219/answer/156866958

2. 浮点数的表示

浮点数的表示是编程里比较重要的概念,这对于金融计算来讲,格式重要。1/3=多少?为什么推荐使用BigDecimal
FloatDouble适合做金融运算么?
这些都会在浮点数里找到答案,对于Java,Android,IOS,JS都有用。

3. 进制

1024的世界外行人不懂,没有2进制就没有计算机。这也是必不可少的一定要理解的概念。10000这个可不是联通的电话,8进制,16进制的转换对于运维来讲格外重要,如果你们熟悉Windows蓝屏,那一串看不懂的东西,也是和2二进有关。

同样的,Java,Android,IOS,JS都需要。

4. 字符编码

Ascii码,GB2312,GBK,Utf8(UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码),Unicode,这些编码格式,是缠绕程序员的恶梦,有一位未来的伟人曾经说过,如果一个程序员没有解决过乱码问题,他还能称为一个程序员吗?

了解了这些编码的存储格式,你才会明白为毛为有中文乱码问题,究竟计算机是哪里出错了! 其实错的是它么?它只是听你的话而已。

这个对于Java程序来讲更重要一些,无论是DB,还是文件,还是接口,还是日志,只要有中文的地方,你都有可能遇到乱码的问题。

5.Cache的替换算法

计算机本身的缓存设计,给软件系统中的缓存设计能提供很多启发。常用的替换算法,随机,FIFO,LRU,这些都是从计算机组成原理就可以借鉴的。

当然最重要的还是缓存的概念,在计算机的世界里,空间换时间,时间换空间也是经常用的策略。

能够理解了缓存,就能够让你在未来的复杂设计中站稳脚根。对于Android,IOS,JS也讲,也同样如此,Java更不用说,Redis和Memcache和Ehcache和OSCache等一系列缓存体系,都脱胎于最根本的计算机组成原理思想,只是在不同的场景下,有了自己的变异。

对于缓存,还有命中率的概念要懂的。另外就是失效策略,命中率和失效策略是设计缓存的关键点。

6. 总线

总线的概念其实在几年前SOA盛行的时候比较火热,最近已经慢慢消散,但是做为背景知识,理解总线,进而理解微服务,还是有点用处的。

7. 调用子程序

调用子程序可以帮助你理解递归,回调。特别是在JS里,回调简直是。。。还有IOS。
与此同时,上下文的概念也可以在调用子程序中理解的更透彻一些,想当年,我可是想了好久都没弄懂上下文是什么意思。

8. I/O

IO更多的是一个概念,Input和Output是一个非常重要的概念,特别是在网络请求和读文件中。
Java工程师必备,Android和IOS也可以懂一点。JS可以不用怎么了解。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页