Java編程開發(fā)簡介
Java由規(guī)范確定,包含編程語言、編譯器、核心庫和JVM (運行時Java virtual machine)。下面是小編整理的關于Java編程開發(fā)簡介,希望大家認真閱讀!
Java簡介
歷史
Java 編程語言由Sun微電子公司的James Gosling于1991年創(chuàng)建。1995年發(fā)布第一個版本(Java 1.0)。2010年 Sun 微電子公司被 Oracle 公司收購,現(xiàn)在 Java 語言由 Oracle公司控制和管理。2006年Sun宣布Java遵循GNU General Public License (GPL), Oracle繼續(xù)該項目,即OpenJDK。隨著時間的推移,新的增強版本的 Java 已經(jīng)發(fā)布,最新的版本是 Java 1.8 即 Java 8。
Java由規(guī)范確定,包含編程語言、編譯器、核心庫和JVM (運行時Java virtual machine)。Java運行時允許軟件開發(fā)者用其他語言編碼,仍然運行在Java虛擬機上。 Java平臺通常與Java虛擬機和Java核心庫相關聯(lián)。
Java 虛擬機
Java 虛擬機(JVM)可以理解為是由軟件實現(xiàn)的虛擬計算機,可以像物理計算機一樣執(zhí)行程序代碼。Java 虛擬機在不同操作系統(tǒng)下有特定的版本,比如:針對 Linux 操作系統(tǒng)的版本與針對 Windows 操作系統(tǒng)的版本是不一樣的。
Java程序由 Java 編譯器編譯成字節(jié)碼(bytecode),編譯后的字節(jié)碼由 Java 虛擬機解釋執(zhí)行。
JRE 和 JDK
Java 的發(fā)布版本有兩種,Java Runtime Environment(JRE)以及 Java Development Kit(JDK)。
Java Runtime Environment(JRE)包含運行 Java 程序需要的必要組件:Java 虛擬機以及 Java 類庫。
Java Development Kit(JDK)包含用來創(chuàng)建 Java 應用程序的必要工具,比如,Java 編譯器、Java 虛擬機以及 Java 類庫。
Java 語言的特點
Java 語言的設計目標是:一次編寫到處運行。
Java 語言有以下特點:
平 臺無關性:Java 使用 Java 虛擬機運行 Java 程序,Java 虛擬機相當于應用程序和操作系統(tǒng)間的抽象層,應用程序不會直接訪問操作系統(tǒng)。這使得 Java 應用程序具備高度的可移植性。一個兼容標準和遵循規(guī)則的 Java 應用程序可以無需修改的在所有已支持的平臺上工作,例如: Windows 和 Linux。
面向?qū)ο蟮木幊陶Z言:除了原生數(shù)據(jù)類型,Java 語言中一切皆對象。
強類型編程語言:Java 語言是強類型編程語言。比如:變量類型需要預先定義,嚴格的類型轉(zhuǎn)換檢查(大多數(shù)情況下有程序猿完成)。
解 釋性和編譯型語言: Java 源代碼被編譯成字節(jié)碼(bytecode)這樣使得 Java 語言具備平臺性。這些字節(jié)碼(bytecode)指令由 Java虛擬機(JVM)解釋執(zhí)行。JVM 使用 Hotspot 編譯技術(shù)會將性能相關的字節(jié)碼指令轉(zhuǎn)換為對用操作系統(tǒng)的二進制代碼執(zhí)行。
自動內(nèi)存管理: Java 。管理新創(chuàng)建對象的內(nèi)存分配和回收工作應用程序代碼不直接訪問內(nèi)存。由稱之為垃圾回收(garbage collector)的機制自動刪除沒有無引用的對象。
Java 語言的.語法與 C++ 語言的語法非常接近,Java 語言是大小寫敏感的,比如: myValue 變量與 myvalue 變量是兩個不同的變量。
Java語言的開發(fā)過程
Java 源代碼文件是一個純文本文檔,Java 程序員通常在 Integrated Development Evvironment(IDE)中編寫 Java 程序。IDE是幫助程序員完成編碼工作的工具,它具備自動格式化代碼、語法高亮等功能。
Java 程序員(或 IDE)調(diào)用 Java 編譯工具(javac)編譯源代碼,Java 編譯工具會將源代碼編譯成字節(jié)碼(bytecode)指令。這些指令保存在 .class 文件中由 Java 虛擬機(JVM)來運行。
垃圾回收(Garbage collector)
JVM 自動回收沒有被引用的內(nèi)存空間,它會檢查所有對象的引用并查找那些對象可以被自動回收。垃圾回收機制使程序員無需手工管理內(nèi)存,但是程序員還是需要保證程 序中沒有不需要的對象引用,否則垃圾回收機制就無法自動釋放對象內(nèi)存。我們通常把不需要的對象引用通常被稱為“內(nèi)存泄漏”。
Classpath
Java 編譯器以及 Java 運行時通過類路徑(classpath)來查找和裝載 .class文件。比如,如果你打算在應用程序中使用第三方 Java 類庫那么你需要把類庫的路徑添加到你的類路徑中,否則你的應用程序無法編譯或者運行。
安裝 Java
檢查安裝
你的計算機可能已經(jīng)安裝了 Java,你可以在控制臺中使用下面命令來測試 Java 是否已安裝(如果你使用 Windows 操作系統(tǒng),可以按下 Win+R,輸入 cmd 后回車即可打開控制臺):
java -version
如果你的計算機已經(jīng)安裝了 Java,你應該會看到輸出已安裝的 Java 版本信息。如果命令行返回應用程序沒有找到,那么你就需要安裝 Java 了。
安裝 Java
在 Ubuntu 操作系統(tǒng)中,你可以使用下面的命令安裝 Java:
sudo apt-get install openjdk-7-jdk
對于 Microsoft Windows 操作系統(tǒng),可以到 Oracle 網(wǎng)站 下載對應的安裝包,網(wǎng)站也有相應的文檔來指導你如何在其他操作系統(tǒng)上安裝 Java。
如 果在安裝過程中出現(xiàn)了問題,可以使用“how to install JDK on your_os"關鍵詞在谷歌搜索(對于國內(nèi)用戶則使用”如何在your_os安裝JDK“關鍵詞在百度搜索)記住把 "your_os" 替換為你的操作系統(tǒng)名稱哦,比如:Windows、Ubuntu、Mac OS X 等等。
2.3 驗證安裝
回到剛才的命令行(不知道那個?參考2.3節(jié))執(zhí)行下面的命令:
java -version
你會得到下面的輸出內(nèi)容:
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
2.4 如何查看當前使用的是32位或64位版本的 Java
在64位操作系統(tǒng)上你可以使用32位或64位版本的Java,如果 java -version 命令的輸出中包含 64-bit 這樣的字符串說明你正在使用的 Java 版本是64位的,否則你正在使用的 Java 版本是32位的。下面的是64位版本的輸出:
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
編寫源代碼
下面的 Java 代碼是在 Linux 操作系統(tǒng)命令行上使用文本編輯器(vim、emacs等)編寫的。其他操作系統(tǒng)上也類似,這里就不再做介紹了。
首先需要新建一個目錄來保存源代碼,這里我們使用目錄 homevogellajavastarter 。如果你使用 Windows 目錄可能是 c: empjavastarter ,后面我們會使用 "javadir" 來代表這個路徑。
打開一個文本編輯器,不如:Linux操作系統(tǒng)下的 gedit、vim、emacs等,Windows下的 Notepad等,然后輸入以下代碼:
HelloWorld.java:
// a small Java program
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
注意:不要使用富文本編輯器,如:Microsoft Word 或者 LibreOffice 來編寫源代碼。
將源代碼保存到 “javadir” 目錄下的 HelloWorld.java 文件中。Java 源文件名稱始終要與源代碼中得類名一致,并且以 .java 作為后綴。這個例子中源文件名為 HelloWorld.java 因為我們定義的類名是 HelloWorld 。
編譯、運行
打開一個Shell(Linux以及Unix-like)或者命令行(Windows),使用 cd javadir 進入 "javadir" 目錄,在我們的例子中命令是 cd homevogellajavastarter 。使用 ls (Window中是 dir )來驗證源文件是否存在。
使用下面命令編譯源文件:
javac HelloWorld.java
命令完成后,重新使用 ls (或者 dir )命令查看目錄內(nèi)容,可以看到目錄中多出一個 HelloWorld.class 文件,說明你已經(jīng)成功的將源代碼編譯成字節(jié)碼了。
提示:默認情況下 編譯器 會將每個類文件放在和源文件下共同的目錄中。你可以在編譯時使用 -d 參數(shù)來指定不同的目錄。
現(xiàn)在可以運行你的第一個 Java 應用程序了。確保你還在 "javadir" 目錄,然后執(zhí)行下面命令來運行程序:
java HelloWorld
程序會在終端輸出 "Hello World" 字符串,參考下圖
使用類路徑(classpath)
你可以通過指定類路徑從其他位置運行應用程序。還是打開Shell或者控制臺,然后隨便進入一個目錄,輸入以下命令:
java HelloWorld
如果你當前不在編譯后類文件所在的目錄,那么 Java 虛擬機 會提示錯誤:"Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld"。
要正確運行程序,輸入下面的命令(將mydirectory替換為你的” java dir"):
java -classpath "mydirectory" HelloWorld
這樣你又可以看到 "HelloWorld" 字符串輸出了。
Java 語言結(jié)構(gòu)
基礎:包(Package)、類(Class)和對象(Object)
了解 Java 的包(Package)、類(Class)和對象(Object)這些基礎術(shù)語是非常重要的,這部分內(nèi)容將概要的介紹這些術(shù)語。
包(Package)
Java 使用包來組織類,通常按照業(yè)務邏輯將類分組到不同的包中。比如:應用程序的所有圖形界面可能被分組到 com.vogella.webapplication.views 包中。
通常的做法是使用公司域名的倒序作為頂層包,比如:公司的域名是 "4byte.cn" 那么這個公司 Java 應用的頂層包名可能是 cn.4byte 。
包的另一個重要用途是避免類命名沖突,類命名沖突是指兩個開發(fā)人員為他們編寫的類使用了同樣的全限定名。Java 中類的全限定名是 報名+‘.'+類名,比如: cn.4byte.HelloWorld 。
如果沒有包,當兩個程序猿同時給他編寫的類起名為 Test 時就會產(chǎn)生命名沖突(而且操作系統(tǒng)也無法創(chuàng)建文件)。結(jié)合 Java 包機制,我們可以明確的告訴 虛擬機 我們將使用哪個 Test 類,比如:第一個程序員將 Test 類放到 report 包中,另一個 程序員 將他寫得 Test 類放到 xmlreader 包中,那么他們就可以通過全限定名來明確區(qū)分兩個類 以及 。
類(class)
定義:類是一個模板,用來定義對象的數(shù)據(jù)以及行為,可以理解類為對象的藍圖。
在 Java 中使用 class 關鍵字來定義類,類名的第一個字母必須大寫。類體需要在'{..}'中定義。如:
MyClass.java:
package test;
class MyClass {
}
類的數(shù)據(jù)保存在屬性中,類行為由方法實現(xiàn)。Java 源文件需要以 "類名“ + ". java " 的形式保存。
【Java編程開發(fā)簡介】相關文章:
Java基本編程技巧11-16
關于JAVA的XML編程10-08
JAVA認證簡介10-03
Java語言簡介06-12
linux shell編程的簡介10-15
Java編程常見問題匯總08-22
Java中的動態(tài)代碼編程06-05
java網(wǎng)絡編程基本知識05-12