Java基本概念

來源:互聯網
上載者:User

標籤:父類   編輯器   計算   聲明   loader   final   繼承   自己   分布   

1、Java的特性和優勢:簡單性、物件導向、可移植性、高效能、分布式、多態性、多線程、安全性、健壯性。

2、Java 的運行機制,電腦進階程式設計語言類型有:編譯型、解釋型。Java 語言是這兩種類型的結合,利用編輯器編寫 Java 來源程式,然後編譯器將來源程式編譯成class檔案,再利用虛擬機器(解譯器)解釋執行,運行過程:載入、代碼校正、解釋執行。 

3、Java運行時環境JRE包含:Java虛擬機器、庫氹數、運行Java應用程式和Applet所必須的檔案。

     開發環境JDK(又稱SDK)包含:JRE的超集、編譯器、調試器等開収工具。 

4、Java運行環境的三項主要功能:載入代碼:由class loader完成;代碼校正:由bytecode verifier完成;執行代碼:由runtime interpreter完成。 5、Java的資料類型分為兩大類,即基礎資料型別 (Elementary Data Type)和引用資料類型,在基礎資料型別 (Elementary Data Type)中有3類8種基礎資料型別 (Elementary Data Type)(邏輯型-boolean;文本型-char;數值型-byte、short、int、long、float、double),引用資料類型有類(class)、介面(interface)、數組(array),注意,引用資料類型的大小統一為4個位元組,記錄的是其引用對象的地址。byte類型(1位元組)、short(2位元組)、int(4位元組)、long(8位元組)、float(4位元組)、double(8位元組)。 6、&&:和&運算的結果是一樣的,但是運算過程有點小區別。&:無論左邊的運算結果是什麼,右邊都參與運算;&&:當左邊為false時,右邊不參與運算。||:和|運算的結果是一樣的,但是運算過程有點小區別。|:無論左邊的運算結果是什麼,右邊都參與運算。||:當左邊為true時,右邊不參與運算。 7、異或運算中,當一個數異或運算同一個數兩次,結果還是這個數本身,如a^b^b=a 8、棧記憶體:儲存的都是局部變數,而且變數所屬的範圍一旦結束,該變數就自動釋放。     堆記憶體:儲存是數組和對象(其實數組就是對象) 凡是new出來的都在堆中。     特點:每一個實體都有首地址值。堆記憶體中的每一個變數都有預設初始化值,根據類型的不同而不同。整數是0,小數0.0或者0.0f,boolean false char ‘\u0000‘。因此局部變數必須初始化,而全域變數則可以不初始化已有預設值。 9、數組數組常見的兩種異常:下標越界和null 指標異常數組的定義:數組是相同類型資料的集合,描述的是相同類型的若干個資料按照一定的先後順序排列組合而成,其中每一個資料稱作一個數組元素,每個數組元素可以通過一個下標來訪問它。數組的四個基本特點:1.長度固定,一旦被建立它的長度就是不可改發的;2.其元素類型必須是相同類型,不允許出現混合類型;3.數組中的元素可以是任何資料類型,包括基礎資料型別 (Elementary Data Type)和引用資料類型;4.陣列變數屬於參考型別,數組也可以看做是對象,數組中的每個元素相當於該對象的成員變數,數組本身就是對象,Java中對象是在堆中的,因此數組無論儲存原始類型還是其他物件類型,數組本身是在堆中的。 10、成員變數和局部變數的區別:成員變數定義在類中,整個類中都可以訪問。 局部變數定義在函數,語句,局部代碼塊中,只在所屬的地區有效。成員變數存在於堆記憶體的對象中。局部變數存在於棧記憶體的方法中。成員變數隨著對象的建立而存在,隨著對象的消失而消失。局部變數隨著所屬地區的執行而存在,隨著所屬地區的結束而釋放。成員變數都有預設初始化值。局部變數沒有預設初始化值。 11、構成函數建構函式:構建創造對象時調用的函數。作用:可以給對象進行初始化,建立對象都必須要通過建構函式初始化。一個類中如果沒有定義過建構函式,那麼該類中會有一個預設的空參數建構函式。如果在類中定義了指定的建構函式,那麼類中的預設建構函式就沒有了。一般函數和建構函式什麼區別:建構函式:對象建立時,就會調用與之對應的建構函式,對對象進行初始化,會調用只調用一次。一般函數:對象建立後,需要函數功能時才調用, 可以被調用多次。 什麼時候定義建構函式?在描述事物時,該事物一存在就具備的一些內容,這些內容都定義在建構函式中。 建構函式可以有多個,用於對不同的對象進行針對性的初始化。多個建構函式在類中是以重載的形式來體現的。 12、靜態代碼塊:隨著類的載入而執行。而且只執行一次。作用:用於給類進行初始化。 13、static的特點:static是一個修飾符,用於修飾成員。static修飾的成員被所有的對象所共用。static優先於對象存在,因為static的成員隨著類的載入就已經存在了。static修飾的成員多了一種調用方式,就可以直接被類名所調用 。 類名.靜態成員 。static修飾的資料是共用資料,對象中的儲存的是特有資料。 14、成員變數和靜態變數的區別兩個變數的生命週期不同:成員變數隨著對象的建立而存在,隨著對象的被回收而釋放。靜態變數隨著類的載入而存在,隨著類的消失而消失。調用方式不同:成員變數只能被對象調用。靜態變數可以被對象調用,還可以被類名調用。別名不同:成員變數也稱為執行個體變數。靜態變數稱為類變數。資料存放區位置不同:成員變數資料存放區在堆記憶體的對象中,所以也叫對象的特有資料.靜態變數資料存放區在方法區(共用資料區)的靜態區,所以也叫對象的共用資料 15、靜態使用的注意事項:靜態方法只能訪問靜態成員。(非靜態既可以訪問靜態,又可以訪問非靜態)靜態方法中不可以使用this或者super關鍵字。主函數是靜態。 16、抽象類別特點:方法只有聲明沒有實現,該方法就是抽象方法,需要被abstract修飾。抽象方法必須定義在抽象類別中。該類必須也被abstract修飾。抽象類別不可以被執行個體化。為什嗎?因為調用抽象方法沒意義。抽象類別必須有其子類覆蓋了所有的抽象方法後,該子類才可以執行個體化。否則,這個子類還是抽象類別。抽象類別中有建構函式,用於給子類對象進行初始化。抽象類別可以不定義抽象方法, 但是很少見。目的就是不讓該類建立對象。AWT的配接器物件就是這種類。抽象關鍵字不可以和這些關鍵字共存?private、static、final抽象類別和一般類的異同點:相同點:抽象類別和一般類都是用來描述事物的,都在內部定了成員。不同點:一般類有足夠的資訊描述事物。抽象類別描述事物的資訊有可能不足。一般類中不能定義抽象方法,只能定非抽象方法。抽象類別中可定義抽象方法,同時也可以定義非抽象方法。一般類可以被執行個體化。抽象類別不可以被執行個體化。抽象類別一定是個父類,因為需要子類覆蓋其方法後才可以對子類執行個體化。 17、繼承和構造氹數子類的執行個體化過程:子類中所有的建構函式預設都會訪問父類中的空參數的建構函式。為什麼子類執行個體化的時候要訪問父類中的建構函式呢?那是因為子類繼承了父類,擷取到了父類中內容(屬性),所以在使用父類內容之前,要先看父類是如何對自己的內容進行初始化的。所以子類在構造對象時,必須訪問父類中的建構函式。注意:supre語句必須要定義在子類建構函式的第一行。因為父類的初始化動作要先完成。 18、final關鍵字final是一個修飾符,可以修飾類,方法,變數。final修飾的類不可以被繼承。final修飾的方法不可以被覆蓋。final修飾的變數是一個常量,只能賦值一次。為什麼要用final修飾變數。其實在程式如果一個資料是固定的,那麼直接使用這個資料就可以了,但是這樣閱讀性差,所以它該資料起個名稱。而且這個變數名稱的值不能變化,所以加上final固定。 19、抽象類別和介面的異同點相同點:都是不斷向上抽取而來的。不同點:抽象類別需要被繼承,而且只能單繼承。介面需要被實現,而且可以多實現。抽象類別中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法。介面中只能定義抽象方法,必須由子類去實現。 20、一個對象執行個體化過程
Person p = new Person();
JVM會讀取指定的路徑下的Person.class檔案載入進記憶體,並會先載入Person的父類(如果有直接的父類的情況下).在堆記憶體中的開闢空間,分配地址。並在對象空間中,對對象中的屬性進行預設初始化。調用對應的建構函式進行初始化。在建構函式中,第一行會先到調用父類中建構函式進行初始化。父類初始化完畢後,再對子類的屬性進行顯示初始化。在進行子類建構函式的特定初始化。初始化完畢後,將地址值賦值給引用變數。

Java基本概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.