第2章 Java基本程式設計結構

来源:https://www.cnblogs.com/gengduc/archive/2022/03/29/16073488.html
-Advertisement-
Play Games

一個簡單的Java程式 // HelloJava.java public class HelloJava { public static void main(String[] args) { System.out.println("Hello Java!"); } } Java是區分大小寫的 關鍵字 ...


一個簡單的Java程式

//  HelloJava.java
public class HelloJava {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}
  • Java是區分大小寫的
  • 關鍵字public稱為訪問修飾符,這些修飾符用於控製程序的其他部分對這段代碼的訪問級別
  • Java類名的標準命名規範:駱駝命名法。類名以大寫字母開頭。如果名字由多個單片語成,每個單詞的第一個字母都應該大寫。
  • 源代碼的文件名必須與公共類的名字相同,並用.java作為擴展名。因此存儲上面這段代碼的文件名必須是HelloJava.java

使用命令行工具編譯運行Java程式

  • java -version:查看Java SE的版本信息
  • javac HelloJava.java編譯.java源文件,生成尾碼為.class的位元組碼文件
  • java HelloJava使用Java解釋器將位元組碼文件翻譯成機器代碼

Java程式的執行過程

Java程式的運行必須經過編寫、編譯和運行3個步驟

  1. 編輯:是指在Java開發環境中進行程式代碼的輸入,最終形成尾碼名為.java的Java源文件。
  2. 編譯:是指使用Java編譯器對源文件進行錯誤排査的過程,編譯後將生成尾碼名為.class的位元組碼文件,不像C語言那樣生成可執行文件。
  3. 運行:是指使用Java解釋器將位元組碼文件翻譯成機器代碼,執行並顯示結果。

什麼是位元組碼文件?

位元組碼文件是一種和任何具體機器環境及操作系統環境無關的中間代碼。它是一種二進位文件,是Java源文件由Java編譯器編譯後生成的目標代碼文件。編程人員和電腦都無法直接讀懂位元組碼文件,它必須由專用的Java解釋器來解釋執行,因此Java是一種在編譯基礎上進行解釋運行的語言。

Java解釋器負責將位元組碼文件翻譯成具體硬體環境和操作系統平臺下的機器代碼,以便執行。因此Java程式不能直接運行在現有的操作系統平臺上,它必須運行在被稱為Java虛擬機的軟體平臺之上。

Java虛擬機(JVM)是運行Java程式的軟體環境,Java解釋器是Java虛擬機的一部分。在運行Java程式時,首先會啟動JVM,然後由它來負責解釋執行Java的位元組碼程式,並且Java位元組碼程式只能運行於JVM之上。這樣利用JVM就可以把Java位元組碼程式和具體的硬體平臺以及操作系統環境分隔開來,只要在不同的電腦上安裝了針對特定平臺的JVM,Java程式就可以運行,而不用考慮當前具體的硬體平臺及操作系統環境,也不用考慮位元組碼文件是在何種平臺上生成的。

JVM把這種不同軟、硬體平臺的具體差別隱藏起來,從而實現了真正的二進位代碼級的跨平臺移植。JVM是Java平臺架構的基礎,Java的跨平臺特性正是通過在JVM中運行Java程式實現的。Java的這種運行機制可通過下圖說明:

Java語言這種“一次編寫,多端運行”的方式,有效地解決了目前大多數高級程式設計語言需要針對不同系統來編譯產生不同機器代碼的問題,即硬體環境和操作平臺的異構問題,大大降低了程式開發、維護和管理的開銷。

Java程式通過JVM可以實現跨平臺特性,但JVM是不跨平臺的。也就是說,不同操作系統之上的JVM是不同的,Windows平臺之上的JVM不能用在 Linux平臺,反之亦然。


註釋(Comments)

// 行註釋
/*
塊註釋
*/

JDK包含一個很有用的工具,叫做javadoc,它可以由源文件生成一個HTML文檔

/**

 */
/**
 *
 *
 */

上面兩種格式都是合法的,第二種是大部分IDE會提供的格式。

在文檔註釋的第一句應該是概要性的句子。javadoc工具自動將這些句子抽取出來生成概要頁

類註釋必須放在import語句之後,類定義之前。每個方法註釋必須放在所描述的方法之前。

常用的javadoc標記

  • @author:指定Java程式的作者。
  • @version:指定源文件的版本。
  • @deprecated:不推薦使用的方法。
  • @param:方法的參數說明信息。
  • @return:方法的返回值說明信息。
  • @see:“參見”,用於指定交叉參考的內容。
  • @exception:拋出異常的類型。
  • @throws:拋出的異常,和@exception同義。

