天天看點

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

目錄

一、依賴注入

二、方法的進棧與出棧順序

三、抽象類與接口

四、JavaWeb會話綁定監聽

五、字元串

一、依賴注入

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

解析:

依賴注入(Dependency Injection,簡稱DI)是一個重要的面向對象程式設計的法則來削減計算機程式的耦合問題。

依賴注入應用比較廣泛。可以使應用程式的配置和依賴性規範與實際的應用程式代碼分開。

其中一個特點就是通過文本的配置檔案進行應用程式元件間互相關系的配置,而不用重新修改并編譯具體的代碼。

是以依賴注入降低了元件之間的耦合性,而不是使元件之間互相依賴。

參考位址:https://blog.csdn.net/sinat_21843047/article/details/80297951

二、方法的進棧與出棧順序

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

解析:

本題使用了遞歸調用的方法,方法首先會按照遞歸調用的順序進棧,

出棧的時候,執行的是return語句,如果沒有return語句則直接出棧,進而銷毀。

還有個坑點就是第七行if語句後面跟的是分号;是以第八行的列印語句無論是否滿足條件都會執行

if (number % 2 != 0) System.out.print(split((number + 1) / 2));
    System.out.print(split(number / 2));
           

是以當number=2的時候雖然不滿足條件number % 2 != 0,但是會執行System.out.print(split(number / 2));,是以列印出來的是1

三、抽象類與接口

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

解析:

  • A:抽象類可以聲明并定義構造函數,但是不可以建立執行個體對象,隻能用來初始化内部變量,并提供子類實作使用
    • 即使沒有定義構造函數,系統會預設添加無參構造,子類繼承時子類的構造函數會隐式調用super()方法調用抽象類的構造方法
  • B:接口是不允許執行個體化,是以根本就沒有構造函數
  • C:抽象類不允許多繼承
  • D:jdk1.8後接口中用static或default修飾的方法可以有方法體,1.8之前不可以

四、JavaWeb會話綁定監聽

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

解析:

  • HttpSessionAttributeListener:可以實作此偵聽器接口擷取此web應用程式中會話屬性清單更改的通知;
  • HttpSessionBindingListener:當該對象從一個會話中被綁定或者解綁時通知該對象,這個對象由HttpSessionBindingEvent對象通知。這可能是servlet程式顯式地從會話中解綁定屬性的結果,可能是由于會話無效,也可能是由于會話逾時;
  • HttpSessionObjectListener:沒有該接口API;
  • HttpSessionListener:當web應用程式中的活動會話清單發生更改時通知該接口的實作類,為了接收該通知事件,必須在web應用程式的部署描述符中配置實作類;
  • HttpSessionActivationListener:綁定到會話的對象可以偵聽容器事件,通知它們會話将被鈍化,會話将被激活。需要一個在虛拟機之間遷移會話或持久會話的容器來通知所有綁定到實作該接口會話的屬性。

五、字元串

牛客網Java錯題總結(7)一、依賴注入二、方法的進棧與出棧順序三、抽象類與接口四、JavaWeb會話綁定監聽五、字元串

解析:

  • A:'a'是字元,'      a'這個是空格和a,必須要用"     a"才可以;
  • B:String有length()方法
  • C:int無法直接轉成String類型
  • D:尾部添加字元串”100“(其他類型資料和字元串類型資料運算時,自動轉為字元串類型)