色欧美4477福利网在线观看,亚洲国产AV一区二区污污污,精品欧美一区二区三区,免费人成在线观看欧美精品

    廣州瘋狂軟件

    廣州瘋狂軟件

    • IT實踐教育的“黃埔軍?!?li>
    • 教育部產(chǎn)學(xué)合作協(xié)同育人項目合作單位
    • 自主知識產(chǎn)權(quán)核心技術(shù)企業(yè)

    400-888-4849

    全國學(xué)習(xí)專線 8:00-22:00

    對Java編程語言的基礎(chǔ)知識

    JAVA 71已閱讀 2020-04-17 17:39:13
    導(dǎo)讀 這篇文章對Java編程語言的基礎(chǔ)知識作了一個較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考。

    對Java編程語言的基礎(chǔ)知識

    對Java編程語言的基礎(chǔ)知識

      1、Java語言的優(yōu)點:

      1)Java是純面向?qū)ο笳Z言

      2)與平臺無關(guān)性,一次編譯到處運行

      3)Java提供了狠多內(nèi)置類庫

      4)提供了對web應(yīng)用的支持

      5)具有較好的安全性(數(shù)組邊界檢測、Bytecode檢測)和健壯性(強制型機制、垃圾回收器、異常處理)

      6)去除c++難以理解的一些特性(頭文件指針運算符重載多重繼承)

      2、java與c++的異同:

      1)Java為解釋型語言,c++為編譯型語言,java會慢但是跨平臺

      2)Jave為純面向?qū)ο?,c++既面向?qū)ο笥帜苊嫦蜻^程。Jave無全局變量和全局函數(shù)

      3)Java沒有指針,更安全

      4)Java不支持多繼承但是有接口概念

      5)Java不需人工分配管理內(nèi)存(申請釋放),提供垃圾回收器自動回收。當(dāng)堆棧或靜態(tài)存儲區(qū)沒有對這個對象的引用時,就會被回收。沒有析構(gòu)函數(shù),但是有finalize()方法。

      6)Java沒有運算符重載,沒有預(yù)處理功能。

      3、public static void main(String[]args)是程序的入口。

      4、java可有多個main()文件,但只有與文件名相同的用public修飾的類的main()才能作為程序的入口。注:有且僅有一個類被public修飾并與文件同名。

      5、靜態(tài)快在main函數(shù)之前執(zhí)行。初始化執(zhí)行順序:父靜態(tài)變量父靜態(tài)代碼塊子靜態(tài)代碼變量子靜態(tài)代碼塊父非靜態(tài)變量父非靜態(tài)代碼塊父類構(gòu)造函數(shù)子非靜態(tài)變量子非靜態(tài)代碼塊子類構(gòu)造函數(shù)

      6、構(gòu)造函數(shù):

      1)與類同名,無返回值

      2)可以有多個,根據(jù)參數(shù)不同

      3)總是伴隨new操作一起調(diào)用

      4)主要用來初始化對象

      5)不能被繼承

      6)可用super來顯示調(diào)用父類構(gòu)造函數(shù)

      7、淺復(fù)制僅僅復(fù)制考慮的對象,不復(fù)制它引用的對象。深復(fù)制兩者都復(fù)制

      8、面向?qū)ο蠛兔嫦蜻^程有什么不同:

      1)面向?qū)ο笫怯梅铣R?guī)思維的方式去處理客觀世界的問題,面向過程是則重以事件為中心,模塊化。

      2)面向?qū)ο笫鞘褂嬎銠C世界向客觀世界靠攏,使問題的處理更清晰。面向過程是清晰準(zhǔn)確表達過程的模塊,把客觀世界的問題抽象成計算機可以處理的過程。

      9、面向?qū)ο蟮奶卣骱蛢?yōu)點:抽象繼承封裝多態(tài)有較高的開發(fā)效率,代碼可重用。較高的可維護性,代碼更清晰明了。

      10、java只支持單根繼承,extends繼承是is a關(guān)系,組合是has a關(guān)系。

      在java語言中能用到組合的盡量不要用繼承。

      11、多態(tài):

      重載(同個類中有多個同名方法)水平關(guān)系

      重寫(子類重寫父類,方法名和參數(shù)列表相同)垂直關(guān)系

      12、抽象類和接口的異同:

      1)只要含一個抽象方法都是抽象類,接口的方法全部是抽象方法,稱為純抽象類。

      2)抽象類的子類需實現(xiàn)父類的抽象方法。

      3)接口中的變量都默認(rèn)為:static final必須賦初值。

      4)接口實現(xiàn)用implements。一個類可以實現(xiàn)多個接口實現(xiàn)類似多繼承的關(guān)系。

      5)接口被運用于常用的功能,如:添加刪除。抽象類用于生活公共類的角色,不適用經(jīng)常對代碼修改的情況

      13、this和super的區(qū)別:

      This用來指向當(dāng)前實例對象

      Super用來訪問父類的方法和成員變量

      子類繼承父類時,子類構(gòu)造函數(shù)中super()必須放句。

      14、break continue return的區(qū)別:

      Break用于直接強行跳出當(dāng)前循環(huán),不執(zhí)行剩余代碼

      Continue用于停止當(dāng)次循環(huán),回到起始處進行下次循環(huán)。

      Return跳轉(zhuǎn)用來表示從一個方法中返回。

      Break out跳出多重循環(huán)

      15、static的作用:

      a為對象分配單一的存儲空間,與創(chuàng)建對象個數(shù)無關(guān)

      b實現(xiàn)某個方法或?qū)傩院皖惗皇桥c對象關(guān)聯(lián)在一起

      C變量可達到全局的效果,在內(nèi)存中只有一個復(fù)制

      16、不可變類的實現(xiàn):

      類中的所有成員變量被private修飾

      沒有寫set方法

      類定義final

      17、值傳遞和引用傳遞的區(qū)別:

      值傳遞:實參會把它的值傳遞給形參

      引用傳遞:傳遞的是對象,形參和實參指向同個存儲單元。

      18、有八種基本數(shù)據(jù)類型,類型轉(zhuǎn)換的優(yōu)先級:byte不能與booleam互換。

      19、round表示四舍五入ceil表示向上取整floor表示向下取整,i++表示先執(zhí)行后加

      一,++i表示先加一后執(zhí)行。

      20、String s1=”abc”是存放在常量區(qū)

      String s2=”abc”s2應(yīng)用常量區(qū)的對象,不會創(chuàng)建新的對象。

      String s3=new String(“abc”)是在堆中創(chuàng)建對象,

      String s4=new String(“abc”)又必須在堆中創(chuàng)建新對象。

      21、“==”與“equals”

      “==”用來比較兩個變量的值是否相等,如果一個變量指向餓數(shù)據(jù)是對象(引用類型),就有兩塊內(nèi)存。對象本身占用一塊內(nèi)存(堆內(nèi)存),變量也占用一塊內(nèi)存。String s4=new String(“abc”)。變量s所對應(yīng)的內(nèi)存中存儲的數(shù)值就是對象占用那塊內(nèi)存的首地址。如果想看兩個變量是否指向同一個對象,即要看他們對應(yīng)內(nèi)存中的數(shù)值(首地址)是否相同。

      equals比較的不是引用,而是數(shù)值內(nèi)容,即比較的是abc。

      22、數(shù)組也是對象。數(shù)組提供length屬性來獲取數(shù)組的長度,而String是通過length()計算。

      23、異常處理

      1)try catch finally模式

      2)Finally塊中的代碼一定會被執(zhí)行,除非這兩種情況:當(dāng)程序在try之前就遇到異?;蛘咴趖ry中通過exit()強制退出。

      3)jvm將錯誤表示為一個異常并拋出,通過catch來捕獲,然后進行處理。安全性和魯棒性。

      4)異常分為兩大類:錯誤(error)和異常(Excetion)

      異常分為:檢查異常和運行異常。

      檢查異常又稱為編譯異常。

      比如:IO異常、SQL異常

      運行異常為:空指針異常、類型轉(zhuǎn)換異常、算術(shù)異常、數(shù)組越界異常、數(shù)組存儲異常、緩存區(qū)溢出異常。

      先捕獲子類后捕獲父類,盡早拋出異常,能處理就處理,不處理就拋出,運行時異常實際不必處理,直接拋出。

      24、Java IO:字節(jié)流(8位)不會用到緩存字符流(16位)用到緩存

      25、Socket稱為套接字。用來實現(xiàn)不同虛擬機或不同計算機之間的通信。

      分為兩種類型:面向連接的TCP,可靠。無面向連接的UDP,不可靠。

      任何一個Socket都是由一個IP地址和端口號唯一確定。

      26、java平臺獨立性是指一個平臺上編寫和編譯程序,而在其他平臺上運行。有JVM和java API。

      Java語言是一種動態(tài)解釋型語言,類class只有被加載到JVM上才能運行。不會一次加載全部類后執(zhí)行,而是先加載基類,其他類是需要時再加載。

      27、垃圾回收GC:回收不會再使用的內(nèi)存。三個任務(wù):分配內(nèi)存;確保被引用的內(nèi)存不被錯誤地回收;回收不再被引用的對象的內(nèi)存。

      28、java中內(nèi)存泄露問題:

      兩種情況:

      1)在堆中申請的空間沒有得到釋放

      2)對象不再被使用,但是仍在內(nèi)存中保留著

      原因:靜態(tài)集合類、各種連接、監(jiān)聽器、變量不合理的作用域

      29、java中堆和棧的區(qū)別:

      分配在棧:基本數(shù)據(jù)類型的變量、對象的引用變量

      變量出了作用域就會被自動釋放

      分配在堆:引用類型變量、需要通過new創(chuàng)建的變量。主要為運行時創(chuàng)建的對象

      JVM是基于堆棧的虛擬機,每個java程序都運行在一個單獨的JVM實例上,所以一個java程序中的對個線程運行在,每個實例又唯一對應(yīng)一個堆,所以這些線程之間會共享堆內(nèi)存。

      只需要申請堆空間,不需要考慮釋放問題。

      使用棧中的引用變量來訪問堆中的數(shù)組和對象。

      堆只要是用來存放對象的,棧主要是用來放執(zhí)行程序的。

      棧的速度快,但大小和生存期確定,缺乏靈活性。堆是動態(tài)分配內(nèi)存,靈活性強但速度慢。

      30、容器:java Collections框架:list、Queue、set、stack、map

      list、Queue、set、stack都繼承Collection接口。

      1)List是有序的Collection。按對象的進入順序保存對象,可保存重復(fù)對象。

      2)Set是集合的概念,集合中不能有重復(fù)的元素。

      3)map是鍵映射到值得數(shù)據(jù)結(jié)構(gòu)。值可以重復(fù),但是鍵是唯一的,不能重復(fù)。

      31、迭代器:是一個對象,一種訪問一個容器對象的各個元素,而又不必暴露該對象內(nèi)部的細(xì)節(jié)方法。

      1)使用容器的iterator()方法返回一個Iterator,然后通過Iterator的next()方法返回一個元素。

      2)使用Iterator的hasNext()方法判斷容器中是否還有元素,如果有可以使用next()獲取下一個元素。

      3)通過remove()來刪除迭代器返回的元素。

      32、collection和collections的區(qū)別:

      Collection:是一個集合接口,為各個具體集合提供化的統(tǒng)一操作。

      Collections:是針對集合類的一個裝類。不能實例化,相當(dāng)于一個工具類,服務(wù)于Collection框架。

      33、多線程:

      線程:執(zhí)行代碼的一個執(zhí)行單元。

      進程:一個正在執(zhí)行的程序

      各線程共享程序的內(nèi)存空間(代碼段、數(shù)據(jù)、堆空間)有獨立的??臻g。

      線程優(yōu)點:

      1)減少程序的響應(yīng)時間

      2)相比進程,創(chuàng)建個切換開銷小

      3)多CPU和多核本身就具有多線程能力

      4)簡化程序結(jié)構(gòu),便于理解和維護。

      34、如何實現(xiàn)java多線程:

      1)繼承Thread類,重寫run()方法

      2)實現(xiàn)Runnable接口,并實現(xiàn)接口的run()方法。

      3)實現(xiàn)Callable接口,重寫call()方法。

      35、同步

      要想實現(xiàn)同步操作,必須獲得每個線程對象的鎖,獲得它可以同一時刻只有一個線程能夠進入臨界區(qū),并且在這個鎖被釋放之前,其他線程就能再進入臨界區(qū),如果還有其他線程想要獲得該對象的鎖,只能進入等待隊列等待。

      36、多進程同步的實現(xiàn)方法:

      1)synchronized關(guān)鍵字

      2)Wait()方法與notify()方法

      3)Lock

      37、終止線程的方法:stop()方法與suspeng()方法。

      Java提供兩種線程:守護線程(服務(wù)進程)、用戶進程。

      38、如何通過JDBC來訪問數(shù)據(jù)庫:

      1)加載JDBC驅(qū)動器,將JDBC驅(qū)動jar復(fù)制到lib下

      2)加載JDBC驅(qū)動

      3)創(chuàng)建數(shù)據(jù)庫連接

      4)建立Statement對象或是PrepareStatement對象。用于對數(shù)據(jù)庫操作

      5)執(zhí)行SQL語句

      6)訪問結(jié)果集ReaultSet對象

      7)依次關(guān)閉ReaultSet Statement Connection。

      39、Class.forName()方法的作用是把類加載到JVM中。

      在使用JDBC連接數(shù)據(jù)庫之前,一般會調(diào)用Class.forName(“com.mysql.jdbc.Driver”)方法來加載驅(qū)動。

      Statement用于執(zhí)行不帶參數(shù)的簡單SQL語句,并返回它所生成結(jié)果的對象。每次執(zhí)行SQL,數(shù)據(jù)庫都會編譯該SQL語句。

      PrepareStatement可執(zhí)行帶參數(shù)的。效率更高,可讀性,可維護性更高,安全性更好

      40、JDBC提供了getString()、getInt()、getIData()等方法從ResultSet中獲取數(shù)據(jù)。

      41、在JDBC連接時連接池數(shù)目有限,所以一定要釋放不再使用的連接。

      createStatement和prepareStatement放在循環(huán)外面,而且使用statement后需要及時關(guān)閉。是執(zhí)行一次executeQuery后馬上關(guān)閉statement。

      42、Hibernate是JDBC的封裝。采用配置文件的形式將數(shù)據(jù)庫的連接參數(shù)寫到XML中,但

      是最后對數(shù)據(jù)庫的訪問還是要通過JDBC來完成。

      43、Hibernate是個持久層框架,它將表中的信息映射到XML中,再從XML文件映射到相應(yīng)的持久化類中。

      采用SSH框架,不僅能實現(xiàn)視圖、控制器與模型的徹底分離,而且還能實現(xiàn)業(yè)務(wù)邏輯與數(shù)據(jù)持久層的分離

    相關(guān)文章
    學(xué)無止境于瘋狂Java

    學(xué)無止境于瘋狂Java

    人的一生都在學(xué)習(xí),所謂活到老學(xué)到老,我認(rèn)為學(xué)習(xí)是使一個人不斷提升修養(yǎng)的重要途徑。... [詳情]

    130人閱讀
    流行的9個Java框架介紹:優(yōu)點、缺點等等

    流行的9個Java框架介紹:優(yōu)點、缺點等等

    核心提示雖然Java不是最直接的語言,但是您不需要從頭編寫Java程序。有許多優(yōu)秀的Java框架可以編寫在Java虛擬機上運行的web和移動應(yīng)用程序、微服務(wù)和REST api。... [詳情]

    128人閱讀
    敲鍵盤也能月入過萬

    敲鍵盤也能月入過萬

    每個人都有這樣一個夢想,每天輕松,月底拿高薪,每隔一段時間就能來一場說走就走的旅行。也許你不信,你來瘋狂學(xué)院,我們就告訴你如何輕松拿高薪。... [詳情]

    72人閱讀
    對Java編程語言的基礎(chǔ)知識

    對Java編程語言的基礎(chǔ)知識

    這篇文章對Java編程語言的基礎(chǔ)知識作了一個較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考。... [詳情]

    71人閱讀
    JavaEE的基本術(shù)語

    JavaEE的基本術(shù)語

    討論不同實現(xiàn)之前,理解集群技術(shù)的概念是很有意義的,我希望不僅能給你提供關(guān)于J2EE集群產(chǎn)品基本的設(shè)計理念和概念,還可以概括性的描繪不同的集群實現(xiàn),使它們更容易被理解。... [詳情]

    123人閱讀
    Java框架是什么?

    Java框架是什么?

    現(xiàn)在JAVA越來越流行,面對流行以及多層架構(gòu)應(yīng)用,使應(yīng)用程序的實用性得到了很大的提高,那么到底什么是Java框架呢?現(xiàn)在我就和大家聊聊什么是Java框架.... [詳情]

    81人閱讀