新冠肺炎疫情讓咱們的2020充滿挑戰。不過一年之計在於春,隨着三月春日的來臨,各大廠實習生招聘也已經開始啦,是時候翻開新的一頁啦,快來一塊兒溫習下Java吧!java
Java 是一門純粹的面向對象編程語言,它吸取了C++的各類優勢,還努力摒棄了C++裏難以理解的多繼承、指針等概念,真正地實現了面向對象理論,於是具備功能強大和簡單易用兩個特徵。面試
除了基礎語法以外,Java還有許多必須弄懂的特性:封裝、繼承、多態。此外還有泛型、反射等特性,不少框架的技術都依賴它們,好比 Spring 核心的 IOC 和 AOP,都用到了反射。並且 Java 自身的動態代理也是利用反射實現的。編程
此外 Java 還有一些標準庫也很是常見,好比集合、I/O、併發,這些類型與功能豐富的庫幾乎在 Web 開發中無處不在,也是面試常常會被問到的,因此在自學 Java 後端以前,不妨先打好這些基礎,另外 Java8 的一些新特性咱們也要重點關注,好比 Lambda 表達式、集合和 Stream 流操做、全新的 Date API 等等。後端
面向過程安全
優勢:性能比面向對象好,由於類調用時須要實例化,開銷比較大,比較消耗資源。
缺點:不易維護、不易複用、不易擴展併發
面向對象框架
優勢:易維護、易複用、易擴展,因爲面向對象有封裝、繼承、多態性的特性,能夠設計出低耦合的系統,使系統 更加靈活、更加易於維護
缺點:性能比面向過程差jvm
封裝
隱藏對象的屬性和實現細節,僅對外提供公共訪問方式,將變化隔離,便於使用,提升複用性和安全性。編程語言
繼承
提升代碼複用性;繼承是多態的前提。函數
多態
父類或接口定義的引用變量能夠指向子類或具體實現類的實例對象。提升了程序的拓展性。
單一職責原則SRP(Single Responsibility Principle)
類的功能要單一,不能一應俱全,跟雜貨鋪似的。
開放封閉原則OCP(Open-Close Principle)
一個模塊對於拓展是開放的,對於修改是封閉的,想要增長功能熱烈歡迎,想要修改,哼,一萬個不樂意。
裏式替換原則LSP(the Liskov Substitution Principle LSP)
子類能夠替換父類出如今父類可以出現的任何地方。好比你能表明你爸去你姥姥家幹活。哈哈~~
依賴倒置原則DIP(the Dependency Inversion Principle DIP)
高層次的模塊不該該依賴於低層次的模塊,他們都應該依賴於抽象。抽象不該該依賴於具體實現,具體實現應該依賴於抽象。就是你出國要說你是中國人,而不能說你是哪一個村子的。好比說中國人是抽象的,下面有具體的xx省,xx市,xx縣。你要依賴的抽象是中國人,而不是你是xx村的。
接口分離原則ISP(the Interface Segregation Principle ISP)
設計時採用多個與特定客戶類有關的接口比採用一個通用的接口要好。就好比一個手機擁有打電話,看視頻,玩遊戲等功能,把這幾個功能拆分紅不一樣的接口,比在一個接口裏要好的多。
Java工具包的基本構成
JVM
Java Virtual Machine是Java虛擬機,Java程序須要運行在虛擬機上,不一樣的平臺有本身的虛擬機,所以Java語言能夠實現跨平臺。
JRE
Java Runtime Environment包括Java虛擬機和Java程序所需的核心類庫等。核心類庫主要是java.lang包:包含了運行Java程序必不可少的系統類,如基本數據類型、基本數學函數、字符串處理、線程、異常處理類等,系統缺省加載這個包
若是想要運行一個開發好的Java程序,計算機中只須要安裝JRE便可。
JDK
Java Development Kit是提供給Java開發人員使用的,其中包含了Java的開發工具,也包括了JRE。因此安裝了JDK,就無需再單獨安裝JRE了。其中的開發工具:編譯工具(javac.exe),打包工具(jar.exe)等