首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

計算機程序的思維邏輯(一):從硬體到數據操作的核心觀念

     編輯:Java 綜合教學

程序運作的本質:資源的虛擬與指令的執行

計算機本質上是一台由 CPU、記憶體、硬碟及輸入輸出設備組成的機器。其上運行作業系統(如 Windows 或 Linux),作業系統再承載各類應用程式(Word、QQ 等)。作業系統將 CPU 時間切分為極小的時間片,輪流分配給不同程式,並頻繁切換上下文。但在應用程式視角中,彷彿整台機器資源專屬於自己——這正是作業系統提供的虛擬假象。對程式設計師而言,編寫程式時基本無需考慮其他應用,只需專注於實現自身邏輯。

應用程式功能看似多樣:讀寫文件、播放音樂、聊天、遊戲、下圍棋……但底層核心僅是執行預先編寫的指令,這些指令無非是操作數據或設備。所謂程式,本質上就是指定「對什麼數據做什麼操作」的指令序列。

  • 讀文件:將數據從磁碟載入記憶體,再輸出至顯示器。
  • 寫文件:將記憶體中的數據寫回磁碟。
  • 播放音樂:將音樂數據載入記憶體,再寫入聲卡。
  • 聊天:鍵盤輸入 → 記憶體 → 網卡 → 網路 → 對方網卡 → 記憶體 → 顯示器。

幾乎所有數據處理都在記憶體中進行,程式的核心工作即是操作記憶體中的數據。本文將以 Java 為例,深入探討這個核心——「數據」。

數據的抽象:類型與變量

計算機內部數據皆為二進制,直接操作極不便利。高級語言引入「數據類型」與「變量」概念,以便理解與操作。

數據類型:給數據分類

數據類型用於歸類數據,方便理解與操作。Java 基本數據類型包括:

  • 整數類型:byte、short、int、long,各有不同取值範圍。
  • 小數類型:float、double,精度與範圍不同。
  • 字符類型:char,表示單一字符。
  • 布林類型:boolean,表示真/假。

基本類型均有對應的陣列類型,陣列表示固定長度的同類型數據集合,在記憶體中連續存放。例如:單一自然數用 int,100 個連續自然數用 int[100];單一字符用 char,一段文字用 char[]。

Java 為面向對象語言,除基本類型外皆為對象類型。對象本質上是由基本類型、陣列及其他對象組合而成的整體,便於統一操作。以「學生對象」為例:

  • 姓名:字符陣列
  • 年齡:整數
  • 性別:字符
  • 入學分數:小數

日期在 Java 中也是對象,內部以 long 整數表示。猶如化學元素構成萬物,基本數據類型對應基本元素,對象對應複雜物質。

變量:給記憶體位置起名

為操作數據,需將其存入記憶體。程式眼中的記憶體是一塊有地址編碼的連續空間。為方便定位與操作,編程語言引入「變量」概念:聲明 int a 即在記憶體分配一個存放 int 的空間,a 指向該地址,操作 a 即操作該記憶體單元(如 a=5 將值改為 5)。

之所以稱「變」量,因其代表的記憶體位置存放的值可變。但變量名不變,應代表程式設計師心中該記憶體位置的固定語義。例如 int second 表示時鐘秒數,值隨時間變化,但語義恆為「秒數」。雖然語法不強制,但良好的命名習慣至關重要——切勿用 a、b、c、hehe 等無意義名稱。

合同範例:四個變量分別代表甲方、乙方、合同內容、簽署日期,語義固定,值隨合同不同而異。聲明變量時賦予類型與有意義名稱,即告訴計算機我們要操作的數據。

有了數據,如何對其操作?敬請期待後續內容。


未完待續,更多深入淺出的 Java 編程與計算機技術本質探討,請關注微信公眾號「老馬說編程」。原創文章,版權所有。

老馬說編程二維碼

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved