很多朋友在初學(xué)編程時(shí),經(jīng)常會(huì )有這樣的苦惱,在種類(lèi)繁多的諸如C、C++、C#、GO、Java等開(kāi)發(fā)語(yǔ)言中,到底該選擇哪種開(kāi)發(fā)語(yǔ)言來(lái)作為自己的主攻方向呢?
作為有多年開(kāi)發(fā)經(jīng)驗的IT從業(yè)人員,我個(gè)人比較推崇通用編程語(yǔ)言C++和Java,這兩門(mén)語(yǔ)言長(cháng)期占據著(zhù)全球開(kāi)發(fā)語(yǔ)言排行榜的前兩位!今天我們先來(lái)介紹一下Java開(kāi)發(fā)語(yǔ)言。
1、概述
多年以來(lái),Java始終高居*受歡迎的編程語(yǔ)言榜首位,很多科技公司都是使用Java來(lái)開(kāi)發(fā)軟件和應用程序。Java是Web系統后臺開(kāi)發(fā)的*語(yǔ)言,也是大型互聯(lián)網(wǎng)公司必備的開(kāi)發(fā)語(yǔ)言,社會(huì )需求量很大。
Java具有面向對象、分布式、健壯性、安全性、平臺獨立與可移植性(運行在Java虛擬機上)、多線(xiàn)程、動(dòng)態(tài)性等特點(diǎn),擁有很好的跨平臺能力,是一種強類(lèi)型語(yǔ)言??梢跃帉?xiě)桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等,是很多程序員*喜歡的編程語(yǔ)言。
Java也是封裝性*強的語(yǔ)言,幾乎封裝了所有常用的功能,比如常用文件的上傳與下載、郵件的接收與發(fā)送、JSON操作庫、線(xiàn)程池、數據庫操作等功能,這些功能以jar包的方式提供,簡(jiǎn)單易用,還具有良好的擴展性。開(kāi)發(fā)人員只需要根據自己的業(yè)務(wù)需要,將這些功能組裝起來(lái)就好了!
除了Java開(kāi)發(fā)人員,做接口測試和自動(dòng)化測試的測試人員也會(huì )使用到Java,使用Java編寫(xiě)測試腳本和測試代碼。
所以學(xué)好Java語(yǔ)言后,可以從事Web后臺開(kāi)發(fā)工程師、大數據工程師、安卓APP應用程序開(kāi)發(fā)工程師、自動(dòng)化測試和接口測試工程師等崗位。
2、Java的技術(shù)體系
開(kāi)始學(xué)習Java時(shí),我們都要從*基礎的學(xué)起,包括面向對象特性、基本數據類(lèi)型、抽象類(lèi)、接口、GUI圖形編程、IO、網(wǎng)絡(luò )編程等知識點(diǎn)。其中,GUI圖形編程,主要用于桌面應用程序的開(kāi)發(fā),現在很少有公司在使用Java開(kāi)發(fā)桌面客戶(hù)端程序了,所以只需要大概了解一下,不必深入研究。
學(xué)完這些基礎知識點(diǎn)之后,我們一般需要了解一下用于Web前端編程的Html、CSS、Javascript等相關(guān)知識,生成動(dòng)態(tài)網(wǎng)頁(yè)的Jsp和Servlet也需要了解一下。
這些知識點(diǎn)掌握以后,就需要研究Java的框架部分了 。*早使用的框架是SSH,即Struts+Spring+Hibernate,其中Struts用于流程控制,Spring用于業(yè)務(wù)流轉,Hibernate用于對數據庫的操作。目前這個(gè)框架已經(jīng)很陳舊了,基本不用了,但還是要了解這個(gè)框架的實(shí)現思路和核心思想的。
現在常用的框架是SpringMvc和SpringBoot,這兩個(gè)框架也是我們必須要掌握的。掌握上述基礎與框架之后,基本就可以輕松應對Java相關(guān)的工作了。
在掌握上述Java體系技術(shù)點(diǎn)以后,我們在日常的開(kāi)發(fā)工作中還會(huì )用到很多中間件技術(shù),比如應用服務(wù)器JBoss、緩存技術(shù)Memcached和Redis、負載均衡Nginx、消息隊列RabbitMQ、Kafka、Dubbo、Zookeeper等、Mongodb之類(lèi)的非關(guān)系數據庫、分布式框架Hadoop、應用容器引擎Docker、大數據計算引擎Spark、云計算平臺OpenStack、分布式文件存儲系統Gluster和FreeNAS、項目構建Maven、Gradle等、代碼管理Git、持續集成Jenkins等。熟練掌握這些技術(shù)點(diǎn),是從初級工程師到中級工程師,到高級工程師的必經(jīng)之路。
3、Java語(yǔ)言與大數據
Java是目前使用*為廣泛的編程語(yǔ)言之一,很多大數據處理技術(shù)與框架都是用Java寫(xiě)的。分布式文件系統框架Hadoop,就是用Java開(kāi)發(fā)的,在分布式環(huán)境下提供了海量數據的處理能力,Hadoop已經(jīng)成為大數據的標配框架。
高性能、面向列、可伸縮的分布式存儲系統Hbase也是用Java開(kāi)發(fā)的,利用Hbase技術(shù)可在廉價(jià)PC Server上搭建起大規模結構化數據集群。開(kāi)源分布式數據庫管理系統Cassandra、為云構建的分布式RESTful搜索引擎Elasticsearch也都是使用Java實(shí)現的。因此Java是大數據工程師*喜歡的編程語(yǔ)言。想學(xué)好大數據,掌握Java基礎是必不可少的。
4、Java語(yǔ)言的IDE開(kāi)發(fā)環(huán)境
(1)IntelliJ IDEA(*好的Java開(kāi)發(fā)環(huán)境,五星推薦)
IntelliJIDEA由捷克JetBrains公司(由三個(gè)俄羅斯天才程序員在捷克創(chuàng )建的公司)出品的*為重量級的IDE開(kāi)發(fā)工具,主要用于Java開(kāi)發(fā),集成了廣泛通用的組件,可以用于Web和安卓移動(dòng)應用程序開(kāi)發(fā)。
IntelliJ IDEA在業(yè)界被公認為*好的Java開(kāi)發(fā)工具,是廣大軟件開(kāi)發(fā)人員*喜愛(ài)、也*為推崇的一款I(lǐng)DE開(kāi)發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構、JavaEE支持、各類(lèi)版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng )新的GUI設計等方面的功能可以說(shuō)是超常的。
它的旗艦版本還支持HTML,CSS,PHP、MySQL,Python等。免費版只支持Java等少數語(yǔ)言。
很多使用過(guò)IntelliJ IDEA的同事,都深深地被IDEA折服,均表示這是見(jiàn)到過(guò)的*好用的Java語(yǔ)言的開(kāi)發(fā)環(huán)境。
(2)Android Studio
開(kāi)發(fā)安卓系統上運行的APP應用程序,一般都會(huì )使用Google的Android Studio開(kāi)發(fā)環(huán)境。Android Studio是谷歌推出的一個(gè)用于開(kāi)發(fā)Android APP應用程序的集成開(kāi)發(fā)工具,它也是基于IntelliJ IDEA開(kāi)發(fā)的。谷歌在IntelliJ IDEA社區版本的基礎上剔除了其他的功能,添加了支持Android開(kāi)發(fā)的插件,可以說(shuō)Android Studio是弱化版的IntelliJ IDEA。
(3)Eclipse
IBM的Eclipse是被廣泛應用的免費開(kāi)源的Java編輯器和IDE。Eclipse對Java進(jìn)行的深度設計,擁有功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,對HTML、Struts、JSP、CSS、Javascript、SQL,Hibernate,Spring等做了完整的封裝,利用它可以很好的提高Java開(kāi)發(fā)效率。
Eclipse有很好的插件機制,支持各種各樣的擴展和插件,比如SpotBugs、Checkstyle等。另外,Eclipse也是一個(gè)跨平臺的IDE,支持Windows、Linux和Mac OS X等系統。
(4)MyEclipse
MyEclipse是在Eclipse 基礎上加上自己的插件開(kāi)發(fā)而成的功能強大的企業(yè)級集成開(kāi)發(fā)環(huán)境,主要用于Java、Java EE以及移動(dòng)應用的開(kāi)發(fā)。在*新版本的MyEclipse中,配合CodeMix使用支持也十分廣泛,尤其是對各種開(kāi)源產(chǎn)品和主流開(kāi)發(fā)框架的支持相當不錯。目前已支持PHP、Python、Vue、Angular、React等語(yǔ)言和框架開(kāi)發(fā)。