1. 程式人生 > >java-面試筆試寶典書筆記

java-面試筆試寶典書筆記

面向物件

  • 較高開發效率
  • 保證程式的魯棒性
  • 保證程式的高可維護性

(我覺得下面解釋的不怎麼好,待更新) 封裝,對類的資料和方法實行保護,對可信的類可以操作,不可信的類進行資訊隱藏 繼承,層次模型,允許和鼓勵類的重用,子類可以從父類繼承方法和成員變數,可以修改或增加新的方法,使之適合新的需要,只能繼承public和protected修飾的成員變數和方法 多型,程式碼重用的重要機制

  • 方法的過載 一個類中體現,不同引數型別,個數,順序 不能通過
  • 方法的覆寫(執行時多型)

java程式初始化順序

1父類優先於子類 2靜態變數/物件優先,只初始化一次 3按照順序初始化

父類靜態變數-父類靜態程式碼塊-子類靜態變數-子類靜態程式碼塊-父類程式碼塊-子類程式碼塊-父類構造方法-子類構造

介面和抽象類

java是單繼承,所以引入介面這個概念

Tables 介面 抽象類
概念 抽象方法的集合,特殊的抽象類
包含內容 均為抽象方法(1.8之後可以使用default,寫出方法體,不是必須繼承),public修飾,常量用public static final修飾,必須賦初始值 抽象方法的類一定是抽象類,可以有方法體
繼承方法 類可以實現多個介面,介面可以繼承介面 單繼承,抽象類可以繼承具體類
使用場景 功能不需要累加 功能需要累計,充當公共類

相同點: 1.都不能例項化 2.

Object類中的方法

clone()方法 返回一個Object的複製,返回的是一個新的物件,而不是一個引用 1)實現clone需要繼承Cloneable介面(標識介面) 2)重寫Object類的clone方法 3)在方法中呼叫Object o = super.clone();實現淺複製 finalize() 垃圾回收器回收時會呼叫這個方法,可以覆寫對其他資源的回收(檔案關閉)

什麼是反射

反射能在執行時對類進行裝載,增加程式靈活性,不恰當的使用反射會影響系統性能

得到一個物件所屬的類; 獲取一個類所有成員變數和方法; 在執行時建立物件; 在執行時呼叫物件的方法; 執行時動態建立類;

Class c = Class.forName("類名");
類名 ob = (類名)c.newInstence();

如何獲取class 1)如上面示例 2)列名.class 3)示例.getClass();

獲取父類名 getClass().getName(); this.getSuperClass().getName(); java建立物件的4個方法 1)new 2)反射出示例,如上示例 3)通過clone方法 4)反序列化的方式建立物件(待完善)

this,super

super()必須為建構函式第一條語句

switch

只支援整型例如int以及包裝類Integer,byte/short/char能夠隱式轉換為int,long/float/double/String不能隱式的轉為int,所以不能用作switch表示式

jdk1.7之後String可以放入switch,請注意相容性!!!呼叫的hashcode