Java編程入門-計算機底層知識

java編程入門之計算機底層運行過程

我想對於大多數初入門的或已經學習編程一段時間的程序員來說,他們對於計算機底層一定充滿好奇,或者稱之爲迷茫吧!爲什麼我寫的程序計算機能夠認識?爲什麼計算機能夠幫助我們完成這麼多的任務?計算機底層到底是怎麼回事?接下來我用我目前瞭解的一些知識來爲你做一個簡單易理解的回答。

計算機的組成

想要明白計算機的運行過程,那麼首先必須瞭解計算機的基本組成:如圖
計算機基本組成
cpu:central processing unit(中央處理器)計算機最最關鍵的組成部分。它有着非常精密的構造,上面密佈着無數的電路(許多特殊的邏輯電路,可以完成常用的計算),無比複雜。電路複雜程度相當於將一個超大城市(紐約、北京等)縮小無數倍拓印在其上,正是這種複雜的構造才使得計算機有着這樣超級強大的功能。
內存:相當於一個小型的超豪華的倉庫
顯卡:一個存放東西的板子 信息存儲介質
磁盤:大型廉價倉庫
網卡:數據發送接收的設備(網絡通信方面)
總線:相當於一捆電線

程序運行過程(簡單易理解的一個版本)

注意注意注意:
1.計算機只能認識 0 1 換言之由0和1構成的數據可以用電路模擬出來
2.0和1在計算機中的表示: 有電爲1 無電爲0

程序執行時先從硬盤將數據和指令(如 做加法 做減法等)讀入內存,CPU將這些數據與指令讀入CPU中完成計算過程,計算過程利用複雜的邏輯電路來進行(由一個控制電路有通斷電裝置 再借助複雜的邏輯電路 來完成計算 總之就是利用這些複雜的邏輯電路的有電和無電來得到計算結果)結果將會以特殊的電路標記通過總線寫回內存中。

注:CPU之所以能完成計算任務的關鍵點就是:特殊的邏輯電路構造
計算過程可以這樣理解 電路模擬的數據 ->通過特殊的構造 -> 得到電路模擬表示的數據 -> 記錄顯示

計算結果的呈現

如果需要將結果呈現給屏幕,那麼內存會將計算得到的結果寫到顯卡(信息存儲介質)上,屏幕會實時的將結果呈現出來。屏幕顯示的結果是由一個個的像素點組成,而這些像素點的數據是屏幕以自己特定的刷新頻率讀取的顯卡上的數據。

結論

因此我們只需要將要計算的數據和指令以二進制的方式給到計算機,那麼計算機就會將結果以二進制的形式給予我們。我們因此將計算機能夠認識的這些二進制數據指令稱之爲機器語言。

如果只有機器語言,那麼對於程序員來說可以說是一個噩耗了,誰能記住那麼多的二進制數據指令?因此人們急需要一種能夠簡化編程的語言,慢慢的有了彙編語言(其實只是一種機器語言的助記符 如 用add來代表機器指令10001111(只是做個類比,也許10001111不代表add))這樣編程難度會進一步降低。隨着時間的流逝與計算機的發展,人們也越來越不滿足彙編語言了,因而進一步有了現在的高級語言 如C、Java等。但是程序的底層執行依然沒有變過,用高級語言寫的程序需要通過編譯器或解釋器等轉變爲機器語言,然後再在計算機中執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章