前言:
為什么開(kāi)始學(xué)JAVA了?當(dāng)然是向全棧工程師努力啊,也是時(shí)候給自己準(zhǔn)備一條后路了????初次接觸JAVA,寫(xiě)的肯定有很多不對(duì)的地方,希望海涵并提出錯(cuò)誤的地方,大家一起學(xué)習(xí)進(jìn)步!簡(jiǎn)而言之,只適合一起學(xué)習(xí)JAVA的童鞋看!
PS:因?yàn)楸救耸莍OS工程師,同時(shí)也學(xué)過(guò)一段時(shí)間C語(yǔ)言,大概會(huì)以這兩個(gè)語(yǔ)言為基礎(chǔ)對(duì)比JAVA
一、初識(shí)JAVA
對(duì)iOSer目前最擔(dān)憂的問(wèn)題可能就是iOS的封閉和OC語(yǔ)言的局限性,使得我們這一行的就業(yè)范圍很窄,再看看iOS系統(tǒng)最大的競(jìng)爭(zhēng)者Android,由于Android的開(kāi)源性,可以使得Android運(yùn)用在很多硬件之上,羨慕ing(原諒我當(dāng)初看上了iOS的高大上),而開(kāi)發(fā)Android最便捷的語(yǔ)言是什么?--是JAVA。
JAVA能干什么?
- 大型網(wǎng)站,諸如淘寶、京東等
- 后臺(tái)系統(tǒng),各種后臺(tái)管理系統(tǒng)、信息化系統(tǒng)、應(yīng)用系統(tǒng)等
- 嵌入式設(shè)備及消費(fèi)類電子產(chǎn)品,Android相對(duì)于iOS最大優(yōu)勢(shì)就在這里了
- 游戲,個(gè)人最喜愛(ài)的游戲之一StarSector就是用JAVA開(kāi)發(fā)的,一款制作精良的2D宇宙戰(zhàn)爭(zhēng)游戲
JAVA主要分成三個(gè)部分JAVA SE、JAVA EE和JAVA ME。具體的區(qū)別和聯(lián)系還是看知乎的問(wèn)答吧---JAVA EE ,JAVA SE, JAVA ME 怎么區(qū)分?
如果你不想看直接看下文(侵刪):
- JAVA SE:JDK JVM 以及自帶的API合集的具體實(shí)現(xiàn)。(Android開(kāi)發(fā)基于JAVA SE + 自身的SDK)
- JAVA EE:基于JAVA SE而發(fā)展出來(lái)的一套規(guī)范接口。請(qǐng)注意是規(guī)范,并不是實(shí)現(xiàn)。發(fā)行商自己去實(shí)現(xiàn)這些接口。
- JAVA ME:是一套運(yùn)行專門(mén)為嵌入式設(shè)備設(shè)計(jì)的API接口規(guī)范。自從有了Android,這個(gè)幾乎沒(méi)人用了。
JVM與JDK
在對(duì)JAVA SE的解釋中提到了JDK與JVM,那么JDK、JVM是什么呢?
- JVM--JAVA Virtual Machine:JAVA虛擬機(jī),是JAVA實(shí)現(xiàn)跨平臺(tái)的最核心的部分,不同的CPU架構(gòu)和不同的系統(tǒng)對(duì)應(yīng)不同的JVM,JVM能解釋.class文件。
- JDK--JAVA Development Kit:JAVA開(kāi)發(fā)工具包,包含編譯器、常用類庫(kù)、JRE等
- JRE--JAVA Runtime Enviroment:JDK所包含的部分,JAVA運(yùn)行環(huán)境,光有JVM還不能成class的執(zhí)行,因?yàn)樵诮忉宑lass的時(shí)候JVM需要調(diào)用解釋所需要的類庫(kù)lib,JRE里包含JVM需要的類庫(kù)
通過(guò)對(duì)JDK、JVM、JRE的了解我們知道,JDK包含JRE,而JRE包含JVM,所以我們開(kāi)發(fā)的時(shí)候只需要安裝一個(gè)JDK就可以了。
二、JAVA環(huán)境搭建
由于作者用Mac辦公,所以這里只介紹Mac的Java環(huán)境搭建,其實(shí)很簡(jiǎn)單,打開(kāi)官網(wǎng)Oracle

點(diǎn)擊 上方的Accept License Agreement后,選擇對(duì)應(yīng)系統(tǒng)的JDK下載安裝就行了,安裝完成后終端里打開(kāi)
open /Library/Java/JavaVirtualMachines/
看是不是你剛才安裝的JDK,比如我的

如果這個(gè)時(shí)候你打開(kāi)
jdk1.8.0_172.jdk/Contents/Home/會(huì)發(fā)現(xiàn)下面有個(gè)jre文件夾。
三、開(kāi)始編程
上文我們說(shuō)過(guò)JDK中包含編譯器,如果在終端里輸入
open /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin

會(huì)發(fā)現(xiàn)有兩個(gè)可執(zhí)行文件,javac負(fù)責(zé)編譯文件,java負(fù)責(zé)運(yùn)行文件。
我們?cè)谧烂嫘陆ㄒ粋€(gè).java文件,在終端里輸入
cd ~/Desktop/JavaDemo/Day01
touch HelloWorld.java
vim HelloWorld.java
在HelloWorld.java中輸入以下代碼
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
在終端里輸入
javac HelloWorld.java
這時(shí)候打開(kāi)剛才新建的文件夾會(huì)發(fā)現(xiàn)多出了一個(gè).class文件,javac命令編譯了.java文件,然后在終端
java HelloWorld
用java命令執(zhí)行.class文件,終端里會(huì)看到輸出,如圖:
總結(jié):
今天對(duì)Java有了一個(gè)淺顯的認(rèn)識(shí),希望對(duì)一起正在學(xué)習(xí)Java的小伙伴有點(diǎn)幫助