WebServer Project-01-反射

簡介

上網瀏覽網頁,離不開服務器,客戶請求頁面,服務器響應頁面,響應的內容是根據每一個web請求來產生動態內容的,其內部即啓動多個線程來產生不一樣內容。這種請求響應的交互,都是基於HTTP協議的。
固然如今隨着業務愈來愈多樣化,web服務器變得複雜了,擁有了像緩存、安全和session管理這些附加功能。
web請求都是使用Request和Response式的交流。java

  • OOP
  • 容器
  • IO
  • 多線程
  • 網絡編程
  • XML解析
  • 反射
  • HTML
  • HTTP協議

1.反射

反射Reflection:把Java類中的各類結構(方法、熟悉、構造器、類名)映射成一個個的Java對象。利用反射技術能夠對一個類進行解剖,反射是框架設計的靈魂。web

舉個例子:開了一個工廠山寨iphone,須要圖紙;
1.買一個手機,進行拆分,研究結構
2.買通iphoone工程師,直接拿到圖紙
3.存在銀行的圖紙,咱們的工程師能夠去偷(定位)編程

package server.study;

import java.lang.reflect.InvocationTargetException;

/**
 * Created by 16114 on 2019/8/22.
 * 反射:把Java類的各類結構(方法、屬性、構造器、類名)映射成一個個的Java對象
 * 1.獲取Class對象(看Class API)
 * 三種方式:Class.forName("完整路徑")
 * 2.能夠動態建立對象clz.getConstructor().newInstance()
 */
public class ReflectTest {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        //三種方式
        //1.對象.getClass()
        Iphone iphone = new Iphone();
        Class clz = iphone.getClass();
        //2.類.class()
        clz = Iphone.class;
        //3.Class.forName("包名.類名")  //耦合度低,動態添加
        clz = Class.forName("server.study.Iphone");

        //建立對象
        Iphone iphone1 = (Iphone)clz.newInstance(); //不推薦,不安全
        System.out.println(iphone1);
        //java 9 用構造器
        Iphone iphone2 = (Iphone)clz.getConstructor().newInstance();
        System.out.println(iphone2);
    }
}

class Iphone{
    public Iphone(){

    }
}
相關文章
相關標籤/搜索