需要指出的是,這些標記的使用是有位置限制的。上面這些標記可以出現在類或者介面文檔註釋中的有@see、@deprecated、@author、@version等;可以出現在方法或構造器文檔註釋中的有@see、@deprecated、@param、@return、@throws和@exception等;可以出現在成員變數的文檔註釋中的有@see和@deprecated等。


關鍵字(Keywords)

Java語言中有一些具有特殊用途的單詞被稱為關鍵字(keywords),當定義標識符時,不要讓標識符和關鍵字相同,否則將引起錯誤。

abstract continue for new switch
assert default if packa synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

其中goto和const這兩個關鍵字也被稱為保留字,意思是,Java現在還未使用這兩個關鍵字,但可能在未來的Java版本中使用這兩個關鍵字。

以下字元序列不能用作關鍵字:

  • true、false不能用作關鍵字,它們是boolean型字面量
  • null不能用作關鍵字,它是null字面量
  • var也不是關鍵字,而是作為標識符和lambda形式參數

數據類型

Java是一種強類型語言。這意味著必須為每一種變數聲明一種類型。Java中支持的數據類型分為兩類:基本類型(Primitive Type)引用類型(Reference Type)

基本類型包括boolean類型和數值類型。數值類型有整數類型和浮點類型。整數類型包括byte、short、int、long、char,浮點類型包括float和double

引用類型包括介面數組類型,還有一種特殊的null類型。所謂引用數據類型就是對一個對象的引用,對象包括實例和數組兩種。

空類型(null type)就是null值的類型,這種類型沒有名稱。因為null類型沒有名稱,所以不可能聲明一個null類型的變數或者轉換到null類型。空引用(null)是null類型變數唯一的值。空引用(null)可以轉換為任何引用類型。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 訪問者模式屬於行為型模式;指將作用於某種數據結構中各元素的操作分離出來封裝成獨立的類,使其在不改變數據結構的前提下可以添加作用於這些元素的新的操作,為數據結構中的每個元素提供多種訪問方式。它將對數據的操作與數據結構進行分離,是行為類模式中最複雜的一種模式。 訪問者模式的目的是封裝一些施加於某種數據結 ...
  • Profile是個好東西。通過Profile,我們可以非常方便地條件化Bean的創建,動態調整應用程式的功能。可是,Profile只能做些簡單的條件化,對於複雜一點的條件化Profile是無法勝任的。比如現有這樣的數據源創建需求: 1.如果類路徑存在DBCP的JAR包,則創建DBCP提供的Basic ...
  • 實戰項目地址newbeemall,集成RediSearch,代碼開源已上傳,支持的話可以點個star😁 RediSearch 是基於 Redis 開發的支持二級索引、查詢引擎和全文搜索的應用程式。在2.0的版本中,簡單看下官網測試報告: 索引構建 在索引構建測試中,RediSearch 用221秒 ...
  • 思路: * A:創建一個HashMap集合 * B:創建一個ArrayList集合 * C:創建花色數組和點數數組 * D:從0開始往HashMap裡面存儲編號,並存儲對應的牌 * 同時往ArrayList裡面存儲編號即可。 * E:洗牌(洗的是編號) * F:發牌(發的也是編號,為了保證編號是排序 ...
  • 《獵罪圖鑒》可以說是國產懸疑劇之光了,上線首周熱度不斷飆升。該劇講述了因一起塵封舊案而結怨的模擬畫像師沈翊和刑警隊長杜城,在機緣巧合下被迫搭檔,兩人聯手偵破多起離奇疑案,共同追蹤謎底真相的故事。今天就用Python爬取該劇彈幕,做詞雲圖 環境介紹 python 3.8pycharmrequests ...
  • 圖論 圖論是數學的一個分支。它以圖為研究對象。圖論中的圖是由若幹給定的點及連接兩點的線所構成的圖形,這種圖形通常用來描述某些事物之間的某種特定關係,用點代表事物,用連接兩點的線表示相應兩個事物間具有這種關係。 樹 樹是一種數據結構,它是由n(n≥1)個有限節點組成一個具有層次關係的集合。把它叫做“樹 ...
  • 任務要求 把棋盤當作一個稀疏矩陣,0表示沒棋,1表示黑棋,2表示藍棋。 把該稀疏矩陣壓縮以三元組形式表示並以文件形式保存,再寫另一個程式讀取文件中的信息把壓縮後的三元組還原成原來的稀疏矩陣。 其中三元組的第一行用來存儲原始稀疏矩陣的行數、列數和有效的數據個數,其餘行用來存儲有效的非0數據 思路分析 ...
  • 前言 開發環境 python 3.8pycharm 2021.2 專業版 代碼實現 發送請求 獲取數據 解析數據(篩選數據) 保存數據 連接資料庫 對於本篇文章有疑問的同學可以加【資料白嫖、解答交流群:910981974】 開始代碼 請求數據 # 偽裝 headers = { 'cookie': ' ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...