Java基礎學習第一天

其實之前有學了一丟丟的java基礎,是在中國慕課上學習的翁愷老師的java編程基礎,學了幾天吧,那段時間突然工作特別忙,然后加上快過年了,就沒有繼續(xù)學下去了。因為業(yè)務需要做數據分析,自己自學了一段時間的python,卻發(fā)現python能做的其實是有限的。python的作用是一個粘合劑,它很重要,但是它不是最重要的那一個。它主要還是一個輔助的作用,它需要一門能夠讓它抱大腿的語言。而java,就是最合適的語言。于是我就打算重新把java學起來。而比較幸運的是,在這段時間里,居然找到了馬士兵老師,聽了他的建議和指導之后,我就加入他的培訓班了。目前來看,效果還是蠻不錯的,后期效果如何,我在文章會一步步的跟進。

今天是上課的第一天,因為課程在8月已經開始了,所以我目前聽的是錄播的課程,希望在之后的學習中充分利用時間,提高效率,爭取早點趕上直播課。在上課之前,有一個一對一的指導,對我還是很有幫助的。張老師對我的指導,我跟大家做一個分享。因為我的基礎薄弱,老師要求我從零基礎的這個課程開始學習,然后告訴我,java基礎學習要做好這幾項重點的學習,分別是1.多線程 2.java集合 3.java虛擬機部分 4.數據庫部分。并且這幾個部分對后面關聯性非常強,要下苦功,下大功夫去學習。而關于聽課的方法,他告訴我,聽課就是聽課,不要要其他的任何事情,要聽老師的思路,理解老師的思路,不要自己去敲代碼,專注于聽思路就行,聽課的時候其他的任何事情都不要做。而在課后呢,你就要按照自己理解的思路去敲代碼,去驗證自己理解的思路對不對,如果不對或者不記得了,就要回去看老師的視頻??赐曛螅倮斫庖槐?,理解之后再按照自己的思路敲代碼。而在你已經完全能夠敲對代碼,完全能夠自己獨立的把思路總結出來之后,你要形成自己的文章,要能夠表達出來。當你表達出來之后,最好的情況,是再形成一篇Xmind的思維導圖,為什么呢?因為這樣就相當于是形成了以關鍵詞為中心的結構性思維,就變成有規(guī)律的東西了。老師告訴我,每天學習時間至少要達到3個小時以上才行,其中一個半小時用于學習視頻,直播也就是老師講的東西,一個半小時用于自己的總結,敲代碼。在我看來,這個時間比例是非常合理的,因為你必須花足夠的時間自己消化,理解,總結,輸出,你才能夠真正的記住和運用這些知識。除了學習的內容已經學習的方法,老師還跟我講了非常重要的一點,就是對于一個新學者而言,java的這種語言的思維可能和平時我們的思維是不一樣的,可能會給我們產生一些困擾,會有很多我們并不能理解的地方,可能我們當時怎么思考也沒有用,那怎么辦呢?是不是就在那個地方一直轉圈圈呢?不是的,如果我們真的不理解,可以去問,問百度,問同學,問群友,問老師,如果還是不能理解,怎么辦呢?那就先跟著老師敲代碼,多敲幾遍,先記住它是怎么敲的,先記住,先敲幾遍。即使不能理解它的底層結構,先把這個代碼敲對了。然后在這里打個標記,告訴自己,這里是沒有理解的。然后就越過它,去學習新的內容。如果將來講到的某個內容讓你恍然大悟,你就可以回來再把它理解透。總之,你不要停下來,要向前走。老師在這里打了一個比喻,說是我們學著騎自行車的時候,我們不一定是理解了它的原理,但是我們也能學會。編程也是一樣,有些地方,你理解不了,是很正常的,能夠理解的,當然是理解了最好,那些你不能理解的,你先跟著敲,敲著敲著也許就會了。畢竟,編程既是一種思維,也是一門技能。老師的這些指導對我來說是非常有幫助的,并且老師說到,一定要多問,不理解就問,不要憋著,不要怕丟人。這很重要,因為你不問,你就永遠都不知道,你問了,你可能就懂了。問問題從來都不是丟人的,不懂還不敢問才是丟人的。

聽完老師的教導之后,我就啟程開始我的學習之路了。這個基礎課程是由連老師和馬老師主講的,前面的部分是馬老師來講。今天聽了第一節(jié),感覺還是很有收獲的。跟大家做一下分享。今天的內容適合和我一樣的超級小白來聽,大佬們歡迎隨時批評指正。

