- 相關(guān)推薦
計(jì)算機(jī)二級考試:Java語言學(xué)習(xí)六大要點(diǎn)
計(jì)算機(jī)二級Java主要考試有Java語言的特點(diǎn)和實(shí)現(xiàn)機(jī)制,軟件工程相關(guān)的知識(shí)點(diǎn),數(shù)據(jù)庫設(shè)計(jì)方面的知識(shí)點(diǎn),開發(fā)環(huán)境設(shè)置,JDK目錄結(jié)構(gòu),Java的API結(jié)構(gòu)等。下面是小編整理的計(jì)算機(jī)二級考試:Java語言學(xué)習(xí)六大要點(diǎn)作文,歡迎大家分享。
計(jì)算機(jī)二級考試:Java語言學(xué)習(xí)六大要點(diǎn)
一、掌握靜態(tài)方法和屬性
靜態(tài)方法和屬性用于描述某一類對象群體的特征,而不是單個(gè)對象的特征。Java中大量應(yīng)用了靜態(tài)方法和屬性,這是一個(gè)通常的技巧。但是這種技巧在很多語言中不被頻繁地使用。理解靜態(tài)方法和屬性對于理解類與對象的關(guān)系是十分有幫助的,在大量的Java規(guī)范中,靜態(tài)方法和屬性被頻繁使用。因此學(xué)習(xí)者應(yīng)該理解靜態(tài)方法和屬性。Java在方法和屬性的調(diào)用上是一致的,區(qū)別只表現(xiàn)在聲明的時(shí)候,這和c++是不同的。
二、重視接口
在面向?qū)ο笤缙诘膽?yīng)用中大量使用了類繼承。隨著軟件工程理論的不斷發(fā)展,人們開始意識(shí)到了繼承的眾多缺點(diǎn),開始努力用聚合代替繼承。軟件工程解決擴(kuò)展性的重要原則就是抽象描述,直接使用的工具就是接口。接口近年來逐漸成為Java編程方法的核心。另一方面,就應(yīng)用而言,大部分開發(fā)是建立在規(guī)范基礎(chǔ)之上的,不需要自己建立復(fù)雜的繼承關(guān)系和龐大的類。因此讀懂規(guī)范和用好規(guī)范已經(jīng)成為應(yīng)用程序開發(fā)人員的首要任務(wù),Java各項(xiàng)規(guī)范的主要描述手段就是接口。
三、學(xué)好集合框架
Java描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的主要方式是集合框架。Java沒有指針,而是通過強(qiáng)大的集合框架描述數(shù)組、對象數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。學(xué)好這些數(shù)據(jù)結(jié)構(gòu)的描述方法對于應(yīng)用程序編寫,特別是涉及到服務(wù)器方、3層結(jié)構(gòu)編程至關(guān)重要。程序員在這個(gè)時(shí)候不能再用諸如數(shù)據(jù)庫結(jié)果集之類的結(jié)構(gòu)描述數(shù)據(jù)了。
由于很多語言沒有這么強(qiáng)大的集合框架體系,很多初學(xué)者不知所措,更不知道拿來做什么用,因此應(yīng)該引起足夠的重視。
四、例外捕捉
Java對例外捕捉的強(qiáng)調(diào)是空前的,它強(qiáng)迫程序員用顯著的與邏輯方法完全不同的方式描述例外捕捉,對于程序描述的完整性和嚴(yán)謹(jǐn)性有很大的意義。c++也有類似的機(jī)制,但是我們看到很多c++程序員并不習(xí)慣使用這些機(jī)制。
Java的初學(xué)者應(yīng)該充分學(xué)習(xí)好這種例外捕捉機(jī)制,養(yǎng)成良好的編程習(xí)慣。
五、多線程需要理解機(jī)理
很多Java程序員熱衷于多線程程序編寫,認(rèn)為是對邏輯能力的挑戰(zhàn)。其實(shí)在大量應(yīng)用中根本就不需要編寫多線程程序,或者說大多數(shù)編寫應(yīng)用程序的程序員不會(huì)去寫多線程程序。這是因?yàn)槎嗑程機(jī)制都內(nèi)置到基礎(chǔ)平臺(tái)當(dāng)中了。
程序員應(yīng)該了解的是多線程原理和多線程安全,這對于今后準(zhǔn)確地把握程序是至關(guān)重要的。
例如JSP中編寫到不同的位置對于多個(gè)用戶環(huán)境的安全影響完全不同,又如著名的Super Servlet是每一個(gè)訪問作為一個(gè)進(jìn)程,但是每一個(gè)頁面是一個(gè)線程,和Servlet正好相反,對程序的性能和安全的影響有天壤之別。
六、了解網(wǎng)絡(luò)編程
Java號(hào)稱是最強(qiáng)的網(wǎng)絡(luò)編程語言,但是大多數(shù)應(yīng)用程序開發(fā)人員是從來不會(huì)自己開發(fā)什么底層的網(wǎng)絡(luò)程序的。
需要做只是了解原理就夠了。網(wǎng)絡(luò)機(jī)制的實(shí)現(xiàn)是靠平臺(tái)實(shí)現(xiàn)的,除非自己開發(fā)平臺(tái),否則是不需要知道socket怎么實(shí)現(xiàn),怎么監(jiān)聽訪問的。因此在這方面花太多的功夫就偏離了“將來的應(yīng)用開發(fā)是在成熟的平臺(tái)上展開,而不是自己從底層開發(fā)平臺(tái)”這一假設(shè)。
Java性能監(jiān)控小技巧:
1.JDK附帶分析器
許多開發(fā)人員沒有意識(shí)到從Java 5開始JDK中包含了一個(gè)分析器。JConsole(或者Java平臺(tái)最新版本,VisualVM)是一個(gè)內(nèi)置分析器,它同Java編譯器一樣容易啟動(dòng)。如果是從命令行啟動(dòng),使JDK在PATH上,運(yùn)行jconsole即可。如果從GUIshell啟動(dòng),找到JDK安裝路徑,打開bin文件夾,雙擊jconsole。
當(dāng)分析工具彈出時(shí)(取決于正在運(yùn)行的Java版本以及正在運(yùn)行的Java程序數(shù)量),可能會(huì)出現(xiàn)一個(gè)對話框,要求輸入一個(gè)進(jìn)程的URL來連接,也可能列出許多不同的本地Java進(jìn)程(有時(shí)包含JConsole進(jìn)程本身)來連接。
使用JConsole進(jìn)行工作
在Java 5中,Java進(jìn)程并不是被設(shè)置為默認(rèn)分析的,而是通過一個(gè)命令行參數(shù)—-Dcom.sun.management.jmxremote——在啟動(dòng)時(shí)告訴Java 5 VM打開連接,以便分析器可以找到它們;當(dāng)進(jìn)程被JConsole撿起時(shí),您只能雙擊它開始分析。
分析器有自己的開銷,因此最好的辦法就是花點(diǎn)時(shí)間來弄清是什么開銷。發(fā)現(xiàn)JConsole開銷最簡單的辦法是,首先獨(dú)自運(yùn)行一個(gè)應(yīng)用程序,然后在分析器下運(yùn)行,并測量差異。(應(yīng)用程序不能太大或者太小;我最喜歡使用JDK附帶的SwingSet2樣本。)因此,我使用-verbose:gc嘗試運(yùn)行SwingSet2來查看垃圾收集清理,然后運(yùn)行同一個(gè)應(yīng)用程序并將JConsole分析器連接到它。當(dāng)JConsole連接好了之后,一個(gè)穩(wěn)定的GC清理流出現(xiàn),否則不會(huì)出現(xiàn)。這就是分析器的性能開銷。
JConsole或VisualVM?
JConsole從Java 5開始就隨著Java平臺(tái)版本一起發(fā)布,而VisualVM是在NetBeans基礎(chǔ)上升級的一個(gè)分析器,在Java 6的更新版12中第一次發(fā)布。多數(shù)還沒有更新到Java 6,因此這篇文章主要介紹JConsole。然而,多數(shù)技巧和這兩個(gè)分析器都有關(guān)。
2.遠(yuǎn)程連接進(jìn)程
因?yàn)閃eb應(yīng)用程序分析工具假設(shè)通過一個(gè)套接字進(jìn)行連通性分析,您只需要進(jìn)行少許配置來設(shè)置JConsole(或者是基于JVMTI的分析器,就這點(diǎn)而言),監(jiān)控/分析遠(yuǎn)程運(yùn)行的應(yīng)用程序。
如果Tomcat運(yùn)行在一個(gè)名為“webserve”的機(jī)器上,且JVM已經(jīng)啟動(dòng)了JMX并監(jiān)聽端口9004,從JConsole(或者任何JMX客戶端)連接它需要一個(gè)JMX URL“service:jmx:rmi:///jndi/rmi://webserver:9004/jmxrmi”。
基本上,要分析一個(gè)運(yùn)行在遠(yuǎn)程數(shù)據(jù)中心的應(yīng)用程序服務(wù)器,您所需要的僅僅是一個(gè)JMX URL。
3.跟蹤統(tǒng)計(jì)
JConsole有許多對收集統(tǒng)計(jì)數(shù)據(jù)有用的選項(xiàng)卡,包括:
◆Memory:在JVM垃圾收集器中針對各個(gè)堆跟蹤活動(dòng)。
◆Threads:在目標(biāo)JVM中檢查當(dāng)前線程活動(dòng)。
◆Classes:觀察VM已加載類的總數(shù)。
這些選項(xiàng)卡(和相關(guān)的圖表)都是由每個(gè)Java 5及更高版本VM在JMX服務(wù)器上注冊的JMX對象提供的,是內(nèi)置到JVM的。一個(gè)給定JVM中可用bean的完整清單在MBeans選項(xiàng)卡上列出,包括一些元數(shù)據(jù)和一個(gè)有限的用戶界面來查看數(shù)據(jù)或執(zhí)行操作。(然而,注冊通知是在JConsole用戶界面之外。)
使用統(tǒng)計(jì)數(shù)據(jù)
假設(shè)一個(gè)Tomcat進(jìn)程死于OutOfMemoryError。如果您想要弄清楚發(fā)生了什么,打開JConsole,單擊Classes選項(xiàng)卡,過一段時(shí)間查看一次類計(jì)數(shù)。如果數(shù)量穩(wěn)定上升,您可以假設(shè)應(yīng)用程序服務(wù)器或者您的代碼某個(gè)地方有一個(gè)ClassLoader漏洞,不久之后將耗盡PermGen空間。如果需要更進(jìn)一步的確認(rèn)問題,請看Memory選項(xiàng)卡。
不要成為典型
發(fā)現(xiàn)應(yīng)用程序代碼中性能問題的常用響應(yīng)多種多樣,但也是可預(yù)測的。早期的Java編程人員對舊的IDE可能十分生氣,并開始進(jìn)行代碼庫中主要部分的代碼復(fù)查,在源代碼中尋找熟悉的“紅色標(biāo)志”,像異步塊、對象配額等等。隨著編程經(jīng)驗(yàn)的增加,開發(fā)人員可能會(huì)仔細(xì)研究JVM支持的-X標(biāo)志,尋找優(yōu)化垃圾收集器的方法。當(dāng)然,對于新手,直接去Google查詢,希望有其他人發(fā)現(xiàn)了JVM的神奇的“make it go fast”轉(zhuǎn)換,避免重寫代碼。
從本質(zhì)上來說,這些方法沒什么錯(cuò),但都是有風(fēng)險(xiǎn)的。對于一個(gè)性能問題最有效的響應(yīng)就是使用一個(gè)分析器——現(xiàn)在它們內(nèi)置在Java平臺(tái),我們確實(shí)沒有理由不這樣做!
4.為離線分析創(chuàng)建一個(gè)堆轉(zhuǎn)儲(chǔ)
生產(chǎn)環(huán)境中一切都在快速地進(jìn)行著,您可能沒有時(shí)間花費(fèi)在您的應(yīng)用程序分析器上,相反地,您可以為Java環(huán)境中的每個(gè)事件照一個(gè)快照保存下來過后再看。在JConsole中您也可以這樣做,在VisualVM中甚至?xí)龅酶谩?/p>
先找到MBeans選項(xiàng)卡,在其中打開com.sun.management節(jié)點(diǎn),接著是HotSpotDiagnostic節(jié)點(diǎn)。現(xiàn)在,選擇Operations,注意右邊面板中的“dumpHeap”按鈕。如果您在第一個(gè)(“字符串”)輸入框中向dumpHeap傳遞一個(gè)文件名來轉(zhuǎn)儲(chǔ),它將為整個(gè)JVM堆照一個(gè)快照,并將其轉(zhuǎn)儲(chǔ)到那個(gè)文件。
稍后,您可以使用各種不同的商業(yè)分析器來分析文件,或者使用VisualVM分析快照。(記住,VisualVM是在Java 6中可用的,且是單獨(dú)下載的。)
5.JConsole并不是高深莫測的
作為一個(gè)分析器實(shí)用工具,JConsole是極好的,但是還有更好的工具。一些分析插件附帶分析器或者靈巧的用戶界面,默認(rèn)情況下比JConsole跟蹤更多的數(shù)據(jù)。
JConsole真正吸引人的是整個(gè)程序是用“普通舊式Java”編寫的,這意味著任何Java開發(fā)人員都可以編寫這樣一個(gè)實(shí)用工具。事實(shí)上,JDK其中甚至包括如何通過創(chuàng)建一個(gè)插件來定制JConsole的示例。建立在NetBeans頂部的VisualVM進(jìn)一步延伸了插件概念。
如果JConsole(或者VisualVM,或者其他任何工具)不符合您的需求,或者不能跟蹤您想要跟蹤的,或者不能按照您的方式跟蹤,您可以編寫屬于自己的工具。如果您覺得Java代碼很麻煩,Groovy或JRuby或很多其他JVM語言都可以幫助您更快完成。
您真正需要的是一個(gè)快速而粗糙(quick-and-dirty)的由JVM連接的命令行工具,可以以您想要的方式確切地跟蹤您感興趣的數(shù)據(jù)。
Java性能監(jiān)控不止于JConsole或VisualVM——在JDK中隱藏著一整套工具,只是大多數(shù)開發(fā)人員并不知道。
計(jì)算機(jī)二級考試:Java語言學(xué)習(xí)六大要點(diǎn)
在學(xué)習(xí)Java的過程中,掌握其中的基本概念對我們的學(xué)習(xí)J2SE,J2EE,J2ME都是很重要的。所以,今天就從Java語言的幾個(gè)關(guān)鍵特性來學(xué)習(xí)Java這門編程語言。
語言簡單
Java的語法比C++的相對簡單,另一個(gè)方面就是Java能使軟件在很小的機(jī)器上運(yùn)行,基礎(chǔ)解釋其和類庫的支持的大小約為40kb,增加基本的標(biāo)準(zhǔn)庫和線程支持的內(nèi)存需要增加125kb。
分布式
Java帶有很強(qiáng)大的TCP/IP協(xié)議族的例程庫,Java應(yīng)用程序能夠通過URL來穿過網(wǎng)絡(luò)來訪問遠(yuǎn)程對象,由于servlet機(jī)制的出現(xiàn),使Java編程非常的高效,現(xiàn)在許多的大的web server 都支持servlet。
面向?qū)ο?/strong>
陽臺(tái)改成榻榻米,是比較常見的改造方式,靠窗的可以呼吸新鮮空氣,累了可以躺下累了可以躺下休息,生活就要這么自在,朋友來還可以一起喝茶聊
健壯特性
Java采取了一個(gè)安全指針模型,能減小重寫內(nèi)存和數(shù)據(jù)崩潰的可能型。
安全
Java用來設(shè)計(jì)網(wǎng)路和分布系統(tǒng),這帶來了新的安全問題,Java可以用來構(gòu)建防病毒和防攻擊的System.事實(shí)證明Java在防毒這一方面做的比較好。
中立體系結(jié)構(gòu)
實(shí)現(xiàn)此特性,此字節(jié)碼可以在任何機(jī)器上解釋執(zhí)行。
【計(jì)算機(jī)二級考試:Java語言學(xué)習(xí)六大要點(diǎn)】相關(guān)文章:
Java語言六大要點(diǎn)06-23
計(jì)算機(jī)二級JAVA考試要點(diǎn)復(fù)習(xí)09-09
Java語言學(xué)習(xí)的要點(diǎn)10-30
計(jì)算機(jī)二級考試java要點(diǎn)知識(shí)復(fù)習(xí)07-05
Java語言繼承的要點(diǎn)10-24
計(jì)算機(jī)二級Java要點(diǎn)知識(shí)的復(fù)習(xí)09-28