




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)第一章Java概述學(xué)習(xí)目標(biāo)了解Java及其發(fā)展概況了解Java編程語言的主要特性了解Java的運(yùn)行環(huán)境掌握J(rèn)ava程序的基本結(jié)構(gòu)熟悉Java程序的基本編程規(guī)范了解Java虛擬機(jī)的原理掌握J(rèn)ava應(yīng)用程序的加載過程1.1 Java的歷史與發(fā)展1.Java的歷史Java是一種解釋型的、面向?qū)ο蟮木幊陶Z言。歷史:1991年,SUNMicroSystem公司的JameGosling、BillJoe等人為在電視、控制烤箱等家用消費(fèi)類電子產(chǎn)品上進(jìn)行交互式操作而開發(fā)了一個(gè)名為Oak的軟件。
Oak—>Java:互聯(lián)網(wǎng)給Java帶來新的生機(jī)
1995年Sun向公眾推出Java并引起業(yè)界的轟動(dòng)發(fā)展:面向網(wǎng)絡(luò)應(yīng)用,類庫不斷豐富,性能不斷提高,應(yīng)用領(lǐng)域不斷拓展。(1995年以來)應(yīng)用:Java是當(dāng)今最流行的軟件開發(fā)語言之一,Sun推出了Java2&J2EE使Java具有更廣泛的用途,適用于各種應(yīng)用開發(fā),尤其是網(wǎng)絡(luò)應(yīng)用,網(wǎng)絡(luò)服務(wù),嵌入式系統(tǒng)等。Java的特點(diǎn)在Java語言白皮書中,Java被描述為“是一種簡(jiǎn)單、面向?qū)ο?、分布式、解釋、健壯、安全、結(jié)構(gòu)中立、可移植、高效能、多線程、動(dòng)態(tài)的語言”。2Java組成3JAVA平臺(tái)的擴(kuò)展三個(gè)版本(1999.6)J2SE:Core/DesktopJ2EE:Enterprise/ServerJ2ME:Mobile/Wireless4Java的應(yīng)用范圍據(jù)有關(guān)單位調(diào)查顯示,從開發(fā)領(lǐng)域的分布情況上看Web開發(fā)占了一半以上,為57.9%,JavaME移動(dòng)或嵌入式應(yīng)用占15%,C/S應(yīng)用占11.7%,系統(tǒng)編程占15.4%。近30%的開發(fā)者用Java從事C/S應(yīng)用或系統(tǒng)級(jí)應(yīng)用的開發(fā)。具體的企業(yè)信息化,特別在企業(yè)級(jí)應(yīng)用,如通信、金融電子政務(wù)及辦公自動(dòng)化嵌入式設(shè)備及消費(fèi)類電子產(chǎn)品太空領(lǐng)域應(yīng)用范圍5.JAVA平臺(tái)的新發(fā)展JavaSE(JavaPlatform,StandardEdition)。JavaSE以前稱為J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應(yīng)用程序。JavaSE包含了支持JavaWeb服務(wù)開發(fā)的類,并為JavaPlatform,EnterpriseEdition(JavaEE)提供基礎(chǔ)。JavaEE(JavaPlatform,EnterpriseEdition)。這個(gè)版本以前稱為J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java應(yīng)用程序。JavaEE是在JavaSE的基礎(chǔ)上構(gòu)建的,它提供Web服務(wù)、組件模型、管理和通信API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-orientedarchitecture,SOA)和Web2.0應(yīng)用程序。JavaME(JavaPlatform,MicroEdition)。這個(gè)版本以前稱為J2ME。JavaME為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。JavaME包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持。基于JavaME規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。
1.2JDK的安裝與配置Java開發(fā)工具包(JavaDevelopmentKit)簡(jiǎn)稱JDK,它是用于構(gòu)建在Java平臺(tái)上發(fā)布的應(yīng)用程序、Applet和組件的開發(fā)環(huán)境,也是一切Java應(yīng)用程序的基礎(chǔ)所有的Java應(yīng)用程序都是構(gòu)建在這個(gè)JDK之上,它包括了一個(gè)提供Java程序運(yùn)行的虛擬機(jī)和一些運(yùn)行支持的類庫文件,以及一些工具程序JDK版本歷史JDK版本發(fā)布日期版本說明JDK1.01995-5正式對(duì)外發(fā)布,直到1996年1月形成一個(gè)完整的版本。包括標(biāo)準(zhǔn)的I/O庫、網(wǎng)絡(luò)API、Applet、文件I/O及基本的窗口庫JDK1.11997-2內(nèi)部類、新的事件處理模型、RMI、JavaBean、JDBC、串行化、國(guó)際化、性能改進(jìn)JDK1.21998-12浮點(diǎn)運(yùn)算改進(jìn),Swing支持、集合、Java2D、可訪問性、引用對(duì)象及性能改進(jìn)JDK1.32000-5稱為Kestrel。CORBA兼容性、Java音頻支持、JNDI及性能改進(jìn)JDK1.42001-12稱為Merlin。斷言支持、64位空間、新的I/O庫、模式匹配、JavawebStart、IPv6、XML進(jìn)一步性能改進(jìn)等JDK1.52003-7稱為Tiger。通用性(代碼模塊)、某些運(yùn)算符重載等JDK1.62006稱為Mustang。沒有新的語言特征,是一個(gè)以穩(wěn)定、提高為目的的版本。JDK1.72011新的語言特性、性能的改進(jìn)1.2Java程序運(yùn)行環(huán)境的安裝與配置第一步:下載JDKJava可以從Sun公司網(wǎng)站/免費(fèi)下載(尋找合適的版本)JDK(JDK,JavaDevelopmentKit)包括Java編譯器(javac,JavaComplier)Java解釋器(java,Javainterpreter)文檔生成器(javadoc
,Documentationgenerator)…第二步:安裝點(diǎn)擊jdk的可執(zhí)行程序,開始安裝JRE的安裝第三步:環(huán)境配置-設(shè)置操作系統(tǒng)環(huán)境變量系統(tǒng)環(huán)境變量的設(shè)置JAVA_HOMEJDK的安裝目錄,如:C:\ProgramFiles\Java\jdk1.6.0_11CLASSPATH類的搜索路徑,如:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;簡(jiǎn)化CLASSPATH配置如果一個(gè)目錄(例如在d:\jars)下有很多.jar文件,可以按照如下方式配置:d:\jars\*系統(tǒng)環(huán)境變量的設(shè)置(cont.)PATH可執(zhí)行文件搜索路徑設(shè)置,例如java.exe,javac.exe等%JAVA_HOME%\bin注意編譯和執(zhí)行java程序時(shí),編譯系統(tǒng)會(huì)自動(dòng)到當(dāng)前工作目錄、jdk安裝路徑下的lib目錄下尋找需加載的類。因此,可以簡(jiǎn)化classpath變量的設(shè)置。檢查Java運(yùn)行環(huán)境設(shè)置C:\>javaUsage:java[-options]class[args...](toexecuteaclass)orjava-jar[-options]jarfile[args...](toexecuteajarfile)C:\>javacUsage:javac<options><sourcefiles>…
…
…
…C:\>java–versionjavaversion"1.4.2_03"Java(TM)2RuntimeEnvironment,StandardEdition(build1.4.2_03-b02)JavaHotSpot(TM)ClientVM(build1.4.2_03-b02,mixedmode)1.3java程序的類型應(yīng)用程序-JavaApplication獨(dú)立的Java程序程序入口方法:publicstaticvoidmain(String[]args){…}小應(yīng)用程序-JavaApplet在Web瀏覽器中運(yùn)行(內(nèi)嵌Java虛擬機(jī))特定標(biāo)記<APPLETCODE="HelloWorld.class"WIDTH=150HEIGHT=25></APPLET>特定的程序Servlet、EJB等1.3第一個(gè)Java應(yīng)用程序/***程序1-1:一個(gè)向控制臺(tái)輸出字符串的應(yīng)用程序*/publicclassHelloWorldApp{/*main方法是構(gòu)成Java應(yīng)用程序執(zhí)行不可缺少的部分
@paramargs一個(gè)String類型的數(shù)組
*/publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!");//向控制臺(tái)輸出
}}第一步:打開任一個(gè)文本編輯器,將前述內(nèi)容添加進(jìn)去,創(chuàng)建一個(gè)源程序文件??紤]好類名,選一個(gè)有意義的英文名字,如HelloWorldApp寫好類的聲明添加main方法保存文件,文件名和類名要完全保持一致(包括大小寫),文件后綴是.java。什么是源程序源程序(也稱源代碼),是指一系列人類可讀的計(jì)算機(jī)語言指令。計(jì)算機(jī)程序包括源程序和目標(biāo)程序。同一程序的源文本和目標(biāo)文本應(yīng)當(dāng)視為同一作品。源程序是指用高級(jí)語言或匯編語言編寫的程序。目標(biāo)程序,是指可在計(jì)算機(jī)運(yùn)行的程序。一般源程序都需要經(jīng)過某種翻譯過程,形成計(jì)算機(jī)可理解的指令代碼。翻譯的兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果(如Java、C、VC++等)。解釋方式是指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序(如JavaScript)。第二步:編譯源程序,產(chǎn)生字節(jié)碼文件進(jìn)入命令提示符窗口利用cd命令切換當(dāng)前路徑到源程序所在目錄執(zhí)行命令javacHelloWorldApp.java檢查目錄下是否生成HelloWorldApp.class文件,如果有,則表示結(jié)果正確第三步:執(zhí)行該程序保持命令提示符窗口執(zhí)行命令javaHelloWorldApp查看結(jié)果和其他語言開發(fā)過程的比較Java程序開發(fā)步驟(編碼,編譯,解釋,執(zhí)行
)C程序開發(fā)步驟(編碼,編譯,執(zhí)行
)類的定義關(guān)鍵字class-表示要定義一個(gè)類(模板),一個(gè)類在結(jié)構(gòu)上包含數(shù)據(jù)變量和方法,表示功能的語句總是包含在方法中。1.3.2JAVA應(yīng)用程序編程原則publicclass
Dog{Stringname;publicvoidbark(){ System.out.println(“brak!");}}定義類文件public修飾的類名稱必須與包含它的Java源程序文件名一致publicclassDog{ ...}則文件名一定要是:Dog.java并且大小寫敏感(一致)
1.3.2JAVA應(yīng)用程序編程原則總之,類文件的定義一個(gè)Java應(yīng)用程序至少包含一個(gè)類。一個(gè)Java源文件一般只包含一個(gè)類定義。一個(gè)類可以是一個(gè)空類,不包含任何屬性定義和方法聲明。聲明一個(gè)類時(shí),其類名的第一個(gè)字母應(yīng)該大寫。類名通常是有意義的。主方法(mainMethod)每個(gè)Java應(yīng)用程序必須有且只能有的一個(gè)方法,它是程序執(zhí)行的入口,運(yùn)行時(shí)被虛擬機(jī)自動(dòng)執(zhí)行該方法的聲明格式是固定的,不能變更方法被程序調(diào)用而執(zhí)行,并不會(huì)自動(dòng)執(zhí)行1.3.2JAVA應(yīng)用程序編程原則publicclassDog{publicvoidbark(){System.out.println(“brak!");}publicstaticvoidmain(String[]args){ Dogd=newDog(); d.bark(); }}類和變量的引用一個(gè)類中引用其他類,要注意在文件頭,使用import加載java.lang包中的類不需要明確import引用一個(gè)類或?qū)ο蟮淖兞亢头椒?,要通過“.”實(shí)現(xiàn)引用JAVA應(yīng)用程序編程原則importjava.util.Date;publicclassHelloWorld{ publicstaticvoidmain(String[]args){Datenow=newDate();
System.out.println(now); }}類和包介紹類是描述提供某種功能的模塊的一般術(shù)語。Java開發(fā)集(JDK)給出了一套標(biāo)準(zhǔn)的類(稱作類庫),這些類可執(zhí)行大部分所需的基本行為不僅為編程任務(wù)(例如,類可提供基本的數(shù)學(xué)函數(shù)、數(shù)組和字符串),而且為圖形和網(wǎng)絡(luò)程序開發(fā)提供了豐富的支持。類庫被組織成許多包,每個(gè)包都包含幾個(gè)類。如下所列為一些重要的包:java.lang包含一些形成語言核心的類,如String、Math、Integer和Thread。java.awt包含了構(gòu)成抽象窗口工具包(AWT)的類,這個(gè)包被用來構(gòu)建和管理應(yīng)用程序的圖形用戶界面。java.applet包含了可執(zhí)行applet特殊行為的類。包含執(zhí)行與網(wǎng)絡(luò)相關(guān)的操作的類和處理接口及統(tǒng)一資源 定位器(URLs)的類。java.io包含處理I/O文件的類。java.util包含為任務(wù)設(shè)置的實(shí)用程序類,如隨機(jī)數(shù)發(fā)生、定義系統(tǒng)特性和使用與日期日歷相關(guān)的函數(shù)。書寫規(guī)范每個(gè)程序應(yīng)以說明程序目的,作者,日期和時(shí)間的注釋開始;使用空格和空行可以提高程序可讀性;花括號(hào)對(duì)“{}”-類,方法,語句塊語句分號(hào)“;”結(jié)尾縮進(jìn):當(dāng)程序中輸入一對(duì)花括號(hào),然后把光標(biāo)重新定位到兩個(gè)括號(hào)之間,先縮進(jìn)一級(jí),再開始輸入程序體,該習(xí)慣有利于防止漏掉括號(hào)的錯(cuò)誤JAVA應(yīng)用程序編程原則importjava.util.*;publicclassArrayDemo{ publicstaticvoidmain(String[]args){ int[]a={10,7,9,2,4,5,1,3,6,8}; Arrays.sort(a); Set<String>week=newHashSet<String>(); Iterator<String>it=week.iterator(); week.add("hello"); for(Stringstr:week){ System.out.println(str); } }}對(duì)齊關(guān)系密切的行應(yīng)對(duì)齊,對(duì)齊包括類型、修飾、名稱、參數(shù)等各部分對(duì)齊。連續(xù)賦值時(shí)當(dāng)對(duì)齊操作符。當(dāng)方法參數(shù)過多時(shí)當(dāng)在每個(gè)參數(shù)后(逗號(hào)后)換行并對(duì)齊。當(dāng)控制或循環(huán)中的條件比較長(zhǎng)時(shí)當(dāng)換行(操作符前)、對(duì)齊并注釋各條件。變量定義最好通過添加空格形成對(duì)齊,同一類型的變量應(yīng)放在一起。//變量對(duì)齊-----------------------------------------------intcount=100;StringstrUserName=null;Integer[]porductCode=newInteger(2);//產(chǎn)品編碼數(shù)組//參數(shù)對(duì)齊----------------------------------------------publicConnectiongetConnection(Stringurl,StringuserName,Stringpassword)throwsSQLException,IOException{}//換行對(duì)齊----------------------------------------------publicfinalstaticStringSQL_SELECT_PRODUCT=“SELECT*“+“FROMTProductWHEREProd_ID=”+prodID;//條件對(duì)齊----------------------------------------------if(Condition1//當(dāng)條件一
&&Condition2//并且條件二
||Condition3){//或者條件三}命名規(guī)范類:類名是個(gè)一名詞,采用大小寫混合的方式,每個(gè)單詞的首字母大寫。方法:方法名是一個(gè)動(dòng)詞,采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。 變量:除了變量名外,所有實(shí)例,包括類,類常量,均采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。變量名不應(yīng)以下劃線或美元符號(hào)開頭,盡管這在語法上是允許的。變量名應(yīng)簡(jiǎn)短且富于描述。變量名的選用應(yīng)該易于記憶,即,能夠指出其用途。盡量避免單個(gè)字符的變量名,除非是一次性的臨時(shí)變量。 常量:類常量和ANSI常量的聲明,應(yīng)該全部大寫,單詞間用下劃線隔開。(盡量避免ANSI常量,容易引起錯(cuò)誤)注釋注釋應(yīng)該增加代碼的清晰度。代碼注釋的目的是要使代碼更易于被其他開發(fā)人員等理解。避免使用裝飾性內(nèi)容。保持注釋的簡(jiǎn)潔。注釋信息不僅要包括代碼的功能,還應(yīng)給出原因。不要為注釋而注釋。除變量定義等較短語句的注釋可用行尾注釋外,其他注釋當(dāng)避免使用行尾注釋。注解方式(Comments)/**注釋內(nèi)容*/-文檔注解/*注釋內(nèi)容*/-程序內(nèi)的任意位置//注釋內(nèi)容-對(duì)本行注解文檔注釋(被稱為"doccomments")是Java獨(dú)有的,并由/**...*/界定。文檔注釋可以通過javadoc工具轉(zhuǎn)換成HTML文件。文檔注釋描述Java的類、接口、構(gòu)造器,方法,以及字段(field)。每個(gè)文檔注釋都會(huì)被置于注釋定界符/**...*/之中,一個(gè)注釋對(duì)應(yīng)一個(gè)類、接口或成員。該注釋應(yīng)位于聲明之前:
/***Classdescriptiongoeshere.**@version1.1.0*@authorFirstnameLastname*/publicclassBlahextendsSomeClass{… /** *...methoddoSomethingElsedocumentationcomment... *@paramsomeParamdescription */ publicvoiddoSomethingElse(ObjectsomeParam){ //...implementationgoeshere... }}塊注釋通常用于提供對(duì)文件,方法,數(shù)據(jù)結(jié)構(gòu)和算法的描述。塊注釋被置于每個(gè)文件的開始處以及每個(gè)方法之前。它們也可以被用于其他地方,比如方法內(nèi)部。在功能和方法內(nèi)部的塊注釋應(yīng)該和它們所描述的代碼具有一樣的縮進(jìn)格式。/*-*Hereisablockcommentwithsomeveryspecial*formattingthatIwantindent(1)toignore.**one*two*three*/行末注釋(End-Of-LineComments)注釋界定符"http://",可以注釋掉整行或者一行中的一部分。它一般不用于連續(xù)多行的注釋文本;if(foo>1){
//Doadouble-flip....}else{returnfalse;//Explainwhyhere.}1.3.4排除常犯的錯(cuò)誤聲明一個(gè)類的關(guān)鍵字class,寫成了Class,要注意大小寫。聲明main方法時(shí),方法修飾符沒有嚴(yán)格按照publicstaticvoid的順序,并且其參數(shù)是一個(gè)字符串?dāng)?shù)組String[]
大小寫問題,例如把main方法的參數(shù)args的類型String[],改成了string[],把System寫成了system。'JAVAC'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.
解釋:編譯錯(cuò)誤。包含javac.exe編譯器的路徑變量設(shè)置不正確,操作系統(tǒng)無法發(fā)現(xiàn)該執(zhí)行文件。類名和文件名不能保持一致。如:HelloWorldAp.java:5:classHelloWorldAppispublic,shouldbedeclaredinafilenamedHelloWorldApp.javapublicclassHelloWorldApp{解釋: 編譯錯(cuò)誤。當(dāng)一個(gè)類被“public”修飾時(shí),包含這個(gè)類的文件名應(yīng)該和該類名完全一致。不能發(fā)現(xiàn)需要執(zhí)行的類。如:
Exceptioninthread"main"java.lang.NoClassDefFoundError:HelloWorldApp解釋:運(yùn)行錯(cuò)誤。有時(shí)即使該類的字節(jié)碼文件就在當(dāng)前目錄下,也會(huì)報(bào)這種錯(cuò)誤。這種錯(cuò)誤的主要原因是由于沒有為運(yùn)行時(shí)環(huán)境提供正確的類加載說明,詳細(xì)說明請(qǐng)參閱附錄。HelloWorldApp.java:10:cannotresolvesymbol symbol:methodprintl(java.lang.String) location:classjava.io.PrintStream1.4Java的工作原理Java的結(jié)構(gòu)JavaProgramJavaVirtualMachineJavaAPISYourComputerSystemJava的編譯與執(zhí)行1.4.2Java應(yīng)用程序執(zhí)行過程1.加載加載就是把二進(jìn)制形式的字節(jié)碼讀入虛擬機(jī)中。加載過程是由類加載器完成的,該加載器是ClassLoader的子類。2.鏈接鏈接是取得加載的類或接口,并將其與JVM運(yùn)行時(shí)環(huán)境結(jié)合起來,以準(zhǔn)備執(zhí)行的過程,這個(gè)過程包括檢驗(yàn),準(zhǔn)備和解析三個(gè)步驟。3.初始化如果類存在對(duì)非final靜態(tài)變量的賦值,或者static代碼段,在編譯時(shí)會(huì)隱式生成一個(gè)cinit()方法,即初始化執(zhí)行的方法體。1.4.3Java虛擬機(jī)不同的操作系統(tǒng)有不同的虛擬機(jī)。它類似一個(gè)小巧而高效的CPU。Bytecode代碼是與平臺(tái)無關(guān)的是虛擬機(jī)的機(jī)器指令。Java字節(jié)代碼運(yùn)行的兩種方式:Interpreter(解釋方式)Just-in-time(即時(shí)編譯):有代碼生成器將字節(jié)代碼轉(zhuǎn)換成本機(jī)的機(jī)器代碼,然后可以以較高速度執(zhí)行.虛擬機(jī)的任務(wù)提供垃圾回收功能提供運(yùn)行時(shí)環(huán)境提供中立的體系結(jié)構(gòu)JVM運(yùn)行時(shí)的數(shù)據(jù)區(qū)結(jié)構(gòu)方法區(qū)方法區(qū)是由所有JVM線程共享的一個(gè)公共存儲(chǔ)區(qū)。方法區(qū)存儲(chǔ)類的裝基本信息、常量池、靜態(tài)變量、字段信息、方法信息、一個(gè)到類ClassLoader的引用,一個(gè)到Class類的引用。堆堆是一個(gè)自由內(nèi)存區(qū)域,常用于內(nèi)存的動(dòng)態(tài)分配或臨時(shí)分配。堆是一種運(yùn)行時(shí)數(shù)據(jù)區(qū),為類和數(shù)組對(duì)象提供內(nèi)存。JVM在啟動(dòng)時(shí)創(chuàng)建堆,然后當(dāng)Java中創(chuàng)建類或數(shù)組對(duì)象時(shí),就從堆中分配所需內(nèi)存。當(dāng)對(duì)象或數(shù)組不再存在后,由一個(gè)稱為垃圾收集的自動(dòng)存儲(chǔ)管理系統(tǒng)來回收堆內(nèi)存。棧每一個(gè)線程都有自己私有的一個(gè)JAVA棧,任何線程不能調(diào)用其它線程的棧,Java的棧幀用于存儲(chǔ)方法調(diào)用的狀態(tài)。當(dāng)線程調(diào)用一個(gè)方法的時(shí)候,JVM會(huì)在該線程的JAVA棧上壓入一個(gè)新幀。自然該幀成為當(dāng)前幀,在執(zhí)行該方法期間,線程用該幀來儲(chǔ)存參數(shù),局部變量和中間運(yùn)算結(jié)果等。JAVA方法執(zhí)行有兩種情況,一種是正常執(zhí)行完成return,另一種是異常拋出中止。虛擬機(jī)都會(huì)將當(dāng)前的棧幀出棧。棧與堆
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年專業(yè)健康險(xiǎn)代理服務(wù)合同書
- 2025年公司職工安全培訓(xùn)考試題含答案
- 2025年電工維修知識(shí)考試題庫
- 2025年工會(huì)基礎(chǔ)知識(shí)考試題庫及答案
- 2025中級(jí)會(huì)計(jì)考試題目及答案
- 2025年護(hù)理層級(jí)考試題庫
- 冷水機(jī)組原理課件
- 2025年人武專干考試題庫
- 2025年休閑農(nóng)業(yè)考試題庫
- 《分析化學(xué)》(第五版)課件 第十一章 電位分析法
- 2025年徐州市(中小學(xué)、幼兒園)教師招聘考試題庫及答案
- 2025年入黨積極分子學(xué)黨章用黨章知識(shí)競(jìng)賽試題及答案
- 2025年燃?xì)獍矙z人員試題及答案
- 2025版煙草購(gòu)銷買賣合同
- 微多普勒技術(shù)用于低空公共安全治理的應(yīng)用研究
- 打掃老人活動(dòng)方案
- (高清版)DB44∕T 2650-2025 網(wǎng)絡(luò)安全合規(guī)咨詢服務(wù)規(guī)范
- 船舶維護(hù)和維修的預(yù)測(cè)性分析
- 帶管出院患者健康教育
- 2025年廣東省高考地理試卷真題(含答案解析)
- 2024年護(hù)理質(zhì)量監(jiān)測(cè)指標(biāo)手冊(cè)
評(píng)論
0/150
提交評(píng)論