針對零基礎小白彙總的Java基礎知識點

不知道爲什麼,最近很喜歡Java這門語言,個人認爲,學習一門編程語言,紮實的基礎是相當重要的,所以在這裏,我想跟大家分享一下我掌握的知識點

嗯,不說大家都知道,Java是一門兼容性很好的語言,跨平臺支持的很好,比較常用的有Linux和Windows,所以首先,我將會跟大家分享以下兩者的區別

Linux與Windows的區別

Linux是一個開源的操作系統,與Windows有三大不同點:

文件系統不同:Windows是盤符,Linux是目錄

外部設備映射不同: Windows是盤符,Linux是掛載點(目錄)

安全級別不同: Windows安全級別低,Linux安全級別高,因爲是服務端系統 /home——具有最高權限

c語言和Java的區別

而對於c語言和Java的區別的話,主要就是在編譯過程

c文件,編譯,直接編譯爲可執行文件(0,1)

java文件,編譯,字節碼文件(.class),jvm(不同平臺有不同的JVM)

運行字節碼文件,計算機識別(0,1)

JDK、JRE、JVM

上面提到了JVM(Java虛擬機),那我們就來看下JDK、JRE、JVM三者的關係

JDK - Java開發工具包

JRE- Java運行環境

JVM - Java虛擬機

三者的區別可以用一句話進行概括:運行一個Java程序所需要的最小環境是 JRE,開發一個Java的最小環境是JDK,加載字節碼文件,實現跨平臺需要用到JVM

環境

說到環境這個詞,我就不得不說一下Java的IDE(集成開發環境)eclipse,這是一款主流的Java開發環境,代碼提示,搭建目錄結構等等,都是十分讚的,推薦使用

eclipse常用的快捷鍵,我這裏想跟大家分享一些:

輸入main的時候,然後就使用Alt+/之後就可以出現代碼提示Alt+/是比較常用的一個代碼提示快捷鍵(可以完成一些代碼的插入)CTRL+1(快速修復)就是可以快速查看錯誤並且快速修復Shift+Enter(當前行下插入一個空行,不限位置)ctrl+shift+enter(當前行上插入一個空行)ctrl+d刪除當前行Alt+上下鍵,可以交換語句的位置ctrl+alt+上下鍵可以快速的複製一行,當時有時候會和電腦自帶的快捷鍵衝突所以需要自定義一下,改爲ctrl+上下鍵ctrl+shift+f(格式化當前代碼)ctrl+f(查找與替換)ctrl+shift+x(把當前選中的文本全部變成小寫)ctrl+shift+y(把當前選中的文本全部變成大寫)ctrl+/(註釋或取消註釋當前行)ctrl+shift+/(註釋多行)ctrl+shift+(解除多行註釋)

命名

有了環境之後就可以開始搭建我們的目錄結構了,搭建目錄結構就需要使用到命名操作,在一門編程語言中,命名是對團隊合作的十分重要的一步,一個好的命名可以給開發帶來極大的便利

變量的命名其實比較基礎的就是要做到“見名知意”,變量的命名採用駝峯式命名法,類名的首字母大寫,命名之後就需要聲明變量和初始化變量,凡事都是需要先有了纔可以對其進行操作,變量也是一樣,需要在使用前進行初始化,而且必須與數據類型相匹配。

還需要注意的一點是:默認的整數會杯認爲是int類型,默認的小數是double型

整型直接量可以直接賦值給byte,char,short,byte,char,short只要參與運算,則一律轉爲int

分支結構

分支結構有:if語句,if else語句,else if 語句,switch case語句

需要注意的是:在Java中,存在變量的作用域

變量的作用於就是從變量聲明到包含這個變量的最近的大括號結束

當作用範圍重疊時,變量不能重名

除了分支結構,我們經常使用的還有循環,所謂循環就是:一組相同或相似的語句被有規律的重複性執行

對於循環,我們需要做到的三點是:

循環三要素:

1.循環條件初始化

2.循環條件(以循環變量爲條件)

3.循環變量的改變(向着循環結束變)——在循環過程中改變的量就是循環變量

這裏,我想用一道經典的題來進行講解:

<code class="language-text">//題目如下:用編程實現9+99+999+...+99..9(十個九),並且輸出運算結果//題目分析如下://設num爲每次加的那個數,可以看到,當/*** i=1 num=9* i=2 num=99* i=3 num=999* i=4 num=9999*//*** 9到99 9*10+9* 99到999 99*10+9* 999到9999 999*10+9*/// 有了以上的規律,編寫程序就不是什麼難事啦</code>

