網頁

2022/9/20

Java工程師面試問題 20220920

最近開始面試,直覺回答第一個被問的問題。


  1. Q:談談對於AOP的理解,另外在系統設計上通常會在什麼功能實作。
    A:AOP是Java的流程橫切技術,可以動態代理proxy或cglib實現,可在多個流程中插入相同的特定邏輯,通常用在日誌紀錄、稽核紀錄、效能監測、權限控管等。
  2. Q:如何預防SQL Injection與XSS?
    A:對前端使用者的輸入進行跳脫處理,取代或禁用HTML、JavaScript及SQL有特殊作用的字符。在撰寫存取資料庫的程式時要避免直接用字串串接來建立SQL,例如Java應改用PreparedStatement或Stored Procedure。
  3. Q:批次作業(Batch)通常需處理大量資料,其程式撰寫時有那些需特別注意的地方?
    A:
    1. 批次作業會異動的資料範圍。
    2. 執行的排程是否會與其他作業衝突導致資料不一致。
    3. 批次作業無法如期執行的計畫。
    4. 批次作業中發生錯誤的處理計畫。
    5. 批次作業結果錯誤的復原計畫。
    6. 批次是否可以多執行緒處理提高效能。
  4. Q:DB效能不足回應緩慢請說明3種解決方法。
    A:SQL優化、快取、分表、分資料庫。
  5. Q:請您說明一下MVC與三層式架構(3-tier architecture)
    A:是指將網路應用服務程式拆分為展現層(View)、控制層(Controller)與邏輯層(Model)。在現今前後端分離為主流的情況展現層為前端負責,後端則為REST為基礎的控制層負責將前端的請求轉交給邏輯層進行業務邏輯處理,好處是增加程式的重用性與維護性。

從2021年7月開始到現在已經一年多沒寫Java了,要開始複習一下。

沒有留言:

張貼留言