1、變量及其作用范圍 Java變量可以分為:靜態(tài)變量、成員變量和局部變量3種。 靜態(tài)變量:在類中用static修飾的變量,它的生存周期是由類來決定的。 成員變量:在類中沒有用static修飾的變量,它的生存周期由對象來決定。 局部變量:定義在方法里的變量、方法的參數(shù)或代碼塊里定義的變量,它們的作用范圍用大括號{}來界定。 2、Java的變量分哪兩種大的數(shù)據(jù)類 Java的變量分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。它們最大的區(qū)別在于,引用數(shù)據(jù)類型存放的是數(shù)據(jù)所在的地址,而基本數(shù)據(jù)類型則是直接存放數(shù)據(jù)的值。 其他知識點:引用數(shù)據(jù)類型的變量存的值是一個內(nèi)存地址。對象一般是通過new語句創(chuàng)建出來的,它保存在堆空間中,可以被多個引用類型的變量所引用。當(dāng)引用a修改了對象的數(shù)據(jù)以后,其他的引用也是可以看到這些改變的。 3、Java包含哪些基本數(shù)據(jù)類型及其包裝類 Java一共有8種基本數(shù)據(jù)類型,分別是byte、short、 int、 long 、float 、double、 boolean、 char;存儲的數(shù)據(jù)量比較小,用二進制保存。其饈類分別是:Byte、Short、Integer、Float、Double、Boolean、Character。 Eg. Integer itg=new Integer.valueOf(100); Itg.intValue(); 4、如何理解Java中的裝箱和拆箱 從Java 5.0開始,有一種自動裝箱和拆箱的功能,就可以不必顯式的進行類型轉(zhuǎn)換,系統(tǒng)會自動的按照需要進行數(shù)據(jù)類型的轉(zhuǎn)換。 Java中的裝箱和拆箱指的是基本數(shù)據(jù)類型和包裝類型的自動相互的轉(zhuǎn)換。 裝箱:基本數(shù)據(jù)類型——>包裝類型 拆箱:包裝類型——>基本數(shù)據(jù)類型 5、Java中equal和==的區(qū)別是什么 “==”運用在基本數(shù)據(jù)類型的時候,通過比較它們實際的值來判定是否相同;而用于比較引用類型的時候,則是比較兩個引用的地址是否相等,也就是是否指向同一個對象。 Equal方法是java.lang.Object的方法,也就是所有的Java類都會有的方法。它可以被程序員覆蓋重寫,通過自定義的方式來判定兩個對象是否相等。對于字符串java.lang.String類來說,它的equal方法用來比較字符串的字符序列是否相等。 6、Java中的注釋有哪些 行注釋:// 塊注釋:/* */ ,這種注釋不會出現(xiàn)在HTML文檔中。 文檔注釋:/** / ,它的注釋信息可以進入到j(luò)avadoc文檔中。注釋文檔將用來生成HTML 格式的代碼API報告,還可以用@開頭的關(guān)鍵字進行注釋,以達到說明方法參數(shù)、返回 值、異常等各種詳細信息。 Annotation:它會進入到編譯層,并對程序結(jié)果產(chǎn)生影響。它最變通的作用就是用來替代 XML提供一些配置信息,例如,JPA、Spring等框架的配置信息就可以通過Annotation 來提供。 7、Java的引用和C++的指針有什么區(qū)別 Java的引用和C++的指針本質(zhì)上,它們兩者都是想通過一個叫做引用或者指針的東西,找到要操作的目標(biāo),方便在程序中操作。所不同的是Java的辦法更安全、方便,但失去了C++的靈活,也算是對指針的一種包裝和改進。 主要區(qū)別是: 對象和類型 1、 類和對象有什么區(qū)別 類是一種抽象,而對象是類的實現(xiàn)。 Java的類通過class關(guān)鍵字進行定義,它代表了一種抽象的集合。在它的里面可以定義各種屬性和方法,它們代表了每個類實例的特定的數(shù)據(jù)和動作。Java虛擬機對類只加載一次,對它的靜態(tài)成員也只加載一次。 對象,指的是某一個特定抽象的實例,它屬于某一種類型,也就是對象是通過類來創(chuàng)建的。它必須從屬于某一個類,通過new關(guān)鍵字進行創(chuàng)建,它代表一個特定類型的實例,對象可以被多次創(chuàng)建。 2、 Java中如何使用繼承來重用代碼 Java采用的是單繼承制,使用extends關(guān)鍵字。通過繼承之后,子類就擁有了父類除開私有成員以外的所有成員,從而達到代碼重用的目的。在繼承過程中,可以通過方法的覆蓋來實現(xiàn)多態(tài),讓子類擁用自己獨特的方法實現(xiàn)方式。 方法的覆蓋(或重寫)和重載是兩個不同的概念。重載是創(chuàng)建一個方法名相同,但參數(shù)列表不同的方法;而方法覆蓋則是子類對父類方法的覆蓋和重寫,定義一個名字、參數(shù)、返回值一樣的方法即可。 3、 簡述Java中的多態(tài) 多態(tài)是建立在繼承的基礎(chǔ)之上的。 “多態(tài)”的本質(zhì)是,發(fā)送消息給某個對象,讓該對象自行決定響應(yīng)何種行為。通過將子類對象引用賦值給超類對象引用變量來實現(xiàn)動態(tài)方法調(diào)用。 4、Java中靜態(tài)成員的特點 類的靜態(tài)成員是通過static關(guān)鍵字修飾的成員,主要包括:靜態(tài)成員變量、靜態(tài)方法和靜態(tài)代碼塊,它們具有以下一些特點:1、在類加載的時候,就進行創(chuàng)建和初始化或執(zhí)行代碼。2、它們對于一個類來說,都只有一份。3、類的所有實例都可以訪問到它們。 靜態(tài)代碼塊先執(zhí)行。 5、 Java派生類中的構(gòu)造方法如何為父類傳遞參數(shù) 在Java中,使用super()的形式來為父類的構(gòu)造方法提供參數(shù),通過參數(shù)的數(shù)目和類型來決定調(diào)用哪一個構(gòu)造方法。如果調(diào)用的是父類的默認的無參數(shù)構(gòu)造方法,則可以不必顯式地使用super()。super()的使用必須放在子類構(gòu)造方法的第一行,否則編譯時會有語法錯誤。 6、 接口和抽象類的區(qū)別 包含抽象(abstract)方法的類,就是抽象類。抽象類不能夠?qū)嵗?。Abstract class 接口所有的方法都是抽象的,它可以包含靜態(tài)的變量,這些變量的值不能修改。interface 抽象類是一種功能不全的類,接口只是一個抽象方法聲明和靜態(tài)不能被修改的數(shù)據(jù)的集合,兩者都不能被實例化。從某種意義上說,接口是一種特殊形式的抽象類,在Java語言中,抽象類表示一種繼承關(guān)系,一個類吸能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口。 Class A extends B implements C,D { } 7、 簡述一下內(nèi)部類的實質(zhì) 包和訪問控制 1、 包應(yīng)該如何被創(chuàng)建及使用 包是Java程序中關(guān)于命名空間的一種手段,它可以有效的解決類重名的問題。當(dāng)需要把一個類定義在某個包下的時候,需要使用package關(guān)鍵字進行定義;當(dāng)需要使用其他包下的類的時候,則需要使用import關(guān)鍵字進行導(dǎo)入。 2、 說明private 、protected 、public、 default(friendly)的區(qū)別 |
|