JAVA基礎(chǔ)+面向?qū)ο?默寫_第1頁
JAVA基礎(chǔ)+面向?qū)ο?默寫_第2頁
JAVA基礎(chǔ)+面向?qū)ο?默寫_第3頁
JAVA基礎(chǔ)+面向?qū)ο?默寫_第4頁
JAVA基礎(chǔ)+面向?qū)ο?默寫_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1、 JDK,JRE和JVM之間的關(guān)系,并闡述JDK,JRE,JVM。5分JDK包含JRE,而JRE包含JVM。(bin里的就是JVM,lib中則是JVM工作所需的類庫,而是JVM和lib和起來就成為JRE)2、 環(huán)境變量path和classpath的作用。5分 1)path的作用:指出java編譯運行時需要用到的可執(zhí)行文件(java.exe,javac.exe 等)所在路徑。 2).classpath的作用:?為JAVA虛擬機尋找 .class文件(也稱為字節(jié)碼文件或類文件)所在的路徑。3、 Java的特點(至少3點)。6分簡單的,可移植的(一次編譯,到處運行),面向?qū)ο蟮?,健壯的,安全性?/p>

2、開源的4、 闡述Java的兩大運行機制。6分1、 JVM虛擬機機制(體現(xiàn)了JAVA語言的可移植性特點)2、 垃圾回收機制GC(體現(xiàn)了JAVA語言的健壯性)5、 寫出Java程序的入口函數(shù)。6分public static void main(Stringargs)6、 一個java文件中可以有多個public修飾的類嗎?2分不可以7、 標識符的命名規(guī)則(6點)。6分1、補充-標識符:【掌握】標識符可以表示 包名,類名,接口名,方法名,變量名。Java標識符的命名規(guī)則: 1).由數(shù)字,字母,下劃線(_)和美元符($)組成 2).不能以數(shù)字開頭 3).關(guān)鍵字不能做標識符 4).區(qū)分大小寫(java中

3、嚴格區(qū)分大小寫) 5).標識符理論上沒有長度限制 6).標識符要符合命名規(guī)則也要符合編碼規(guī)范。 注意:?main方法是程序的入口,方法名不能改。 變量名args可以改 2、補充-Java中的標識符命名編碼規(guī)范:包名: 多單詞組成時,所有字母都小寫。如:com.dremap.test類名接口名: 多單詞組成時,首字母大寫后面遵循駝峰法如:ZzzYyy變量名和函數(shù)名: 多單詞組成時,第一個單詞的首字母小寫,后面遵循駝峰法如:XxxYyyZzz常量名: 所有字母都大寫。多個單詞時每個單詞用下劃線連接。如:XXX_YYY_ZZZ8、 goto和const是java中的關(guān)鍵字嗎?2分是9、 類注釋,方法

4、注釋,單行注釋(語法)。6分1).單行注釋:?/注釋文字2).多行注釋:?/*注釋文字*/3).類注釋:/* 類的描述* author PROGRAMMER'S NAME YYYY/MM/DD* version Version No.* modify* Copyright 版權(quán)由擁有*/4).方法注釋:/* 方法的描述*param ? 參數(shù)的描述*return ? 返回類型的描述*exception ? 出錯信息的描述*/10、 JAVA中的8大數(shù)據(jù)類型,其所占的字節(jié)數(shù)。8分整數(shù)類型:字節(jié)型byte,1個字節(jié),?取值范圍-128127短整型?short,2個字節(jié),?取值范圍-32768

5、32767整型int,4個字節(jié),?取值范圍-21474836482147483647長整型long,8個字節(jié)注意:默認為int類型,假如使用long類型,要使用后綴L或L;浮點類型:單精度?float,4個字節(jié)雙精度double,8個字節(jié)注意:其中double為缺省值,對于float類型的數(shù)據(jù)需要使用后綴f或F,小數(shù)默認類型為?double字符型:char,如'a','b','c',2個字節(jié),?取值范圍065535 一個漢子占2個字節(jié)a).用單個字符指定b).用轉(zhuǎn)義字符指定轉(zhuǎn)義字符:n:換行 t:制表符 ':' ":&q