言歸正傳,今天連老師開篇先講了學習java基礎的幾個要點,第一,不要浮躁,要沉下心來。寫代碼是一項很需要耐心的事情,不是可以一蹴而就的,需要你沉下心來沉淀,一點一點的學,不要心浮氣躁。這點很重要,也是我的弱點,我要謹記,我要改正。第二,學好英語很重要。這個也非常重要,為什么呢?因為編程它是的源代碼都是英語寫成的,你要閱讀源代碼,基礎的英語知識還是需要的,并且它是發(fā)源于國外,所以很多前沿的文章是英語寫成的,你要學習,就要學好英語。我的英語水平太一般,只是剛剛好過六級。并且不是計算機科班出身,很多專有名詞都不了解,必須抓緊時間學習。目前用的是busuu在學習英語,感覺軟件是很不錯的,就是沒有計算機的專欄,還需要多找找路子,多學習。第三,要閱讀源代碼和文檔。這是一個知其所以然的過程,這一點之所以重要是因為我們只有知道了這些源碼是怎么寫的,我們才能夠說是真正了解了它的思路,而這種思路對于一個編程人員來說是至關重要的。這也是我特別想要學習編程的原因,它不僅是一項技能,更是一種思維,是一種發(fā)現問題,分析問題,解決問題的思維的思維,并且是這種思維最佳的應用場景。它幾乎可以實現你想實現的任何事情。這對我來說太重要了。第四,共享源代碼。這是理所當然的,既然這是一門開源的語言,用的也是別人的開源程序,那么開源就是必須要做的事情,希望自己將來能為開源的編程界做出一點微小的貢獻吧。第五,熱愛JAVA。選擇了它,就要熱愛它,要盡情的投入。我其實真的非常期待自己能好好的用JAVA來實現自己的方法論。所以我會投入最大的熱情到JAVA上,一定要把它搞懂,最大化的運用好這門語言。

然后,講到的就是計算機語言的簡史,說明了JAVA是一門面向對象的語言,而不是一門面向過程的語言。雖然我還不太懂這個,但是先聽著唄,后面肯定會講這個內容,我也適當去百度一下面向對象是什么個意思。接著就是介紹JAVA這門語言誕生以及普及的原因。JAVA之所以誕生是因為一個叫Green的項目需要一種中立的可以跨平臺的語言,運用這門語言可以在不同的平臺實現它想要的功能。于是JAVA應運而生。而JAVA也因為它的這種跨平臺的特性而開始流行了起來,因為它可以實現一次編譯,多平臺運行,而不是像C語言一樣一次編譯,只能在一個平臺運行,到其他平臺允許的話需要重新編譯。所以JAVA隨著互聯網的爆炸式發(fā)展而迅速的流行起來。JAVA目前主要有三個版本,分別是企業(yè)版的JAVAEE,個人版的JAVASE和嵌入版的JAVAME,而我目前要學的是JAVASE的基礎,到了后面,我應該就要學習JAVEEE的相關知識了,包括后期學習架構師的項目很多應該都是JAVAEE的項目。而我目前用的版本呢是JDK12.0的穩(wěn)定版,學的是最新的穩(wěn)定版,看起來連老師很有信心把我們較好,哈哈。

接下來就講到很重點的JVM部分了,這個是實現JAVA跨平臺的最關鍵的核心技術。為什么這么說呢?因為JAVA作為一門語言,它從編碼到執(zhí)行的熟悉是這樣。首先,你寫出JAVA的代碼。然后,你把這個寫好的代碼編譯成css格式的JVM文件。然后你運用JVM虛擬機來執(zhí)行這個css格式的JVM的文件,也就是把它解釋成機器語言并運行。(這是我的粗淺理解,如果有問題的話,后續(xù)我回來改正)需要注意的是,不同的操作系統(tǒng)要安裝不同的JVM版本,我們主要用的是windows版本的JVM。而在這里,老師又給我們介紹了三個我聽過很多次,但是一直不知道是啥意思的名詞,分別是JDK,JRE和JVM,其中JDK是java development kit 也就是java開發(fā)工具集,目前我們用的主要是JDK12.0,而JRE則是java runtime environment 即java的運行環(huán)境,它是屬于jdk的,而jvm是java virtual machine,則是java虛擬機,它是jre的組成部分,也是整個jdk最核心的部分,它是實現java跨平臺的基礎。而關于java的特點跨平臺,安全,簡單,面向對象,健壯等等老師一筆帶過,因為這些我們現在不能理解的很深,很透,所以只要稍微看看就好了。剛學習,要做減法,很對,在一些不必要糾結的地方不去糾結。

