对于学习JavaEE初阶为什么要知道计算机是如何工作的,是因为在未来我们写代码的时候,会出现一些bug,而在代码层面是看不出来的,所以我们需要了解一些关于计算机内部是如何工作的,从而提高代码的健壮度。
计算机的组成(硬件):
1.CPU(中央处理器):
CPU由运算器和控制器组成的,它是目前我们人类智慧的巅峰之作之一,可以认为CPU是计算机的心脏,在计算机工作时起着至关重要的作用。
CPU的性质:我们可以Ctrl + Shift + Esc打开电脑的任务管理器,可以查看本机CPU的属性。
1.速度
它的单位时GHz,这样看可能无法直观的看出CPU的运行速度,但我们只要看一下关于频率的单位转换:1kHz = 1000Hz,1MHz = 1000kHz,1GHz = 1000MHz;也就是说CPU一秒能运行2*10的9次方次。
2.内核
CPU就相当于一个公司,内核就是里面的员工,员工越多办事效率就越高,可以看到,有逻辑处理器个数,这是因为内核有大小核之分,一个大核能干2个小核干的活,像上面这个图,就是6个大核,4个小核。
3.进程和线程
每当我们打开一个应用程序,都会开启一个进程,但又不一定是一个进程,有可能是多个。
4.句柄
当我们想要使用资源时,操作系统就会为该资源分配一个句柄,并且将句柄分配给程序,后续程序就可以通过句柄来控制和访问资源。我们可以将资源比作电视,句柄就是遥控器,我们可以通过使用遥控器来使用电视。
句柄的数量是有限的,这是因为创建句柄是需要申请内存的,如果句柄的数量没有上限,就会消耗大量内存,影响系统运行。
2.输入设备
键盘,麦克风等。。。。。。
3.输出设备
音响,显示器,显卡。。。。。。
(触摸屏即是输入设备,又是输出设备)
4.存储器(内存,外存/硬盘)
内存和外存的区别:
1.内存容量小,外存容量大;
2.内存运行速度快,外存运行速度慢;
3.内存成本高,外存成本低;
4.内存断电后数据会丢失,外存不会。
5.散热器
CPU的工作强度非常大,所以在计算机运行时会产生大量热量,所以需要外部干预进行散热。
计算机的组成还有很多,就不一一赘述了。。。。。。
CPU是怎样运行程序的:
给出一个假定的指令表:
(opcode指operation code,又叫操作码,每个操作码都对应着一个操作)
再给出指令:
按顺序执行命令,先执行地址为0储存的命令,前四位是指令,后四位是要操作的地址。
(寄存器不会主动释放数据,只会被新数据覆盖)
这样的运行逻辑用人的思维去看可能会显得很慢,但CPU的运行速度非常快,像这样的行为CPU1秒能执行39亿次。