java機制總結 一

lky1234發表於2017-02-27

學了這麼久該寫一些總結了,總結嗎,肯定要有高度要有新的見解,那些書上的重複的我就不寫了,要帶嗎的私信我! 說說java是怎麼實現的,怎樣先讓程式跑起來! 首先java是一門語言,所以要想我們可以使用就要有自己的語義,比如英文one代表1一樣,首先他要能讓我們理解。然後要有語法,就是怎樣使用比如怎麼構造類,怎麼實現等都需要語法;這些都是對我們使用者而言才會有語法,語意,而java的底層是怎麼把他實現的,比如System.out.pritln("hellow")怎麼實現就需要機制。java自己執行的機制。 我們所寫的錯誤大部分都是語法和語義錯誤很少涉及機制,但我認為機制是最重要的,你懂得他的機制你就知道為什麼錯了,他們的錯誤在哪,怎樣修改;記住,我們真正使用的是java機制。不同的機制使用不同實現方法 對於機制,他們之間都是包容或者對立的,他們之間不能存在明顯的衝突,否則就沒有java了;就像一個女的對你說“你好討厭”;可能是討厭你,可能還有深意,java機制也是這樣可能存在不同的機制程式碼就會產生歧義,所以我們必須瞭解它。 我先羅列一下java中的機制吧 1,引用機制 2,多型機制 3,類載入機制 4,反射機制 5,泛型機制 6,列舉機制 7,繼承機制 8,封裝機制 就先說這幾個常用的吧 一:何為引用機制 就是把類封裝成物件,直接用他的型別引用指向它,它是怎麼實現,使用引用記錄物件首地址得到的,所以對於引用的操作和直接操作物件是一樣的。 但有一個特例就是字串,他的引用只具有讀屬性,不可以通過引用對其進行其他的操作。 還有一個誤區,基本型別是沒有引用的,他是直接被載入到棧堆上的,不可以被引用;int m=2;此時m就是2,他是對2所儲存地址的命名。 二:多型機制 實現多型我們必須知道他要滿足兩個條件 a:可以向上轉型 b:可以動態繫結 向上轉型是在編譯期是實現,怎樣檢查B extends A; A p=new B()怎樣是實現; 直接在編譯期檢查B向上有沒有A類,存在編譯通過。 那麼A型別的引用又怎樣判斷實現哪個子類的哪個方法(據愛如A的子類很多)。 這是就需要用到動態繫結機制,因為p指向的是new B();所以我們可以根據引用找到他的型別,再找到他的對應方法然後實現(記住光有物件還不夠實現方法,必須還要知道他的型別,這樣java底層才可以執行);比如現在呼叫p的x方法:p.x();這樣引用p就可以動態的繫結到不同物件的x方法上(注意:同一個應用繫結同一個方法名上但實現的方法不同)---------這個在繼承機制中可能產生衝突具體百度

三,類載入機制 載入類的先後順序 記住java載入類是按需載入,載入順序也是為了實現自己的語義 a:首先需要編譯你的程式,載入你的.java檔案 b:編譯完成後生成對應的類檔案.class為執行做準備 c:呼叫主函式動態的載入類,如果中間存在另一個類的靜態方法(注意構造器是隱士的靜態方法)載入類中的靜態域為它們在堆上分配一塊初始化為0的堆(記住對方法內部無效) d:初始化-----對引用加null;對陣列等初始化0;對給成員變數的賦值初始化(方法中變數不會初始化,他可能是任意值) e:執行構造器中初始化的方法,並確認物件是否成功構建

好了明天繼續!

相關文章