我們知道,循環常用的有三種:當到型循環(while),直到型循環(do-while),for循環

那面對這三種我們應該怎麼選用呢,請看下面幾點:

如果題目中出現“當”這個字眼的話,一般我們會選用當到型循環

如果題目中出現“直到”這個字眼的話,我們一般使用直到型循環

如果題目給出的了固定的循環次數,我們可以選用for循環

上面的三點看起來可能十分不起眼,那我們現在就來實戰演練一下:

題目:有數列2/3、4/5、6/9、10/15……求此數列前30項的和分析:對於數列的題,首先要找出通項公式,或前後項的計算關係公式,根據公式求所需。由於數列的題一般執行次數能確定,用for循環語句來編寫比較方便

題目:年存款利率爲3%,本金爲10000,存款總額超過20000時,求具體的收益分析:對於這類型的題,其實隱含了”當“字,當存款總額超過20000時,求具體的收益。用while循環語句來編寫比較方便

數據結構

前面我們一直在說編寫程序,那程序到底是什麼呢,簡單的說,程序是由算法和數據結構組成的,以上的分支結構和循環都是流程問題亦即算法問題,所謂的數據結構就是把數據按照某種特定的結構來保存,設計合理的數據結構是十分重要的,數組就是一種基本的數據結構

數組:相同的數據類型的元素組成的集合就是數組

數組的聲明有多種方式,常用的如下:

<code class="language-text">int[] arr = new int[4];int [] arr = {1,2,3};int[] arr;arr = new int[4];int[] arr = new int[]{1,2,3};</code>

數組也有很多實用的API,具體的,大家可以查閱相關的文檔

方法

方法用於封裝特定邏輯功能,儘可能獨立,可以被反覆調用,減少代碼輸出

方法定義五要素

修飾詞

返回值類型

方法名

參數列表

方法體

方法的參數可有可無,有參數更加靈活當方法需要返回結果時,設置特定返回值類型,不需要結果的時候,爲void返回結果通過return 關鍵字,return 後的數據必須和返回值的類型匹配

類——面向對象

我們看到的東西其實都可以稱之爲對象,將對象抽象出來,就有了類

類是一種數據類型

類中只能包含:屬性(變量)和行爲(方法)

一個類可以創建多個對象

同一個類的多個對象,結構相同,數據不同

將類實例化,我們可以使用new

new 出來的東西在堆裏面,其餘在棧裏面成員變量都是在堆裏面的局部變量在棧裏面成員變量在創建對象時存在,對象被回收時消失垃圾回收器不定時回收沒有引用指向的對象,回收過程透明自動調用方式:System.gc()內存泄漏是由於不再使用的對象未被及時回收建議,對象不用時,對象及時賦值爲null(空,沒有指向對象)

講到類就脫不了方法,講到方法,就不得不提及下方法的重載,講到方法的重載就需要知道方法的簽名

方法的簽名:就是方法名和參數列表

一個類中不可以有兩個方法的簽名完全相同,那重載(overload)指代的就是方法的簽名不同(方法名相同,參數不同)

一個類中,經常見到的不外乎構造方法,而,構造方法是可以重載的

那構造方法是什麼呢,有什麼作用呢,一般用來做什麼呢

構造方法與類同名,沒有返回值類型

構造方法常常用於給成員變量初始化

構造方法是在創建對象時被自動調用

編輯器會在沒有顯示指明構造方法的情況下,默認給出一個無參數的構造方法

我們知道,類是需要實例化之後纔可以使用的,那實例化出來的那麼多個對象在使用的時候怎麼區分呢,於是我們就有了this,但是,需要注意的是,這個不是指針

Java 沒有指針,沒有二維數組(叫做數組的數組)

this在這裏只是一個簡單的指向作用,誰調用它,就指向誰

幀棧和方法區

有調用就會有存儲,存儲主要有兩個(幀棧和方法區)

在Java中,調用一個方法就會得到一個“幀棧”,幀棧中存儲的就是局部變量,方法調用結束之後,幀棧就消失,局部變量也會跟着相應的消失

相應的還有方法區:方法區用於存放類的信息,Java程序運行時,首先啊會通過類裝載器載入類文件的字節碼信息,經過解析後將其裝入方法區,類的各種信息都在方法區存儲

所以簡單的總結一下就是

方法區:存儲類的信息(.class及方法)方法只有一個,通過this關鍵字區分

——————————————————————————————————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章