java語言編程過程

做完這些概念的鋪墊,我們就開始準備寫代碼了。寫代碼之前當然是要先把工具裝上,老師已經提前把jdk的軟件準備好通過網盤分享給了我們,安裝的方式也告訴我們了。其中要注意的點就是:1.安裝jdk的時候要記得自己的安裝路徑,因為后面會用到。2.不同于以往,安裝新版jdk需要自己配置jre,配置方式是使用windws的命令窗口(win+r后輸入cmd調出)進入到jdk的目錄(我的是c:/program/java/jdk.12.0)后,輸入 bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre即可生成jre目錄。3.jre配置完成后,我們就需要進行環(huán)境變量的配置了,這一步是為了使用在命令行運行程序的時候,它能夠通過環(huán)境變量里設置的路徑找到這個執(zhí)行程序。怎么配置呢?右擊我的電腦-屬性-高級系統(tǒng)設置-高級-環(huán)境變量-系統(tǒng)變量-新建。變量名命名為JAVA_HOME,然后吧之前jdk的路徑放進去,點擊確定。然后在環(huán)境變量里找到Path,添加兩個路徑,分別是%JAVA_HOME%\bin 和 %JAVA_HOME%\jre\bin 為什么要這樣添加而不是直接添加他們的路徑呢?因為這樣的話,當你修改你前面的JAVA_HOME的路徑的時候,你后面這些也能跟著修改,方便你隨時進行不同版本的JAVA之間的切換。

JDK配置完成后,我們再看看常用的JAVA開發(fā)工具,這里的話,老師推薦我們使用的是noteopad++的文本編輯器和IDEA的集成開發(fā)環(huán)境,前期用不到IDEA,所以目前主要是使用notepad++。

寫的時間太長了,有點著急了,趕緊開始第一個代碼吧。代碼很簡單,如下圖所示。
image.png

但是對于一個初學者來說,要注意的點還是很多的:

1.java文件的名稱必須跟public class后面的這個名詞的名稱保持一致。

2.一個java文件可以有多個class,但是public class只能有一個。

3.public static void main(string [ ] args)是所有java程序的入口,如果想執(zhí)行相應的java代碼,必須添加這個方法,也必須按這個格式。

4.java代碼在編寫的時候,每行結尾的時候需要使用;結束。

5.java代碼的代碼塊需要用{ }括起來,前后匹配。

寫完第一個java程序后,我發(fā)現需要對自己的編程做以下提升:

1.注意縮進

縮進非常重要,它會讓你的代碼顯得有格式感,有層次感。會增強你代碼的可讀性,這不僅利于別人看你的代碼,也利于你自己回顧自己的代碼,這很重要,一定要養(yǎng)成縮減代碼的習慣。

2.成對編程

什么是成對編程呢?就是你寫代碼的時候,寫括號,引號這些都應該寫完整后,在往里面添加內容,而不是先寫一個括號,寫完代碼之后再加一個括號,這樣很容易忘記,也很容易混亂,因為有些代碼會有很多嵌套的內容。

3.見面知意

這一點也是對于可讀性非常重要的,因為有時候當你回顧自己代碼時,看到一個能夠見名知意的代碼可能你很快就能回想起它的意思,以及你寫這個代碼的用意,如果不知道的話,你可能還要不斷的讀上下文分析才知道,無形中浪費了很多很多時間,所以,給變量起名字不要偷懶。

這幾點是我們初學就要養(yǎng)成的好習慣,千萬不要想著以后慢慢改,養(yǎng)成習慣很容易,改,很難。

此外,老師還教我們怎么去做注釋,//是指單行注釋,/ /是指多行注釋(不能嵌套),這兩個用的比較多。而文本注釋用的比較少,以后再學習。注釋的內容在編譯時是會自動跳過的,所以不會出現在字節(jié)碼的文件中。

有編譯,自然少不了反編譯,編譯是從源代碼到class文件,而反編譯呢則是從class文件返回到源代碼。這個主要是一劑后悔藥,怕我們把源代碼給刪了或改了,以后要找找不回來。所以提供一個工具,幫我們把css格式的文件或者是jar包轉回來。但是這個我覺得有github運用的機會并不大吧?我用的不是很熟,以后再看看有沒有說錯。

今天就到這吧,聞到米粉肉的香味了。

2019-11-13

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容