原文鏈接:https://zhongyi.io/2017/04/java-concepts/
最近學習 Java 語言,將一些常見概念羅列到一起,方便理解,大多來源于維基百科。
Java
Java是一種廣泛使用的計算機編程語言,擁有跨平臺、面向?qū)ο?、泛型編程的特性,廣泛應用于企業(yè)級Web應用開發(fā)和移動應用開發(fā)。
OOP
面向?qū)ο蟪绦蛟O計(英語:Object-oriented programming,縮寫:OOP)是種具有對象概念的程序編程范型,同時也是一種程序開發(fā)的抽象方針。它可能包含數(shù)據(jù)、屬性、代碼與方法。對象則指的是類的實例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性,對象里的程序可以訪問及經(jīng)常修改對象相關(guān)連的數(shù)據(jù)。在面向?qū)ο蟪绦蚓幊汤?,計算機程序會被設計成彼此相關(guān)的對象。
Maven
Apache Maven,是一個軟件(特別是Java軟件)項目管理及自動構(gòu)建工具,由Apache軟件基金會所提供?;陧椖繉ο竽P停s寫:POM)概念,Maven利用一個中央信息片斷能管理一個項目的構(gòu)建、報告和文檔等步驟。
Gradle
Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構(gòu)工具。它使用一種基于Groovy的特定領(lǐng)域語言來聲明項目設置,而不是傳統(tǒng)的XML。
Ant
Apache Ant,是一個將軟件編譯、測試、部署等步驟聯(lián)系在一起加以自動化的一個工具,大多用于Java環(huán)境中的軟件開發(fā)。
Servlet
Servlet(Server Applet),全稱Java Servlet,未有中文譯文。是用Java編寫的服務器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。
Dubbo
Dubbo是Alibaba開源的分布式服務框架,它最大的特點是按照分層的方式來架構(gòu),使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。從服務模型的角度來看,Dubbo采用的是一種非常簡單的模型,要么是提供方提供服務,要么是消費方消費服務,所以基于這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。
Spring
Spring框架是由于軟件開發(fā)的復雜性而創(chuàng)建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合性的角度而言,絕大部分Java應用都可以從Spring中受益。
Spring Boot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導者。
IoC
控制反轉(zhuǎn)(Inversion of Control,縮寫為IoC),是面向?qū)ο缶幊讨械囊环N設計原則,可以用來減低計算機代碼之間的耦合度。其中最常見的方式叫做依賴注入(Dependency Injection,簡稱DI),還有一種方式叫“依賴查找”(Dependency Lookup)。通過控制反轉(zhuǎn),對象在被創(chuàng)建的時候,由一個調(diào)控系統(tǒng)內(nèi)所有對象的外界實體,將其所依賴的對象的引用傳遞給它。也可以說,依賴被注入到對象中。
AOP
面向側(cè)面的程序設計(aspect-oriented programming,AOP,又譯作面向方面的程序設計、觀點導向編程、剖面導向程序設計)是計算機科學中的一個術(shù)語,指一種程序設計范型。該范型以一種稱為側(cè)面(aspect,又譯作方面)的語言構(gòu)造為基礎,側(cè)面是一種新的模塊化機制,用來描述分散在對象、類或函數(shù)中的橫切關(guān)注點(crosscutting concern)。