7 個給新手 Java 開發者的提示
如果你才剛開始學習 Java 程式設計,這裡有七個你需要知道的基礎知識。 |
Java 是一個多功能的程式語言,在某種程度上,它用在幾乎所有可能涉及計算機的行業了裡。Java 的最大優勢是,它執行在一個 Java 虛擬機器(JVM)中,這是一個翻譯 Java 程式碼為與作業系統相容的位元組碼的層。只要有 JVM 存在於你的作業系統上 —— 不管這個作業系統是在一個伺服器(或“無伺服器”,也是同樣的)、桌面電腦、膝上型電腦、移動裝置,或嵌入式裝置 —— 那麼,Java 應用程式就可以執行在它上面。
這使得 Java 成為程式設計師和使用者的一種流行語言。程式設計師知道,他們只需要寫一個軟體版本就能最終得到一個可以執行在任何平臺上的應用程式;使用者知道,應用程式可以執行在他們的計算機上,而不用管他們使用的是什麼樣的作業系統。
很多語言和框架是跨平臺的,但是沒有實現同樣的抽象層。使用 Java,你針對的是 JVM,而不是作業系統。對於程式設計師,當面對一些程式設計難題時,這是阻力最小的線路,但是它僅在當你知道如何程式設計 Java 時有用。如果你剛開始學習 Java 程式設計,這裡有你需要知道的七個基礎的提示。
但是,首先,如果你不確定是否你安裝了 Java ,你可以在一個終端(例如 Bash 或 Power )中找出來,透過執行:
$ java --version openjdk 12.0.2 2019-07-16 OpenJDK Runtime Environment 19.3 (build 12.0.2+9) OpenJDK 64-Bit Server VM 19.3 (build 12.0.2+9, mixed mode, sharing)
如果你得到一個錯誤,或未返回任何東西,那麼你應該安裝 Java 開發套件(JDK)來開始 Java 開發。或者,安裝一個 Java 執行時環境(JRE),如果你只是需要來執行 Java 應用程式。
在 Java 語言中,相關的類被分組到一個軟體包中。當你下載 JDK 時所獲得的 Java 基礎庫將被分組到以 java 或 javax 開頭的軟體包中。軟體包提供一種類似於計算機上的資料夾的功能:它們為相關的元素提供結構和定義(以程式設計術語說,名稱空間)。額外的軟體包可以從獨立開發者、開源專案和商業供應商獲得,就像可以為任何程式語言獲得庫一樣。
當你寫一個 Java 程式時,你應該在你的程式碼是頂部宣告一個軟體包名稱。如果你只是編寫一個簡單的應用程式來入門 Java,你的軟體包名稱可以簡單地用你的專案名稱。如果你正在使用一個 Java 整合開發環境,如 Eclipse,當你啟動一個新的專案時,它為你生成一個合乎情理的軟體包名稱。
package helloworld; /** * @author seth * An application written in Java. */
除此之外,你可以透過查詢它相對於你的專案整體的路徑來確定你的軟體包名稱。例如,如果你正在寫一組類來幫助遊戲開發,並且該集合被稱為 jgamer,那麼你可能在其中有一些唯一的類。
package jgamer.avatar; /** * @author seth * An imaginary game library. */
你的軟體包的頂層是 jgamer,並且在其內部中每個軟體包都是一個獨立的派生物,例如 jgamer.avatar 和 jgamer.score 等等。在你的檔案系統裡,其目錄結構反映了這一點,jgamer 是包含檔案 avatar.java 和 score.java 的頂級目錄。
作為一名通曉多種語言的程式設計師,最大的樂趣是找出是否用 include、import、use、require,或一些其它術語來引入你不管使用何種程式語言編寫的庫。在 Java 中,順便說一句,當匯入你的程式碼的需要的庫時,使用 import 關鍵字。
package helloworld; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * @author seth * A GUI hello world. */
匯入是基於該環境的 Java 路徑。如果 Java 不知道 Java 庫儲存在系統上的何處,那麼,就不能成功匯入。只要一個庫被儲存在系統的 Java 路徑中,那麼匯入能夠成功,並且庫能夠被用於構建和執行一個 Java 應用程式。
如果一個庫並不在 Java 路徑中(因為,例如,你正在寫你自己的庫),那麼該庫可以與你的應用程式繫結在一起(協議許可),以便匯入可以按預期地工作。
Java 類使用關鍵字 public class 宣告,以及一個唯一的對應於它的檔名的類名。例如,在專案 helloworld 中的一個檔案 Hello.java 中:
package helloworld; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * @author seth * A GUI hello world. */ public class Hello { // this is an empty class }
你可以在一個類內部宣告變數和函式。在 Java 中,在一個類中的變數被稱為欄位。
Java 的方法本質上是物件中的函式。基於預期返回的資料型別(例如 void、int、float 等等),它們被定義為 public(意味著它們可以被任何其它類訪問)或 private(限制它們的使用)。
public void helloPrompt(ActionEvent event) { String salutation = "Hello %s"; string helloMessage = "World"; message = String.format(salutation, helloMessage); JOptionPane.showMessageDialog(this, message); } private int someNumber (x) { return x*2; }
當直接呼叫一個方法時,以其類和方法名稱來引用。例如,Hello.someNumber 指向在 Hello 類中的 someNumber 方法。
Java 中的 static 關鍵字使程式碼中的成員可以獨立於包含其的物件而被訪問。
在物件導向程式設計中,你編寫的程式碼用作“物件”的模板,這些物件在應用程式執行時產生。例如,你不需要編寫一個具體的視窗,而是編寫基於 Java 中的視窗類的視窗例項(並由你的程式碼修改)。由於在應用程式生成它的例項之前,你編寫的所有程式碼都不會“存在”,因此在建立它們所依賴的物件之前,大多數方法和變數(甚至是巢狀類)都無法使用。
然而,有時,在物件被透過應用程式建立前,你需要訪問或使用其中的資料。(例如,除非事先知道球是紅色時,應用程式無法生成一個紅色的球)。對於這些情況,請使用 static 關鍵字。
Java 擅長捕捉錯誤,但是,只有你告訴它遇到錯誤時該做什麼,它才能優雅地恢復。在 Java 中,嘗試執行一個動作的級聯層次結構以 try 開頭,出現錯誤時回落到 catch,並以 finally 結束。如果 try 子句失敗,則將呼叫 catch,最後,不管結果如何,總是由 finally 來執行一些合理的動作。這裡是一個示例:
try { cmd = parser.parse(opt, args); if(cmd.hasOption("help")) { HelpFormatter helper = new HelpFormatter(); helper.printHelp("Hello", opt); System.exit(0); } else { if(cmd.hasOption("shell") || cmd.hasOption("s")) { String target = cmd.getOptionValue("tgt"); } // else } // fi } catch (ParseException err) { System.out.println(err); System.exit(1); } //catch finally { new Hello().helloWorld(opt); } //finally } //try
這是一個健壯的系統,它試圖避免無法挽回的錯誤,或者,至少,為你提供讓使用者提交有用的反饋的選項。經常使用它,你的使用者將會感謝你!
Java 檔案,通常以 .java 結尾,理論上說,可以使用 java 執行。然而,如果一個應用程式很複雜,執行一個單個檔案是否會產生有意義的結果是另外一個問題。
來直接執行一個 .java 檔案:
$ java ./Hello.java
通常,Java 應用程式以 Java 存檔(JAR)檔案的形式分發,以 .jar 結尾。一個 JAR 檔案包含一個清單檔案(可以指定主類、專案結構的一些後設資料),以及執行應用程式所需的所有程式碼部分。
要執行一個 JAR 檔案,你可以雙擊它的圖示(取決於你的作業系統設定),你也可以從終端中啟動它:
$ java -jar ./Hello.jar
Java 是一種強大的語言,由於有了 OpenJDK 專案及其它的努力,它是一種開放式規範,允許像 IcedTea、Dalvik 和 Kotlin 專案的茁壯成長。學習 Java 是一種準備在各種行業中工作的好方法,而且,使用 Java 的理由很多。
via:
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2667423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 給新手 Java 開發者的 7 點提示Java
- 送給 ES6 開發者的7個 hack
- 給Java開發初學者的10個學習建議,助你學習事半功倍!Java
- 給Java開發初學者的10個學習建議,助你學習事半功倍Java
- 推薦給新手的35個好用的Vue開源庫Vue
- [譯] 新手開發者須知
- 奈學開發者社群分享:Java - 設計模式的7個設計原則Java設計模式
- 給PHP開發者的建議PHP
- 一個五年的後端開發老鳥給新手的 12 條忠告【原創】後端
- 給新手的 20 多個 FFmpeg 命令示例
- 一個牛人給Java初學者的建議Java
- 開發者談切入遊戲開發市場的7個選擇視角遊戲開發
- Java 開發者最容易犯的10個錯誤Java
- [譯] 寫給前端開發者的 GraphQL 指南前端
- 每個 Java 開發者都應該知道的 5 個註解Java
- WWDC 2018:寫給 OpenGL 開發者們的 Metal 開發指南
- OpenMLDB 新手寶典 開發者上手必讀
- 7個前端新手常見誤區,千萬要避開前端
- 新手注意:java開發的有哪些重要的知識點?Java
- 10個超厲害GitHub Repos獻給所有的開發者Github
- 給Android開發者的Flutter指南 (下) [翻譯]AndroidFlutter
- 給Android開發者的Flutter指南 (上) [翻譯]AndroidFlutter
- 寫給.NET開發者的Python教程(一):引言Python
- 開發者的福利 - NutUI-vscode 智慧提示來了UIVSCode
- 幾個適合Java開發者的免費IDEA外掛JavaIdea
- Spring 框架:Java 開發者的春天Spring框架Java
- BeanMappingKey,Java開發者們的福星!!!BeanAPPJava
- 開發者以經典案例談7個典型的BOSS戰役形式
- 給Android開發者Flutter上手指南AndroidFlutter
- 給數學新手的忠告
- [新手開發記錄] 新建一個網站網站
- [譯] 寫給 React 開發者的自定義元素指南React
- 寫給go開發者的gRPC教程-通訊模式GoRPC模式
- Java開發專屬成長路線,新手入門看這個就夠了!Java
- 開發一個屬性名提示友好的Vue元件Vue元件
- 寫給 Android 開發者的 Gradle 系列(一)基本姿勢AndroidGradle
- 寫給 Android 開發者的 Gradle 系列(三)撰寫 pluginAndroidGradlePlugin
- 寫給 Android 開發者的 Gradle 系列(二)撰寫 taskAndroidGradle