穿越计算机迷雾
程序员文章站
2022-04-28 15:37:34
...
首先,这是一本书,大概20-30块钱,还算便宜,口碑也不错
其实我也不喜欢就是看书,看书完全是因为有些知识确实看不懂了,难以理解,我看这本书的时候,就是因为看不懂
java的一个框架的运行原理,其实不需要看这么深入的,但是不知不觉的就看了。
促使立即看这本书的原因是:我在今日头条上看见一个问题,JAVA面试官,问int占多少个字节。
然后下面好多程序员都在讨论了
有说这个问题都不知道不配做程序员
有说java里是4个字节
还有说2个字节的。
千奇百怪~~~
其实这个问题是没有任何意义的,因为不管哪个公司的JAVA程序员其实都用不到这个知识,就好比问农民伯伯汽车的方向
盘有什么用一样,虽然是扩展知识,但却是不搭嘎
---
我就是因为看不懂java的一个框架的运行原理,就去看了java生成的原理,深入理解jvm虚拟机,结果还是有看不懂的,
想着jvm是C写的,我去学了C语言,发现了内存管理,最终发现计算机的数据是由0和1的二进制组成,虽然总是听说
计算机都是由0-1组成,但是还是不知道为什么,最终发现了电的开关就是二进制0和1的表现方式,然后看到了电是
如何产生的,发现了*电子,然后推导出了热能生电,只是这么想着,结果百度了一下,热还真能直接生电,说过了
,我今天想说的不是能量由波传播,也不是利用太空的波,因为我也只是逻辑上的猜想,我今天只想说一些,计算机的事。
计算机发展,离不开200多年前发现电的富兰克林。
计算机的运行完全是由电支撑,所以一切都要从电开始,电的开关就可以表示二进制的1-0两个数(先不说如何用电来这
么快速的表示1-0,并计算),我们再来说说电报(电生磁,磁生电的原理,让另一头机械跳动,相同的跳动形式表示同一个意思)
、无线电通信[ 电磁波,电的传播其实是*电子的运动,如果让一端电压特别高(电子多),一端电压很低(电子少),
然后两端接近,能量要平衡,则能量由波的形式传输出去,则形成了电磁波 ]
----
从上面看,目前所有的一切都离不开电。
如果仅仅用电是否流动表示二进制1-0,那么计算机什么都做不了,最多可以运用电器元件和数学知识模拟加法运算,
再或者仅仅传播1-0的二进制数据。
我们再想想,电的是否连通表示1-0的数据模拟,我们想让计算机做加法,是不是要自己控制开关呢 ?那么自己控制开关,
我觉得是不可能实现的,所以出现了二极管但是没太大用,最终出现了我们电脑需要的三极管
(三极管的运行+数学知识 让三级管仿佛有了计算能力),以及发展到现在的晶体管(计算机的主要组成部分CPU)。
说到这里差不多了, 计算机的组成 = CPU + 声卡 + 显卡 + I/O + 存储
他们其实都是独立的!!!!!
他们共同配合,所以才有了现在功能如此全面的计算机。
CPU:目前先进的CPU是由数十亿个晶体管组成,晶体管主要是用于计算,其实三极管也是用于计算的,就是因为
电器元件的限制,所以计算机只能做加法,这是总所周知的。8位的CPU,做个不恰当的水管流水的比喻(实在不好解释),
8位代表有8个进水口,16位代表有16个进水口,32位代表有32个进水口,计算速度更快。
而目前市面大多,32位系统、64位系统,这个其实是指软件上的,比如用C语言写好程序,用64位编译,最终就会导致,
这个程序某个地方做加法,需要64个水管同时运行,但如果CPU其实只有32根水管,这样下来,程序是不能运行的。所以现在的程序员
为了兼容,其实都是用32位系统进行代码编译的。这也是32位CPU不能装64位系统的原因,但目前市面上几乎全部都是64位的CPU了。
所以,不管多少位CPU其实都是用来计算的,int所占内存大小也是人为规定的。
16位的操作系统int占2个字节,int不管是在64、32位操作系统都是4个字节,但是这个指的是C语言写的程序,C语言是其它语言的母语。
但是,严谨的来说,int所占内存大小分为两种情况:
一、如果只看操作系统,目前的计算机 int 就是占4个字节。
二、与编译器有关 (C、JAVA等int类型,他们的创始人都定义为了4字节)
假如:我重新编写一个F语言,也是用C语言编写的,我还是可以定义F语言的int类型为8个字节。大不了对应成C语言的long类型
声卡:I/O声卡的作用就是将声波转为的电信号转换为二进制/或者将二进制转换为电信号。振荡器让声卡频率越高,
就代表一瞬间能处理到更多的电信号,声音就更加保真。
显卡:I/O显卡,专门用来处理图像,一张超大的图片,需要快速的更加细腻的展示出来,就需要显卡,将图片二进制快速的临时
保存起来,再将二进制与图片的色彩位数一一对应。
I/O: 其实就是数据的读写,I/O越好,读写数据越快。
存储: 就是数据的保存,保存数据的速度也有快慢与大小。
另外,还有键盘、显示器、温度计等。。。。
这些都是通过驱动器将数据转换为专门的二进制,或者将二进制转换为的我们看的懂得数据。
~~ 另外就是计算机的内存,内存可以好好了解一下,以便明白程序语言对内存的管理,数据存储
上一篇: python网络-计算机网络基础(23)
下一篇: 无题