6、uot; : u等 c).用單個漢字指定d).直接使用unicode值表示,如u4e2d(了解)布爾型:boolean,如true或false,1位 2).引用數(shù)據(jù)類型: ?類,接口,數(shù)組。11、 定義一個任何類型的變量。2分int a=2;12、 定義一個任何類型的常量。2分final int NUMBER_COUNT=8013、 short、int、byte、char的取值范圍。4分Short,2個字節(jié),?取值范圍-3276832767 int,4個字節(jié),?取值范圍-21億21億byte,1個字節(jié),?取值范圍-128127 char,如'a','b',

7、9;c',2個字節(jié),?取值范圍06553514、 Java的3種引用數(shù)據(jù)類型。6分類,接口,數(shù)組15、 boolean類型可以與其他類型進行相互轉(zhuǎn)換嗎?2分boolean不能與其他類型轉(zhuǎn)換。16、 byte、char、short可以和int相互轉(zhuǎn)換嗎?2分byte,short不要和char轉(zhuǎn)換,byte,short,char可以和int轉(zhuǎn)換17、 隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換的規(guī)則。6分小轉(zhuǎn)大自動轉(zhuǎn),大轉(zhuǎn)小強制轉(zhuǎn)。18、int a=10; int b = 10; a = a+a+b; 輸出a的值?3分 30 int a = 10; int b = 10; int c = a+a+b;輸出

8、c的值?3分 3119、 &和&&的區(qū)別?4分&&具有短路的功能,即如果第一個表達式為false,則不再計算第二個表達式。(&沒有短路功能)&還可以做位運算,當&操作符的兩邊表達式不是boolean類型時,&表示按位與操作。20、 short s1=1;s1=s1+1;有什么錯誤?short s1=1;s1+=1;有什么錯誤?6分答:需要強制轉(zhuǎn)換。 s1 = (short)(s1+1);short s1 = 1; s1 += 1;有什么錯誤?答:正確,+=是java運算符,java編譯器會對它做特殊處理。21、 Long

9、g = 6L; g = g << 4; 輸出g的值?3分6*2的4次方=9622、在jdk1.6以后,switch中的表達式可以是int,short,char,byte,String類型的表達式嗎?2分 是23、break、continue、return的區(qū)別?6分break:>使用switch-case結(jié)構(gòu)或者循環(huán)結(jié)構(gòu)中>在循環(huán)結(jié)構(gòu)中,一旦執(zhí)行到break,就跳出當前循環(huán)。跳出整個循環(huán)continue:使用在循環(huán)結(jié)構(gòu)中>一旦執(zhí)行到continue,就跳出當次循環(huán)。跳出本次循環(huán),繼續(xù)下次循環(huán)return:跳出方法24、 函數(shù)定義和函數(shù)調(diào)用的語法格式。6分函數(shù)定義修

10、飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,.)執(zhí)行語句;return 返回值; /函數(shù)調(diào)用A:單獨調(diào)用B:輸出調(diào)用C:賦值調(diào)用,開發(fā)中用的最多。25、 函數(shù)和函數(shù)之間是什么關(guān)系?2分 A.函數(shù)與函數(shù)是?平級關(guān)系,不能嵌套定義。 B.函數(shù)只有被調(diào)用才執(zhí)行。 26、 一維數(shù)組的靜態(tài)初始化和動態(tài)初始化 (舉例說明)。3分一維數(shù)組的初始化有兩種方式:方式一:直接賦初值的方式(靜態(tài)初始化方式)初始化數(shù)組與給數(shù)組元素賦值同時進行。 格式:類型名或類數(shù)組名=值1,值2,.,值n;(推薦) 或類型名或類 數(shù)組名=值1,值2,.,值n;String name = "王曉明&

11、quot;,"李曉明","王大春" 方式二:對象創(chuàng)建方式,即使用new關(guān)鍵字(動態(tài)初始化方式)初始化數(shù)組與給數(shù)組元素賦值分開進行。 格式:類型名或類數(shù)組名=new類型名或類值1,值2,.,值n;例:String name = new String"王曉明","李曉明","王大春"或類型名或類數(shù)組名=new類型名或類length; 數(shù)組名=值1; . 數(shù)組名length-1=值n;27、 增強型for循環(huán)(舉例說明)。5分for(double d:score)System.out.println(

12、d); 注意:?冒號前的變量類型一定都要和數(shù)組前后的變量類型一致28、int a = 1,2,3; int b = 4,5,6; a=b; System.out.println(a0); 3分 429、 寫出冒泡排序原理和冒泡排序代碼。10分比較相鄰的元素,如果違反最后的順序準則(從大到小或從小到大),則交換/冒泡算法原理:相鄰的兩個元素兩兩交換位置int num = 10,7,9,1,13,15,11;for (int i = 0;i<num.length-1;i+)/控制每趟冒泡比較的次數(shù)for (int j = 0;j<num.length-i-1;j+)if (numj&g

13、t;numj+1)int temp=numj+1;numj+1=numj;numj=temp;for (int q=0;q < num.length;q+)System.out.print(numq+"t");30、 Eclipse和MyEclipse的區(qū)別(至少3點)。6分1.MyEclipse:收費。2.集成插件多,而Eclipse需要自己配置3.對于j2ee開發(fā)方便,4.啟動沒Eclipse快5.容易造成卡死(插件多)6.更新速度快31、 面向過程編程和面向?qū)ο缶幊痰膮^(qū)別。4分面向過程編程:OPP:Procedure Oriented Programming 是

14、以?函數(shù)為基礎(chǔ),完成各種操作,強調(diào)的是過程?。面向?qū)ο缶幊蹋篛OP: Object Oriented Programming 是以?對象為基礎(chǔ),完成各種操作,強調(diào)的是?對象,結(jié)果。面向?qū)ο笫腔?面向過程的。32、 類和對象的關(guān)系。4分類可以理解為一個靜態(tài)的模板,對象是一個具體的現(xiàn)實;類是對象的模板,對象是類的實例;33、 成員變量的類型、成員變量的默認值。9分1).成員變量的類型可以是Java中的任何一種數(shù)據(jù)類型: 包括: 基本類型:?整型,浮點型,字符型,布爾型。 引用類型:?數(shù)組,對象和接口(對象和接口見后續(xù)內(nèi)容) 2).成員變量的默認值 整型變量:默認初值為?0 浮點型:默認初值為?0

15、.0 布爾型:默認初值為?false 引用類型:默認初值為?null34、 成員變量和局部變量的區(qū)別(3點)。6分A:定義位置區(qū)別 成員變量:?類里方法之上的局部變量:?方法內(nèi)部B:初始化值的區(qū)別 成員變量:?可以只聲明不賦值,但是不能先聲明后賦值局部變量:?先聲明后賦值,或聲明同時賦值C:存儲位置的區(qū)別: 成員變量:?儲存在堆中 局部變量:?存儲在棧中35、 在方法中如果要使用隱藏的成員變量必須使用哪個關(guān)鍵字?2分this36、 實例變量和類變量的區(qū)別(3點)。6分 a).在語法定義上的區(qū)別: 用關(guān)鍵字static給予修飾的稱為類變量,否則叫實例變量(類變量也叫static變量,靜態(tài)變量)

16、b).在程序運行時的區(qū)別: 實例變量:?對象名.實例變量名 靜態(tài)變量:?類名.靜態(tài)變量名c).內(nèi)存分配的區(qū)別: 實例變量:?跟隨對象,每創(chuàng)建一個對象就會給實例對象分配一個空間。堆 靜態(tài)變量:?存放在靜態(tài)區(qū),只有分配一塊空間存儲,37、 實例方法和類(靜態(tài))方法的區(qū)別。4分1).使用:靜態(tài)方法只能調(diào)用靜態(tài)方法,只能訪問靜態(tài)變量,可以定義局部變量, 不能出現(xiàn)this。 實例方法中可以調(diào)用其他實例方法和靜態(tài)方法,可以訪問靜態(tài)變量和實例變量,可以定義局部變量 2).語法上的區(qū)別:?有無static 3).格式:靜態(tài)方法:?類名.靜態(tài)方法、Cat.eat(); 實例方法:?對象名.實例方法、p.publ

17、ic();38、 構(gòu)造函數(shù)的語法規(guī)則以及構(gòu)造函數(shù)的作用。4分(1)?構(gòu)造函數(shù)的方法名要和類名一樣(2)?構(gòu)造函數(shù)沒有返回類型(3)?作用:完成對類對象的初始化工作,簡化對象初始化時的代碼。(4)?構(gòu)造函數(shù)在創(chuàng)建對象時被調(diào)用(5)?在創(chuàng)建一個類的新對象的同時,系統(tǒng)會自動調(diào)用該類的構(gòu)造函數(shù)39、屬性初始化有哪幾種方式(至少4種)。4分 1).使用默認構(gòu)造方法/無參構(gòu)造方法 2).使用有參構(gòu)造方法(參數(shù)不要太多) 3).使用靜態(tài)區(qū)塊 4).代碼塊40、 靜態(tài)區(qū)塊、代碼塊、構(gòu)造函數(shù)執(zhí)行的先后順序。6分靜態(tài)區(qū)塊>代碼塊>構(gòu)造函數(shù)41、 使用包是為了解決什么問題。2分為了解決類的重名沖突,和類

18、的訪問權(quán)限的控制,Java提供包(package)來管理類名空間。com.dremap.test-測試類com.dremap.service-服務(wù)com.dremap.dao-持久com.dremap.entity-放實體類42、java中哪個包不需要導(dǎo)入。java.util包下有哪些常用的類(至少寫出兩個)。4分Scanner(掃描器),Date(日期類),43、 什么是對象組合。2分44、 this關(guān)鍵字的使用及其注意點;4分1)this關(guān)鍵字:this.屬性名 this.方法名this:指當前對象,調(diào)用當前對象的屬性和方法 (可能是從父類繼承下來的) 如果子類隱藏了父類的屬性和方法,想要

19、 訪問父類的屬性和方法,就要用?super。super關(guān)鍵字的使用及其注意點;4分1)super關(guān)鍵字(1).由于繼承,子類中可以使用?this訪問父類非私有的屬性和方法, 但如果子類隱藏了父類的屬性和方法,如果需要明確的指明父類的 屬性和方法,就要用?super 例如:super.show(); super()的使用及其注意點;4分2)super(); 1、作用:?調(diào)用父類無參構(gòu)造函數(shù) 2、使用位置:?只能使用在子類構(gòu)造函數(shù)中的第一條用語句 3、注意點: 1).只能是子類構(gòu)造函數(shù)中的第一條語句位置 2).如果沒有出現(xiàn)super();會有一個默認隱藏的super(); 3)

20、.如果父類只有有參構(gòu)造函數(shù),那么super()就會報錯。super(參數(shù)1,參數(shù)2)的使用及其注意點;4分3)super(形參1,形參2.);1、作用:?調(diào)用父類的有參構(gòu)造函數(shù)2、使用位置:?3、注意點: 1).只能是子類構(gòu)造函數(shù)中的第一條語句位置; 2).如果沒有出現(xiàn)super(形參1,形參2.);不會有一個默認隱藏的super(形參1,形參2.); 3).注意參數(shù),注意調(diào)用的父類構(gòu)造函數(shù)。this()的使用及其注意點;4分2)this();1、作用:?調(diào)用本類無參構(gòu)造函數(shù)2、使用位置:?放在構(gòu)造函數(shù)的第一條語句3、注意點: 1).必須是構(gòu)造函數(shù)中的第一條語句 2).在子類構(gòu)造函數(shù)中supe

21、r();和this();同時使用時,二選一。this(參數(shù)1,參數(shù)2)的使用及其注意點;4分3)this(參數(shù)):1、作用:?調(diào)本類的有參構(gòu)造函數(shù),2、使用位置:?第一行3、注意點: 1).不能自己調(diào)用自己(死循環(huán)) 2).注意參數(shù),注意調(diào)用的本類構(gòu)造函數(shù)總結(jié):this和super的使用:this代表本類對象的引用。 super代表父類對象似的內(nèi)存空間的標示。(父類對象的引用) 成員變量:this.變量 -當前類的變量 super.變量-父類的變量? 構(gòu)造方法:用在構(gòu)造方法中的 。this(參數(shù))-本類的構(gòu)造方法super(參數(shù))-父類的構(gòu)造方法 ? 成員方法:this.方法名()-本類的方法

22、super.方法名()-父類的方法45、 方法重載和方法重寫的區(qū)別。8分重載:“兩同一不同”:同一個類,同一個方法名,不同的參數(shù)列表。 注:方法的重載與方法的返回值無關(guān)! >構(gòu)造器是可以重載的重寫:(前提:在繼承的基礎(chǔ)之上,子類在獲取了父類的結(jié)構(gòu)以后,可以對父類中同名的方法進行“重構(gòu)”) 方法的返回值,方法名,形參列表形同;權(quán)限修飾符不小于父類的同名方法;子類方法的異常類型不大于父類的; 兩個方法要同為static或同為非static。46、 構(gòu)造函數(shù)可以重載嗎?構(gòu)造函數(shù)可以重寫嗎?4分構(gòu)造方法不可以被重寫。(因為構(gòu)造函數(shù),不可被繼承。)可重載47、填寫下列表格(可見還是不可以見)。8分

23、訪問控制符同一類中同一包中的其他類不同包中的子類不同包中的非子類privateyesyes默認yesyesportectedyesyesyespublicyesyesyesyes48、 Java中兩個常用的非訪問控制符是什么?2分static final49、 final和finalize的區(qū)別。4分final 用于聲明屬性,方法和類,分別表示屬性,方法不可覆蓋,類不可繼承。 finalize()是Object類的一個方法,在垃圾收集器 執(zhí)行的時候會調(diào)用此方法,回收在棧上分配的內(nèi)存。50、 finalize()和gc()的區(qū)別。4分(1). finalize()清除棧上分配的內(nèi)存,而gc()則

24、清除在堆上分配的內(nèi)存。(2).finalize()是Object類中的方法,而gc()則是System類中的方法。51、上轉(zhuǎn)型對象的使用。6分語法:父類名 對象名 = new 子類名(); * 使用: * 1.上轉(zhuǎn)型對象可以訪問子類繼承的屬性和子類繼承的方法 * 2.上轉(zhuǎn)型對象可以訪問子類重寫的方法和子類隱藏的屬性(父類的屬性) * 3.上轉(zhuǎn)型對象不能調(diào)用子類新增的屬性和方法 * * 總結(jié):上轉(zhuǎn)型對象訪問到的都是父類的,除了子類重寫的方法。 * 應(yīng)用:重載,重寫,上轉(zhuǎn)型。 * 好處:可以實現(xiàn)多態(tài)52、 什么是上轉(zhuǎn)型?什么又是下轉(zhuǎn)型?(可舉例說明)6分1.多態(tài)性的表現(xiàn):方法的重載與重寫 子類對象

25、的多態(tài)性2.使用的前提:要有繼承關(guān)系 要有方法的重寫3.格式:Person p = new Man();/向上轉(zhuǎn)型 / 虛擬方法調(diào)用:通過父類的引用指向子類的對象實體,當調(diào)用方法時,實際執(zhí)行的是子類重寫父類的方法 p1.eat(); p1.walk(); / p1.entertainment();4.>編譯時,認為p是Person類型的,故只能執(zhí)行Person里才有的結(jié)構(gòu),即Man里特有的結(jié)構(gòu)不能夠調(diào)用 >子類對象的多態(tài)性,并不使用于屬性。5.關(guān)于向下轉(zhuǎn)型: 向下轉(zhuǎn)型,使用強轉(zhuǎn)符:() 為了保證不報ClassCastException,最好在向下轉(zhuǎn)型前,進行判斷: instanceof/ 若a是A類的實例,那么a也一定是A類的父類的實例。if (p1 instanceof Woman) System.out.println("hello!");Woman w1 = (Woman) p1;w1.shopping();if (p1 instanceof Man) Man m1 = (Man) p1;m1.entertainment();53、 抽象類有什么作用?2分強制要求子類必須完成某些功能。54、 抽象類和接口的區(qū)別?4分1.成員變量接口里只有常量,2.成員方法接口只能有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論