java面試---反射

  1. 什麼是反射?
    反射是運行中的程序檢查自己和軟件運行環境的能力,它可以根據它發現的進行改變。
  2. 什麼是 java 序列化?什麼情況下需要序列化?
    序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化,將數據分解成字節流,以便存儲在文件中或在網絡上傳輸。
    用途:
    1)把對象的字節序列永久地保存到硬盤上,通常存放在一個文件中;
      2) 在網絡上傳送對象的字節序列。
  3. 動態代理是什麼?有哪些應用?
    動態代理:在程序運行時,運用反射機制動態創建而成。具有解耦意義,靈活,擴展性強。
    應用:Spring的AOP,加事務,加權限,加日誌
  4. 怎麼實現動態代理?
    動態代理實現:首先必須定義一個接口,還要有一個InvocationHandler(將實現接口的類的對象傳遞給它)處理類。再有一個工具類Proxy(習慣性將其稱爲代理類,因爲調用他的newInstance()可以產生代理對象,其實他只是一個產生代理對象的工具類)。利用到InvocationHandler,拼接代理類源碼,將其編譯生成代理類的二進制碼,利用加載器加載,並將其實例化產生代理對象,最後返回。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章