我剛開始學習Java的時候,很長一段時間都有這麼個疑惑?java
Java究竟是啥?它能幹什麼?程序員
本身也看過很多的課程和書,大部分都是從Java的發展史開始講,總之就是那些什麼Java歷史悠久,Java很優秀,Java愈來愈牛,用的人愈來愈多,什麼編程語言排行榜常年第一,大體都是這些,而後再扯些其餘的,接着就上起了Hello World!就這樣,你Java生涯的第一個代碼開始了,意思是「你好,世界!」編程
我仍是想不通,Java是啥,能幹嗎,能不能先告訴我?安全
可能你在剛開始學習Java的時候也有這樣的疑惑,那麼你會怎麼作呢?你不知道啊,怎麼辦?問別人?不,你應該會想到百度,不是說bash
百度一下,你就知道嗎?多線程
好嘞,咱們上百度看看去:框架
看到第一個是百度百科對Java的介紹,點開看看吧,百度百科是這樣介紹Java的:jvm
Java是一門面向對象編程語言,不只吸取了C++語言的各類優勢,還摒棄了C++裏難以理解的多繼承、指針等概念,所以Java語言具備功能強大和簡單易用兩個特徵。Java語言做爲靜態面向對象編程語言的表明,極好地實現了面向對象理論,容許程序員以優雅的思惟方式進行復雜的編程 [1] 。 Java具備簡單性、面向對象、分佈式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特色 [2] 。Java能夠編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等 [3] 。編程語言
大眼一看,說的真好,不過總以爲有點官方啊,繼續搜索其餘的文章,看看別人怎麼介紹Java的,隨便點開一篇文章,看,這位博主這樣說:分佈式
Java是一種能夠撰寫跨平臺應用程序的、面向對象的程序設計語言。簡單說,Java就是一種語言,不過是一種針對jvm的語言,Java編譯後是字節碼,而jvm會把這些字節碼解釋成機器碼,而後作出相應的動做。
百度百科那個說到了C和C++,還有什麼面向對象,分佈式,還有什麼靜態面向對象編程,以爲有點不懂,看這位博主寫的,貌似懂了一些,不過啥是jvm啊?
你看看,剛開始學習個Java,沒想到什麼是Java都弄不清楚,有點小失落!
慶哥說:不少人剛開始學習Java的時候其實並不會這樣仔細的去研究到底什麼是Java,大部分都是百度搜一下看一下什麼是Java,或者看書看視頻,聽別人大體講一下什麼是Java就過去了,結果就是忽然有人問你什麼是Java,你貌似不知道怎麼說,大體能想起來,嗯,是個編程語言。
那麼怎麼去理解Java,該怎麼說呢?要的是那種歷來沒有接觸過編程的人也能一聽就知道Java是什麼了?有嗎?
那必須有啊,那啥是Java嘞?
首先嘞,你先記住,Java是語言,啥是語言?漢語,英語,法語和德語,布拉布拉,就這些,對,Java也是一門語言,有啥不一樣嘞,像漢語,針對的是咱們人,咱們中國人大部分都是使用漢語來進行溝通,Java也是語言,不過咱們人不用Java語言溝通,那Java是誰的溝通語言?
Java是計算機和咱們的溝通語言,計算機能夠懂Java這門語言。固然,你學會了Java,你也會這門語言,你就能夠和計算機溝通啦!
好比說,你對你女友說「給我倒洗腳水去!」,而後你女友聽到了這句話,知道本身該幹嗎了,就去給你倒洗腳水了(現實中大部分不是這樣,哈哈)。
那麼你要是和計算機溝通,想讓計算機給咱們作一件事情,總不能說「喂,計算機,給我倒洗腳水去」,這個計算機還真聽不懂,那咋辦?
固然是得使用計算機可以明白的語言與它溝通啦!那是啥,Java就是啊,你使用Java是能夠和計算機溝通的,固然這裏的溝通是類比咱們人與人之間的說法,其實對於計算機而言,準確的應該是咱們給計算機下達指令,計算機收到咱們的指令去作相應的事情。
怎麼樣,大體有個印象吧!啥是Java,明白那麼一丟丟了吧!
Java是一門語言,記住了吧,這個語言是用於計算機的,咱們使用Java能夠和計算機進行交流,咱們寫一段Java代碼,計算機就知道咱們想幹啥,固然前提是你寫的是正常的代碼,因此Java能夠叫作計算機語言。
可能有人又不明白了,啥是計算機語言,這個?不就是計算機之間的語言嘛,咱們看看百科怎麼介紹計算機語言的:
計算機語言(computer language)指用於人與計算機之間通信的語言,是人與計算機之間傳遞信息的介質。可是其概念比通用的編程語言要更普遍。例如,HTML是置標語言,也是計算機語言,但並非編程語言。
看到這裏咱們又要確定一個概念,啥嘞?
Java是一門計算機語言,能夠用於咱們與計算機之間的溝通,咱們可使用Java語言給計算機下達指令。
好,咱們繼續,咱們看上面說到了編程語言,那啥又是編程語言,和計算機語言有什麼區別呢?
首先你要知道,你學習Java,之後你就能夠說本身是程序員,碼農,敲代碼的,幹編程的!
你看,咱們又說到了編程,咱先來講說編程語言吧,上面咱們說到,Java是一門計算機語言,那是否是編程語言呢?
必須的啊,Java鐵定是編程語言啊,這裏要記住:
計算機語言包括的更多,它包括了編程語言,除此以外,計算機語言還包括置標語言,建模語言,你可能又糊塗了,這都是啥啊?其實吧,我也不知道,因此,別管了,你只要記住,計算機語言包括編程語言,Java是一門計算機語言,也是一門編程語言。
到了這裏,急須要和你們解釋一下,什麼是編程語言,百科對他是這樣說的:
用來定義計算機程序的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員可以準確地定義計算機所須要使用的數據,並精確地定義在不一樣狀況下所應當採起的行動。
簡單點,大白話一點:
能夠寫程序,也就是咱們可使用它來讓計算機幹活
沒忘記吧,Java就是一門編程語言啊,固然,編程語言那可有很多嘞,就像各個國家都有本身不一樣的語言,編程語言也是有不少分類的,來來,看張圖吧:
你看看,是否是不少啊,不過不用管它,咱們的重點是Java。
說到了這裏,咱們大體知道了Java是個啥,那麼這個Java怎麼用啊?能不能舉個例子啊,好,接下來,咱們就讓咱們的計算機給咱們倒洗腳水,走起。
對了,你起碼應該知道Java編程語言,是須要你寫的吧,也就是須要你敲代碼的。
慶哥說:啥是代碼啊,代是表明的意思,碼嘞,這可不是咱們騎得那玩意,這裏指的是二進制編碼,因此代碼就是「表明二進制編碼的東西」,這一塊,後面也會詳細介紹,不着急。
下面咱們開始敲代碼吧,打開你的記事本,而後寫上這些:
public class Hello{
public static void main(String[] args){
System.out.println("hello,給我倒洗腳水去");
}
}
複製代碼
對了,你知道上面這是幹嗎不,咱們在給計算機發指令嘞,也就是讓它給咱幹活,寫好以後保存這個文件,對了,文件的格式要改爲以「java」結尾的哦,文件名稱要叫Hello,也就是「Hello.java」
看,就是它:
而後咱們打開咱們電腦上的cmd命令行,關於cmd有多種打開方式,一般的一種是按下「win+r」會出現這個:
在裏面輸入cmd,而後肯定,就會出現「黑窗口」,也就是dos命令窗口。也就是如今這個樣子:
可能有人說,不同啊,個人沒有那個cd,我也是剛打上的,因此,你也敲上個cd吧,可能有人知道這是幹嗎的,接下來咱們把剛纔建立的「Hello.java」直接拖拽到這個黑窗口,就成了這樣:
而後注意要把後面的「\Hello.java」刪除掉,而後按一下回車鍵,也就是「Enter」,就出現了這個:
ps:到這裏可能有人會出錯了,咱們初學編程的時候總會遇到各類各樣的奇葩問題,不少人迷茫的不要不要的,說我明明照着作的,爲啥就是不行,初學者出現這樣的問題,大部分都是本身的馬虎形成的,非說本身的同樣,到最後,不是字母寫錯,就是忘了空格,還有個重要的是標點符號不是英文狀態下的,若是你這裏出現錯誤了,看看,有沒有出現我說的錯誤。
接下來,咱們繼續輸入:
javac Hello.java
複製代碼
而後回車,這一回車沒關係,那是會產生一個新物種的:
出現了啥新物種呢?你看看,就是它:
這個是Java的字節碼文件,也叫作class文件,由於命名是以class結尾的,這個你不懂不要緊,咱們接着往下作:
看到沒,咱們又輸入瞭如下命令:
java Hello
複製代碼
而後咱們看到有個輸出:
Hello,給我倒洗腳水去
ps:若是你在跟着個人操做在你的電腦上操做的話,可能你在輸入javac那一步就出錯了,那是由於你缺乏java運行環境,這個咱們後面會詳細介紹,你能夠先看我操做的結果。
有人說,這是啥,有點疑惑啊,我以前不是說了嘛,咱們可使用java語言來給計算機下達指令,讓計算機給咱們幹活,對了,你不會真覺得計算機會給我們倒洗腳水吧。
咱們再來看看這段代碼:
public class Hello{
public static void main(String[] args){
System.out.println("hello,給我倒洗腳水去");
}
}
複製代碼
這就是一段最簡單的java代碼,至於爲啥這樣寫,你先不用管,咱們不是說能夠用java給計算機下達指令嘛?指令在哪?
System.out.println("hello,給我倒洗腳水去");
複製代碼
這其實就是咱們給計算機下達的一個指令,意思是讓計算機在屏幕上打印這一句話:
hello,給我倒洗腳水去
咱們看剛纔的輸出,是否是就是打印出了這句話:
你看,計算機是否是按照咱們給的Java指令作出了相應的動做,固然,這是最基本的,最簡單的。
到這裏,我相信,你大體懂了什麼是Java了,不過接下來還有一個大問題,那就是Java能幹嗎啊?
上面咱們給出了一個簡單的例子,就那麼一丟丟代碼,不過還能夠有很複雜的,代碼超級多的,這樣就會產生一個有不少功能的東西,好比咱們能夠用Java寫一個計算器,啥計算器,就相似你電腦上自帶的計算器那樣,再好比咱們經常使用的qq吧,咱們也能夠用Java寫一個,固然,越複雜的應用,寫起來難度越大,咱們還可使用Java作出來一個網站,你想在網站上展現啥都行。
不過嘞,Java可能寫系統更多一些,就是各類各樣的後臺,啥是後臺,好比你進入淘寶買東西吧,你登錄本身的帳戶和名稱,而後進入首頁,而後搜索「好吃的」,而後就會出來一大堆好吃的。
爲啥你輸入本身的帳戶和名稱就能進去網站,那是由於用Java代碼寫了一個邏輯,好比說,你的名字是1,密碼是2,當你點擊登陸按鈕的時候,Java代碼中就會作判斷,若是名字是1並且密碼是2,那就讓你登進去,不然就進不去,這都是Java代碼的功勞。
當你選中一個好吃的,而後下單,填寫地址,而後你就愉快的購物完成了,接下來商家須要給你發貨啊,因而商家就會登上一個網站,在這個裏面能夠看到你叫啥,買的啥,地址在哪,而後就給你發貨了,商家登入的這個網站就能夠叫作後臺。
懂了嘛,Java就能夠完成這樣的一個網站。
學到後面你就會發現,語言就是工具,能作的事情有不少,不侷限於網站啊,桌面應用啥的!
說了這些,你也能大體知道Java能作些啥了,其實我知道你瞭解的仍是有點模糊,那下面咱再說說。
Java其實有三個版本分類:
你能夠大體的這樣理解,JavaSE是Java的核心基礎,包含的就是基礎知識,自學Java剛開始都是從這個開始的,JavaME呢?不知道你們以前玩過那種遊戲沒,就是在安卓手機尚未的時候,咱們會下載一些jar結尾的遊戲文件來安裝,打開以後都會先有這個圖標:
你能夠簡單理解這就是JavaME搞出來的,不事後來出來了安卓,就代替了它,因此不用太管它,至於JavaEE,能夠稱爲企業級應用開發,這部分會學各類框架,各類高級玩意兒,也是咱們後期主要學習的東西,咱們能夠利用這部分知識開發各類網站啊,桌面應用啊,一些工具啊,甚至遊戲均可以,固然,不少應用都是使用到了java的綜合技術來實現的。
如今不少學習編程的人,剛開始會疑惑不知道學哪門編程語言,其實吧「鐵打的思想,流水的語言」,語言終歸是工具,怎麼用,能幹嗎,這取決於用的人,若是你足夠牛,那麼你能夠:
用java改變世界!
尾聲:這篇文章至關於一個先導課,目的是讓你們對java有個初步的認識,後期會有更加詳細的介紹,會帶着你們一步步揭開java的神祕面紗!
注意啦注意啦!本篇文章是我原創java自學教程《慶哥講java》的第一篇,後續會持續更新,文章追求詳細完整,通俗易懂,並且有深度,另外我在學習之餘收集了將近5T的java視頻學習資源,不少都是付費資源,本身花錢買的,若是你們有須要,也能夠聯繫我,我會免費送給你們,你們一塊兒學習,多多交流,掃描下方二維碼,回覆「慶哥」,精品資源當即到手
你們對本篇文章有任何問題,均可以留言,或者掃碼直接找我!