1. 程式人生 > >Java面試練習與總結第一回(spring+方法的重寫與過載)

Java面試練習與總結第一回(spring+方法的重寫與過載)

Java面試練習與總結第一回(spring+方法的重寫與過載)


臨近Java面試的練習與總結,範圍可由JavaSE到資料庫、Web前端再到JavaEE初級、各類框架、Linux系統等方面,包含知識點和疑難問題點,系列連載發文,可供求職者參閱。

1.SpringMVC的常用註解

  • @RequestMapping:處理請求地址對映的註解,常用在類和方法上,若用在類上表示作為類中方法的父路徑;
    屬性:
    • value:指定請求的實際 url;
    • method:指定請求的method型別(get、post、put、delete);
    • params:指定Request中必須包含的引數,該請求才生效;
    • header:指定Request的請求體中必須某些header的值,該請求才生效;
    • consumes:指定Request請求提交的內容型別(如:application/Json,text/html);
    • produces: 指定返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回。
  • @RequestParam:繫結單個請求引數值,request.getParameter(“xxx”);
    屬性:
    • value:引數名稱;
    • required:是否必須,預設true,表示請求中必須包含該引數,否則丟擲異常;
    • defaultValue:預設值,指定請求中沒有該引數時的值,此屬性使得required的值改為false;
  • @PathVariable:繫結URI地址上的路徑變數;
    屬性:
    • value:引數值;
    • required:是否必須;
  • @ResponseBody:作用於Controller層的方法之上,可以整個返回結果以某種格式返回,如Json、text;
  • @ModelAttribute:被註釋的引數或方法新增到Model中,當註釋在方法時,請求處理方法Action會將該方法變成一個非請求處理的方法,但其它Action被呼叫時會首先呼叫該方法;
  • @SessionAttributes:註釋在類上,可以將指定屬性值存到Session作用域中;
  • @CookieValue:獲取Cookie中的值;
  • @GetMapping:是一個組合註解,是@RequestMapping(method = RequestMethod.GET)的縮寫。該註解將HTTP Get 對映到 特定的處理方法上;
  • @PostMapping:與上同理;
  • @PutMapping:與上同理;
  • @DeleteMapping:與上同理;
  • @JsonFormate:將json、xml轉換成Java物件,出自於Jackson;
  • @DateTimeFormat:是spring自帶的處理框架,主要用於將時間格式化;
  • @JSONField:來源於fastjson,是阿里巴巴的開源框架,主要進行JSON解析和序列化。

2. 簡述對Spring IoC的理解

IoC:Inversion of Control,即“控制反轉”,是一種設計思想,在Java設計開發中,IoC意味著將物件的設計交給容器控制。

  • 為什麼有IoC容器?Spring框架至於Java Bean的管理,是典型的工廠設計模式,而建立Bean的Factory就是IoC容器;所以IoC容器的出現為開發者提供了更多的便利和基礎服務;
  • 什麼是IoC?IoC是一種設計思想,主要是為了完成物件的建立和依賴的管理注入。
  • IoC技術實現原理?我們都知道IoC既是生成Bean的工廠,而要知道工廠是如何產生物件的,我們需要看具體的IOC容器實現,spring提供了許多IOC容器的實現。比如XmlBeanFactory,ClasspathXmlApplicationContext等。
  • IoC和DI之間的關係?DI—Dependency Injection,即“依賴注入”,IoC通過DI動態的向某個物件提供它所需要的其他物件。

3. 方法的過載與方法的重寫

區別 過載 重寫
英文名 Overloading Overiding
範圍 同一類 不同類(繼承關係)
方法名 相同 相同
引數列表 不同 相同
修飾符 無關 大於或等於父類
返回值型別 不同 相同(或小於父類)
面向物件思想 多型 繼承
丟擲父類沒有的異常 可以 不可以