JavaWeb 的概念 什麼是 JavaWeb? JavaWeb 是指,所有通過 Java 語言編寫可以通過瀏覽器訪問的程式的總稱,叫 JavaWeb。 JavaWeb 是基於請求和響應來開發的。 什麼是請求? 請求是指客戶端給伺服器發送數據,叫請求 Request。 什麼是響應? 響應是指伺服器給 ...
轉自:
http://www.java265.com/JavaCourse/202205/3351.html
下文筆者講述Class.forName()方法的功能簡介說明,如下所示:
class對象簡介說明
class對象用於表示類 每一個類在JVM中都對應一個class對象 jvm中將使用class對象加入到類載入器中 註意事項: 1.java程式運行之前,並不會將所有的Class對象放入jvm中 2.每一個****.class類在jvm中只會對應一個Class實例對象 3.Class類只有一個私有構造函數,並且Class對象只能由JVM創建和載入 4.Class類對象功能:運行時提供和獲取某個對象的類型信息
獲得class對象的三種方法
1.調用Object類的getClass()方法來得到Class對象 如: ObjectTest t; Class c1 = t.getClass(); 2、使用Class類的中靜態forName()方法獲得與字元串相應的Class對象 如: Class c2=Class.forName("ObjectTest") ObjectTest:須是介面或類的名字 class.forname()語法: Class c=Class.forName("類的全限定名") 3、直接使用類名的class 如: Class c3 = User.class; Class c4 = int.class; Class c5 = Double[].class;
class的功能和方法
getname(): 以string類型返回class對象表示的實體(類,介面,數組,基本類型,void等)名稱 newInstance(): 創建一個實例,只能調用預設構造器 getsuperclass(): 返回class表示的實體超類的名稱 getClassLoader(): 返回該類的類載入器 getSimpleName(): 不辦含包名的類名 isInterfence: class對象是否表示某個介面
Class.forName()用法
Class.forName(xxx.xx.xx): 返回的是一個類 Class.forName(xxx.xx.xx)的功能: JVM查找並載入指定的類,也就是說JVM會執行該類的靜態代碼段 Class.forName是一個靜態方法,相同能夠用來載入類 Class.forName語法: Class.forName(String name, boolean initialize, ClassLoader loader) 或 Class.forName(String className) name:類的全名,initialize:是否初始化類,loader:載入時使用的類載入器 另外一種形式則相當於設置了參數 initialize的值為 true。loader的值為當前類的類載入器
Class.forName()應用場景簡介
A a = (A)Class.forName(“pacage.A”).newInstance(); 效果等同於 A a = new A();
newInstance和new關鍵字的區別
Java中工廠模式常使用newInstance()方法來創建對象 如 class c = Class.forName(“Example”); factory = (ExampleInterface)c.newInstance(); 其中ExampleInterface是Example的介面,也寫成如下形式: String className = “Example”; class c = Class.forName(className); factory = (ExampleInterface)c.newInstance(); ----或------ String className = readfromXMlConfig;//從xml 配置文件中獲得字元串 class c = Class.forName(className); factory = (ExampleInterface)c.newInstance(); 註意事項: 1.使用newInstance()方法時,這個類已經載入連接 而使用new關鍵字時,這個類可以沒有被載入 2.newInstance: 弱類型。低效率。只能調用無參構造。 new: 強類型。相對高效。能調用任何public構造。 3.Class.forName(“”)返回的是類。 Class.forName(“”).newInstance()返回的是object