Java包括什么
經(jīng)過20多年的發(fā)展Java從最初嵌入在網(wǎng)頁中的Applet發(fā)展到幾乎各個開發(fā)領(lǐng)域,包括Web解決方案、大數(shù)據(jù)、人工智能、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計算等等。所以目前Java成為了程序員必須掌握的開發(fā)語言之一,相信在未來很長一段時間內(nèi),Java依然會是一門被廣泛使用的開發(fā)語言。
那么Java到底包括哪些內(nèi)容呢?答案首先要到Java的官方資料中查找。
這是Java官方給出的Java技術(shù)提綱,下面對這里面的技術(shù)進(jìn)行分別解讀:
JavaSE這是很多初學(xué)者最初學(xué)習(xí)Java就接觸的內(nèi)容,簡單的說就是Java的標(biāo)準(zhǔn)版,也是很多其他版本的母版(基礎(chǔ)版),JavaSE是學(xué)習(xí)Java技術(shù)的第一步,目前已經(jīng)更新到Java10版本。
這一部分從創(chuàng)建一個基本的Java類開始,描述Java面向?qū)ο缶幊痰暮诵母拍钜约熬幊踢^程:類的設(shè)計、對象的創(chuàng)建、方法的調(diào)用。細(xì)節(jié)包括類、對象、屬性、方法、封裝、繼承、多態(tài)、異常、集合、線程等,也包括一些諸如java.time包中的類如何使用,以及如何部署Java程序。
這一部分主要講解如何使用Swing和JavaFX,這兩個技術(shù)是目前使用Java做圖形用戶界面的主要解決方案。JavaFX出現(xiàn)的時間較晚,很多使用JavaFX的程序員對這個技術(shù)的評價還是非常不錯的,隨著版本的更新,相信JavaFX將會得到更好的發(fā)展(我之前的文章中有針對JavaFX的詳細(xì)介紹)。Swing是在AWT基礎(chǔ)上開發(fā)的輕量級GUI解決方案,圖形組件采用了MVC結(jié)構(gòu),操作簡單且功能強(qiáng)大,唯一的遺憾是速度偏慢。
這部分涵蓋了JavaSE中的諸多細(xì)節(jié),包括網(wǎng)絡(luò)編程、平臺適配、JavaBeans、JDBC、JMX、JNDI、JAXP、JAXB、RMI、反射、安全、多媒體等內(nèi)容。這里面每一個內(nèi)容都需要寫上一本書才能完全講解清楚,包含的細(xì)節(jié)也非常多,這里面的RMI是Java分布式編程的基礎(chǔ)(我之前的文章中有關(guān)于RMI編程的細(xì)節(jié)描述),JDBC則是如何通過Java操作數(shù)據(jù)庫的API等等。
這里面涵蓋的技術(shù)在我之前的頭條文章中都幾乎有所涉及,感興趣的朋友可以關(guān)注一下。
JavaEEJavaEE此前一直是官方主推的企業(yè)級Java解決方案,里面涵蓋了大量企業(yè)級開發(fā)的API,目前Oracle公司已經(jīng)把JavaEE交給Eclipse基金會來管理了,已經(jīng)改名為JakartaEE了,也許未來EE版會帶來更多改變。雖然已經(jīng)脫離了官方陣營,今天也簡單描述一下JavaEE版都包含了哪些內(nèi)容。
JavaEE版本涵蓋的主要內(nèi)容是圍繞EJB展開的,Java官方為企業(yè)級開發(fā)提供了三種EJB方案,分別是會話Bean、實體Bean和消息驅(qū)動Bean。
圍繞這三種EJB企業(yè)可以開發(fā)出大用戶并發(fā)的安全的Java分布式平臺,當(dāng)然性能以及事務(wù)處理等方面的優(yōu)點(diǎn)是顯而易見的。
雖然Java官方為EJB付出了巨大的代價(人力、物力),但是市場對EJB并不是全盤接受,因為EJB太重了。Spring的出現(xiàn)使得EJB的地位非常尷尬,后來EJB的版本更新也借鑒了Spring的很多理念,但是EJB的基因太難改變了。
JavaMEME版本的出現(xiàn)時間并不晚,我在2004年的時候曾經(jīng)短暫的使用過ME版本在Nokia的塞班平臺下進(jìn)行程序開發(fā)。可以說當(dāng)年的Sun公司對嵌入式設(shè)備的發(fā)展還是具備一定眼光的,只是當(dāng)IOS和Android平臺出現(xiàn)的時候,JavaME多少顯得有些尷尬。
JavaME針對嵌入式設(shè)備進(jìn)行了重寫,支持在嵌入式設(shè)備上運(yùn)行Java應(yīng)用。當(dāng)年也確實有很多基于JavaME開發(fā)的嵌入式產(chǎn)品,大到美國發(fā)射的“勇氣號”太空車,小到工業(yè)機(jī)器人,目前JavaME的應(yīng)用并不多,但是官方依然對JavaME抱有期望。
JavaCard、JavaTV、JavaDB關(guān)于JavaCard可能用過的人就更少了,但是在最初推出這個技術(shù)的時候,JavaCard為我們描繪了很多未來的應(yīng)用場景(目前這些場景中的很多內(nèi)容由智能手機(jī)完成了)。看一下JavaCard的官方定義:
可以說JavaCard在一些具體場景中還是有所應(yīng)用的,比如通信領(lǐng)域和金融領(lǐng)域等對安全性有較高要求的領(lǐng)域。
看一下JavaTV的官方定義:
JavaTV的出現(xiàn)是數(shù)字化TV發(fā)展的必然結(jié)果,同樣,目前這部分市場被Android搶占的比較厲害,好在Android的應(yīng)用開發(fā)也采用了Java語言。
看一下關(guān)于JavaDB的官方描述:
JavaDB是Java數(shù)據(jù)庫應(yīng)用的一個方向,能在數(shù)據(jù)庫平臺上提供完全的Java支持。
以上就是Java包含的技術(shù)總結(jié),當(dāng)然,現(xiàn)在的Java已經(jīng)不僅僅是Oracle公司的,全世界很多科技公司或組織都在開發(fā)基于Java的各種應(yīng)用,所以Java已經(jīng)不單純的是一門語言,更是一個平臺、橋梁和鏈條。
我在頭條上寫了關(guān)于Java技術(shù)的系列文章,感興趣的朋友可以關(guān)注一下,有問題可以一起交流。
移動互聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)主要上的是那些課程
移動互聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)主要上的課程有:
JAVA程序設(shè)計、使用JSP+Servelet開發(fā)Web應(yīng)用系統(tǒng)、Android組件開發(fā)、Android應(yīng)用開發(fā)、移動通信增值業(yè)務(wù)開發(fā)、Android綜合項目設(shè)計、DIV+CSS網(wǎng)頁制作、前端項目開發(fā)、html5+Css3項目開發(fā)、圖形圖像設(shè)計、數(shù)據(jù)庫設(shè)計與實現(xiàn)、面向?qū)ο蟪绦蛟O(shè)計等。
軟件設(shè)計師考試科目有哪些具體考什么內(nèi)容
軟件工程專業(yè)和適合考軟件設(shè)計師,不過大一還為時過早,大二的時候?qū)W軟件工程,數(shù)據(jù)庫,計算機(jī)網(wǎng)絡(luò),數(shù)據(jù)結(jié)構(gòu)等幾門課,里面有相當(dāng)多的知識可以考到。
軟件設(shè)計師分為上午和下午,上午75個選擇題,下午5個大題。其中,下午題的第一題數(shù)據(jù)流圖和第三題UML圖,在軟件工程這門課上會學(xué),上午也大概有15-20個會用軟件工程的知識,所以,軟件工程這門課是軟考最得力的助手。
下午題第二題是數(shù)據(jù)庫的考察,第四題是C語言和數(shù)據(jù)結(jié)構(gòu)的知識,第五題是C++和JAVA選擇一道。這樣,等大二的時候?qū)W好了軟件工程,數(shù)據(jù)庫,計算機(jī)網(wǎng)絡(luò),數(shù)據(jù)結(jié)構(gòu),C++等,上午題差不多可以占到55-60分,下午題全包了,再有就是把前三年以內(nèi)的六套軟考題都做一下,進(jìn)行總結(jié),很有用,祝你好運(yùn)。PS:本人也是軟工的,是大二下學(xué)期報的
jsp程序設(shè)計什么意思
JSP(JavaServerPages)是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),它可以無縫地運(yùn)行在UNIX、Linux和Windows操作平臺上。利用這一技術(shù)可以建立安全、跨平臺的先進(jìn)動態(tài)網(wǎng)站。
本書詳細(xì)講解了JSP語法和基本的程序設(shè)計方法。全書共分10章,內(nèi)容包括JSP簡介,JSP頁面與JSP標(biāo)記,Tag文件與Tag標(biāo)記,JSP內(nèi)置對象,JSP文件操作,在JSP中如何使用MySQL、SQLServer、Oracle等常用數(shù)據(jù)庫,JSP與JavaBean,JavaServlet基礎(chǔ),以及MVC模式等重要內(nèi)容。本書所有知識都結(jié)合具體實例進(jìn)行介紹,力求詳略得當(dāng),突出JSP在開發(fā)Web動態(tài)網(wǎng)站方面的強(qiáng)大功能及在開發(fā)商務(wù)網(wǎng)站方面的應(yīng)用,使讀者快速掌握和運(yùn)用JSP的編程技巧。
本書不僅可以作為高等院校計算機(jī)及相關(guān)專業(yè)的選修課教材,也可作為自學(xué)者及網(wǎng)站開發(fā)人員的參考書
Java程序中如何很好地運(yùn)用設(shè)計模式
從兩個方面來談下我的理解:
懂設(shè)計模式如何很好的運(yùn)用Java設(shè)計模式?用的前提是懂設(shè)計模式。懂是前提,不懂何來的用!
我們都知道GOF提出了針對Java編程非常有經(jīng)驗的23條設(shè)計模式,通過對實際開發(fā)中出現(xiàn)的問題進(jìn)行高度概括總結(jié)而來,通過不斷的完善,最后演變到我們熟悉的23種經(jīng)典場景對應(yīng)的23種設(shè)計模式。
這23中涉及模式設(shè)計的場景可以概括為:創(chuàng)建對象場景、對象與類的組合結(jié)構(gòu)場景、對象與對象之間通訊的對象行為型場景。
非常實用的23種場景。具體可以參見我關(guān)于設(shè)計模式的一個問答。抽取一部分:
創(chuàng)建型模式:創(chuàng)建對象場景
創(chuàng)建型模式提供了一種在創(chuàng)建對象的同時隱藏創(chuàng)建邏輯的方式,而不是使用new運(yùn)算符直接實例化對象。這使得程序在判斷針對某個給定實例需要創(chuàng)建哪些對象時更加靈活。
工廠模式(FactoryPattern):通過工廠模式來創(chuàng)建對象,避免客戶端創(chuàng)建對象,適用于單一產(chǎn)品對象創(chuàng)建。
抽象工廠模式(AbstractFactoryPattern):使用與多種產(chǎn)品族的情況下,進(jìn)行設(shè)計對象產(chǎn)品創(chuàng)建、擴(kuò)展。
單例模式(SingletonPattern):保證一個類只有一個實例的情況
建造者模式(BuilderPattern):適用創(chuàng)建對象參數(shù)過多的情況
原型模式(PrototypePattern):創(chuàng)建對象過于負(fù)責(zé),通過clone來提高創(chuàng)建對象的效率。
結(jié)構(gòu)型模式:對象與類的組合結(jié)構(gòu)場景
結(jié)構(gòu)型模式關(guān)注類和對象的組合。繼承的概念被用來組合接口和定義組合對象獲得新功能的方式。
適配器模式(AdapterPattern):動態(tài)適配接口的實現(xiàn),滿足客戶端的使用,不修改客戶端前提下,完成接口適配
橋接模式(BridgePattern):抽象和實現(xiàn)進(jìn)行解耦
過濾器模式(Filter、CriteriaPattern):過濾對象使用
組合模式(CompositePattern):適用于客戶端統(tǒng)一處理葉子和枝干部分
裝飾器模式(DecoratorPattern):動態(tài)擴(kuò)展類的功能
外觀模式(FacadePattern):針對多個子系統(tǒng),提供統(tǒng)一的訪問方式
享元模式(FlyweightPattern):適用于減少微小對象的創(chuàng)建,通過緩存進(jìn)行。
代理模式(ProxyPattern):不能直接訪問某類,通過代理進(jìn)行
行為型模式:對象與對象之間通訊的對象行為型場景
行為型模式特別關(guān)注對象之間的通信。
責(zé)任鏈模式(ChainofResponsibilityPattern):避免請求者和接受者耦合,接受者過多情況
命令模式(CommandPattern):將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進(jìn)行參數(shù)化。
解釋器模式(InterpreterPattern)
迭代器模式(IteratorPattern):迭代訪問對象
中介者模式(MediatorPattern):通過中介者來封裝用戶訪問
備忘錄模式(MementoPattern):對狀態(tài)進(jìn)行存儲,可以再次進(jìn)行恢復(fù)
觀察者模式(ObserverPattern):訂閱/發(fā)布者模式,主要用于消息通知
狀態(tài)模式(StatePattern):根據(jù)狀態(tài)進(jìn)行執(zhí)行動作切換
空對象模式(NullObjectPattern)
策略模式(StrategyPattern):根據(jù)不同的算法策略執(zhí)行
模板模式(TemplatePattern):預(yù)留模版,動態(tài)擴(kuò)展
訪問者模式(VisitorPattern)
用設(shè)計模式經(jīng)過學(xué)習(xí),你對涉及模式有了一個概括性的了解,也知道每個設(shè)計模式使用的場景,這時你就可以針對自己實際工作的業(yè)務(wù)分析,找到比較合適的模式來使用,但是千萬注意設(shè)計模式是一套經(jīng)驗總結(jié),不能為了模式而模式,為了設(shè)計模式而設(shè)計模式就是本末倒置了。
程序最主要的兩個方面是算法和什么
一個程序應(yīng)該包括以下兩方面的內(nèi)容。
1對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(datastructure)。
2對操作的描述。即操作步驟,也就是算法(algorithm)。著名計算機(jī)科學(xué)家沃思提出一個公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序。實際上,一個程序除了以上兩個主要的要素外,還應(yīng)當(dāng)采用程序設(shè)計方法進(jìn)行設(shè)計,并且用一種計算機(jī)語言來表示。因此,算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計方法和語言工具4個方面是一個程序員所應(yīng)具備的知識。