java基礎復習


JDK的安裝:

  1、下載、安裝

    下載地址:www.oracle.com/

  2、配置環境變量

    配置jdk的位置:JAVA_HOME:jdk的安裝目錄

    配置編譯器解釋器到系統環境變量:path :----;%JAVA_HOME%\bin  (javac 、java...)

JDK、JRE、JVM(關系)

  

JAVA運行過程:

  1、java源文件經javac編譯器編譯為.class(字節碼)文件

  2、.class(字節碼)文件經java解釋器解釋為所在平台(windows、linux、...)的機器碼(注意此機器碼可直接被計算機之別)

  所以我們后來就有了,java是一種編譯解釋性語言!因java經編譯解釋,所以效率有所降低,但是現在PC端運行速度非常快,所以效率這方面算計算機處理性能給優化了!

java標識符(給類、方法、變量命名),命名規則如下:

  1、標識符必須以字母(這里的字母為廣義的字母,因為java內部采用unicode編碼字符集,所以可支持漢字、日文、阿拉伯、...但是為了以后項目可能重構改變文件編碼方式導致亂碼出現以致程序出錯,所以盡量避免用其他unicode編碼字符集命名)、_、$開頭,其它部分可以是字母、數字 、 _及$的隨機組成

  2、標識符不能為java中的任一關鍵字

變量:

  內存塊的命名。可以通過變量來操作內存塊中的數據。

  1、局部變量:定義在方法或者語句塊({})里面,從屬於方法或者語句塊,出方法或者語句塊自動釋放掉!局部變量使用前必須初始化。

  2、成員(實例)變量: 定義在類里面,方法外面,從屬於對象(必須有對象才能調用),如果我們沒有手動初始化,則采取默認值整型默認0,浮點型默認0.0、boolean默認:false、char默認\u0000(書上),但是親測(jdk8)默認為一個空格。其它任意引用類型(String及你自己編寫類...)默認初始值均為:null。

  

 

  3、靜態(類)變量:定義在類里面,方法外面,使用static修飾,從屬於類,內加載時初始化!非靜態方法里面不能使用靜態變量。按照正常邏輯是不會將一個靜態變量定義在靜態方法里面的,所以編譯錯誤!(Illegal modifier for parameter j;)即參數的非法修飾符,默認初始值同成員變量初始值。

Java中的數據類型:

  1、基本數據類型(8種)

    1.1數值型:

      1.1.1整型:byte(1字節,1字節8位,范圍:-2字節數*8-1-1至2字節數*8-1為什么要次方-1,因為最前面還有個符號位!為什么底下-1,因為還有個0)、short(2字節)、int(4字節)、long(8字節)

      1.1.2浮點型:float、double

    1.2字符型:char(2個字節)

    1.3布爾型:boolean(1位)

   2、引用類型(4個字節)

    2.1:數組(數組也是對象)

    2.2:對象(廣義划分)

    2.3:接口

數據類型轉換:

  1、自動轉換:如果在表述范圍內,那么可以自動類型轉換

    比如我們知道byte類型的表述范圍位-28-1-1到28-1之間,也就是byte的表述范圍位-128到127之間,所以如果是在這之間的數,那么能自動類型轉換為byte型,反之不能!

  2、強制類型轉換:如果不在表述范圍內,那么強制轉換,如: byte  a=(byte)344; //但是強制類型轉換后可能會有數據丟失

運算符:

  1、賦值運算符:=

  2、算術運算符:+、-、*、/、%

  3、關系運算符:>、<、>=、<=、!=、==

  4、邏輯運算符:&&、&、|、||(其中&&和||都有短路、其中&&左邊為false則不進行右邊、而||左邊為true,則不進行右面,開發中一般我們有短路、為了追求效率)

  5、位運算符:&和| 、比如3&4 那么結果為0,3|4結果為7

  6、三目運算符:布爾 表達式?表達式1:表達式2,解釋:如果表達式結果為true,則返回表達式1的結果,反之返回表達式2的結果。

  7、擴展運算符:+=、-=、*=、/=、%=

控制語句:

  1、順序結構

  2、選擇結構

    2.1 if

    2.2 if else

    2.3 if else if else

    2.4 switch() :多值選擇用switch、但是謹防case穿透

  3、循環結構

    3.1for

    3.2 while

    3.3 do while

      這里要注意break、continue

        break強制結束整個循環

        continue:結束滿足條件的本次循環,繼續下次循環

對象和類:

  對象是具體的、類是抽象的、類是對象的模板,可以通過這個模板我們new出來一個對象。

定義類:

   public class 類名{

    private 類型 屬性名;

      .....

      setter/getter方法....  

      構造方法();//可重載

}

構造方法:

  1、方法名必須和類名保持一致

  2、無返回類型(實質是返回該類的實例)

  3、通過new來調用

  4、無參構造器

    1、如果我們沒有手動定義無參構造器,那么編譯的時候自動添加一個無參的構造,如果我們定義了自己的構造器,那么編譯器不會自動添加無參構造!

    2、構造方法的第一句默認是super,即調用其直接父類的構造方法

方法的重載:

  1、兩同:①同一個類、②同一個方法

  2、三不同:①:參數類型不同  ②參數順序不同   ③參數個數不同

    注意:返回值及形參名稱不同則不構成重載!

  

this:

  1、在普通方法中this代表能調用改方法的對象

  2、在構造器中this代表正在構造(初始化)的對象

  3、還可以用來調用其它的構造方法

super:

  1、直接父類對象的引用

static:

  1、用static修飾的變量和方法稱為靜態變量/方法、靜態變量/方法從屬於類、可直接通過類名去調用。實際存放在堆.>>>方法區中

package:

  package必須位於非注釋第一句

import:

  1、引入外部的類

  2、import static 包名.靜態屬性

final:

  1、用final修飾的變量稱之為常量

  2、修飾的方法不能被重寫

  3、修飾的類不能被繼承

面向對象的三大特征:

  1、封裝:屬性私有化,然后提供setter/getter方法

  2、繼承:(extends) 

    2.1:實現了代碼的復用

    2.2實現了對現實世界更好的建模

  3、多態

    3.1多態基於繼承

    3.2多態基於子類對父類的重寫

    3.3多態基於父類引用指向子類對象

抽象類(abstract):

  1、包含抽象方法的類一定是抽象類

    1.1抽象類中的抽象方法必須要求子類重寫

  2、抽象類既有方法,又有方法的實現(不足夠抽象)

  3、抽象方法包含成員變量、普通方法以及構造方法

  4、抽象類不能被實例化(new)

接口(interface):

  1、接口中只有定義不能有實現

  2、接口有多繼承、而類只能是單繼承多實現

  3、接口定義了現實生活中的一組規范,如果你是xxx、則必須能xxx.

方法的重寫:

  1、=子類重寫了父類的方法(方法名必須一樣)

  2、>=子類重寫方法的訪問修飾權限一定要大於等於父類被重寫方法的訪問修飾權限

  3、<=<=:子類重寫父類的方法之后的返回值一定要小於等於父類的類型、子類聲明的異常類型一定要小於等於父類的異常類型,也就是子類聲明的異常類型是父類聲明異常類型的子類或者本身!

 

 

  

  

  

 

 

 

 

 

 

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM