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