第一篇:JAVA復(fù)習(xí)要點(diǎn)
JAVA復(fù)習(xí)要點(diǎn):
考試開(kāi)卷??!可以帶書(shū)和ppt
考試時(shí)間是本周四下午2點(diǎn),地點(diǎn)未定,到時(shí)候會(huì)通知 第一題:判斷題 10道題,1分一道
第二題:?jiǎn)雾?xiàng)選擇題,20道題,2分一道
第三題:程序閱讀題,10道題,4分一道
第四題:編寫(xiě)程序題:用類(lèi)實(shí)現(xiàn)接口(ppt上講過(guò)類(lèi)似的例子)
1、以矩形,圓形等為主類(lèi)寫(xiě)接口
2、矩形類(lèi)接口的屬性方法
3、Main類(lèi),主方法,矩形對(duì)象的信息輸入
第二篇:java要點(diǎn)總結(jié)
第一章 JAVA概述
1.1.1了解JAVA 1995年JAVA作為一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言以一種全新的面貌問(wèn)世,其生存的主要特點(diǎn)是:與平臺(tái)無(wú)關(guān)、健壯、安全、高效這些適應(yīng)網(wǎng)絡(luò)運(yùn)行需要的特點(diǎn)。
應(yīng)用領(lǐng)域;嵌入式應(yīng)用、桌面應(yīng)用、企業(yè)級(jí)應(yīng)用、JAVA的兩種應(yīng)用程序;Application和Applet
1.1.2 JAVA的誕生和發(fā)展
JAVA的三大平臺(tái);JAVA ME(嵌入式平臺(tái))、JAVA SE(標(biāo)準(zhǔn)平臺(tái))、JAVA EE(企業(yè)平臺(tái))
JDK包含java編譯器、java類(lèi)庫(kù)、java運(yùn)行時(shí)的環(huán)境、java命令行工具
Java的特點(diǎn);
平臺(tái)無(wú)關(guān)性;是指一個(gè)應(yīng)用程序能夠運(yùn)行于不同的操作系統(tǒng)平臺(tái)
完全面向?qū)ο蠛秃?jiǎn)單性;JAVA是從C++發(fā)展而來(lái)的,它繼承了C++語(yǔ)言的語(yǔ)法規(guī)則但是放棄了其語(yǔ)言模糊,過(guò)于復(fù)雜,安全性差,不適合網(wǎng)絡(luò)應(yīng)用的諸多特性、JAVA是完全面向?qū)ο蟮模械脑O(shè)計(jì)都必須在類(lèi)中實(shí)現(xiàn)。JAVA是提供單重繼承機(jī)制,JAVA是提倡簡(jiǎn)單性原則。
可靠性;JAVA在語(yǔ)言和運(yùn)行機(jī)構(gòu)兩個(gè)級(jí)別上提供程序運(yùn)行穩(wěn)定性和可靠性保證。
安全性;JAVA采用域管理模型,無(wú)論是本地代碼還是遠(yuǎn)程代碼都可以通過(guò)配置設(shè)定可訪(fǎng)問(wèn)資源域。
多線(xiàn)程;就想多進(jìn)程機(jī)制能夠使一個(gè)應(yīng)用程序并發(fā)執(zhí)行一樣。直接支持分布式的網(wǎng)絡(luò)應(yīng)用;
1.1.3JAVA的核心技術(shù)
JDBC(數(shù)據(jù)庫(kù)連接)JSP(java網(wǎng)頁(yè)服務(wù)器)JAVABEANS JAVAMAIL
1.2java的運(yùn)行方式和應(yīng)用
1.2.1Application和Applet
1.Application是能夠獨(dú)立運(yùn)行的應(yīng)用程序。有控制臺(tái)和圖形用戶(hù)界面兩種運(yùn)行方式。Java程序所有語(yǔ)句都必須寫(xiě)在類(lèi)中class是生命類(lèi)的關(guān)鍵字。
2.Applet是可嵌入式Web頁(yè)面的最小應(yīng)用,它不能獨(dú)立運(yùn)行,必須插入到超文本(*.html)中。
1.2.2java虛擬機(jī)執(zhí)行程序的過(guò)程
虛擬機(jī);java虛擬機(jī)是一套支持java語(yǔ)言運(yùn)行的軟件系統(tǒng),定義了指令集,寄存器集,類(lèi)文件結(jié)構(gòu)棧,垃圾收集堆,內(nèi)存區(qū)域等,提供了跨平臺(tái)能力的基礎(chǔ)框架。
虛擬機(jī)的特點(diǎn);動(dòng)態(tài)性、已成處理、多線(xiàn)程。
課后作業(yè);
1、java有哪些適宜網(wǎng)絡(luò)的特點(diǎn)?
平臺(tái)無(wú)關(guān)性,高效,健壯,安全,面向?qū)ο?/p>
2、java保留和放棄了c++中的那些語(yǔ)法和面向?qū)ο髾C(jī)制?為什么需要這樣做?
Java保留了c++中的語(yǔ)法規(guī)則和面向?qū)ο蟮幕緳C(jī)制,放棄了c++語(yǔ)言模糊過(guò)于復(fù)雜安全性差不適應(yīng)網(wǎng)絡(luò)的諸多特性。如;不支持類(lèi)似c語(yǔ)言的面向過(guò)程設(shè)計(jì),全程變量,goto語(yǔ)句,宏定義,全局函數(shù)等語(yǔ)法規(guī)則不支持機(jī)構(gòu)聯(lián)合和指針等數(shù)據(jù)類(lèi)型,不支持多重繼承,但是可以通過(guò)單重繼承+接口來(lái)實(shí)現(xiàn)多重繼承。
3、java對(duì)源程序文件名的命名規(guī)則有什么要求?源程序文件編譯后生成什么文件?
Java中源程序的命名必須和類(lèi)名一致,源程序文件經(jīng)編譯后生成”.class”文件。
4、java程序的運(yùn)行機(jī)制怎樣?與c++有什么不同?
Java程序在運(yùn)行時(shí)提供資源回收機(jī)制,對(duì)內(nèi)存資源進(jìn)行自動(dòng)管理,不需要在程序中編寫(xiě)回收資源語(yǔ)句,而c++是通過(guò)在程序中編寫(xiě)回收語(yǔ)句來(lái)回收資源,對(duì)內(nèi)存進(jìn)行管理的。
5、什么是平臺(tái)無(wú)關(guān)性?java怎樣實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性?
是指一個(gè)應(yīng)用程序能夠運(yùn)行于不同的操作系統(tǒng)平臺(tái),通過(guò)虛擬機(jī)來(lái)實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性
6、java的應(yīng)用程序有哪兩種形式?他們運(yùn)行時(shí)有什么不同?
有applecation和applet兩種形式。前者可以獨(dú)立運(yùn)行,而后者必須通過(guò)嵌入瀏覽器中在經(jīng)過(guò)虛擬機(jī)才能運(yùn)行。
8、環(huán)境變量path和classpath的作用分別是什么?
Path變量指出可執(zhí)行文件的路徑,classpath變量指出java包的路徑。
10、程序中的錯(cuò)誤有哪幾種?分別在什么時(shí)刻被發(fā)現(xiàn)的?
12、什么是包?為什么要包機(jī)制?java有哪些包?各有什么功能?
13.在MyEclipse集成開(kāi)發(fā)環(huán)境中,怎樣進(jìn)行編輯、編譯、運(yùn)行和調(diào)試程序的操作。
第三篇:Java期末復(fù)習(xí)
2015級(jí)Java期末復(fù)習(xí)
考試題型和分值:
1、判斷題(每題1分,5題,共5分)
2、填空題(每題1分,5題,共5分)
3、選擇題(每題2分,15題,共30分)
4、簡(jiǎn)答題(4題,共30分)
5、程序題(2題,共30分)
程序練習(xí):
1. 編程實(shí)現(xiàn):求出一組數(shù)中的最大數(shù)和最小數(shù)。
2. 提示用戶(hù)輸入1—10的字符,然后判斷這個(gè)整數(shù)的奇偶性。3.字符串的相關(guān)操作(參考實(shí)驗(yàn)指導(dǎo) 實(shí)驗(yàn)
19、實(shí)驗(yàn)20)
4.編程實(shí)現(xiàn):在程序中定義一個(gè)Person類(lèi),一個(gè)Person類(lèi)的子類(lèi)Student類(lèi),再定義主類(lèi)C1,在main方法中,生成Student的對(duì)象,并輸出各項(xiàng)信息。(參考《實(shí)驗(yàn)指導(dǎo)》實(shí)驗(yàn)
32、實(shí)驗(yàn)33)
5.求自定義幾何圖形的面積和周長(zhǎng)。首先定義一個(gè)抽象類(lèi)Geometry,該來(lái)中包含兩個(gè)抽象方法,一個(gè)是表示求面積的getArea(),另一個(gè)表示求周長(zhǎng)的getPerimeter()。然后通過(guò)繼承來(lái)分別求出圓形、等邊三角形、長(zhǎng)方形的面積和周長(zhǎng)。最后定義主類(lèi),給出具體的值后輸出一個(gè)圓形、一個(gè)等邊三角形和一個(gè)長(zhǎng)方形的面積和周長(zhǎng)。
6.定義一個(gè)學(xué)生類(lèi),包括學(xué)生的姓名、學(xué)號(hào)、英語(yǔ)成績(jī)、數(shù)學(xué)成績(jī)、Java成績(jī)、操作系統(tǒng)成績(jī)、求每個(gè)學(xué)生的總分和求平均分。再定義主類(lèi)來(lái)測(cè)試該類(lèi),創(chuàng)建兩個(gè)學(xué)生對(duì)象,例如:王平1號(hào) 成績(jī)分別為80、90、85、70 輸出該學(xué)生的總分和平均分。(需要用構(gòu)造方法來(lái)實(shí)現(xiàn)各個(gè)屬性的初始化)
7.定義描述職工檔案的類(lèi)Archives,保護(hù)成員變量有職工號(hào)(No)、姓名(Name)、性別(Sex)、年齡(Age)。成員方法有:顯示職工信息的方法Show()。再由職工檔案類(lèi)派生出職工工資類(lèi)Laborage,在職工工資類(lèi)Laborage中新增私有成員變量:應(yīng)發(fā)工資(SSalary)、社保金(Security)、實(shí)發(fā)工資(Fsalary),其公有成員方法有:構(gòu)造方法,計(jì)算實(shí)發(fā)工資的方法Count(),計(jì)算公式為:實(shí)發(fā)工資=應(yīng)發(fā)工資-社保金。顯示職工檔案及工資的方法Display()。最后定義主類(lèi),在主方法中用Laborage類(lèi)定義職工對(duì)象lab,并賦初始值:
(1001,“張三”, “男” ,21,2000,100),然后顯示職工檔案與工資。8.構(gòu)造方法的使用。參考實(shí)驗(yàn)指導(dǎo) 實(shí)驗(yàn)
27、實(shí)驗(yàn)28。9.編寫(xiě)一個(gè)Java程序,在程序中建立一個(gè)窗口,有四個(gè)文本框、兩個(gè)按鈕,單擊“求和”按鈕,能把第一個(gè)和第二個(gè)文本框的整數(shù)相加后結(jié)果顯示在第三個(gè)文本框中,點(diǎn)擊“復(fù)制”按鈕,能將第三個(gè)文本框的內(nèi)容復(fù)制到第四個(gè)文本框中,最后還可以正常關(guān)閉窗口。運(yùn)行效果如下圖所示:
第1章 Java語(yǔ)言概述
1.Java語(yǔ)言的特點(diǎn)。(Java語(yǔ)言在1995年是哪個(gè)公司推出,2010年又是被誰(shuí)收購(gòu)?P2平臺(tái)無(wú)關(guān)性、編譯與解釋并存,Java是如何實(shí)現(xiàn)“一次編寫(xiě),到處運(yùn)行”?
2.面向?qū)ο蟮幕咎卣鳌?/p>
3.什么是Java虛擬機(jī)?字節(jié)碼的好處? 4.Java應(yīng)用程序的種類(lèi)及區(qū)別。
第2章 Java語(yǔ)言開(kāi)發(fā)環(huán)境
1.JDK環(huán)境的配置。2.Path和ClassPath的作用?
第3章 Java語(yǔ)言基礎(chǔ)
1.基本數(shù)據(jù)類(lèi)型有哪些?了解它們的數(shù)據(jù)的性質(zhì)、取值范圍、存儲(chǔ)方式、參與的運(yùn)算?它們?cè)趦?nèi)存中存放的是數(shù)據(jù)值本身。2.Java定義了哪些整數(shù)類(lèi)型。
3.引用數(shù)據(jù)類(lèi)型有哪些?在內(nèi)存中存放的是指向該數(shù)據(jù)的地址,不是數(shù)據(jù)值本身。
4.Java 標(biāo)識(shí)符的命名規(guī)則是什么?(給定標(biāo)識(shí)符,會(huì)判斷是否合法)
5.Java語(yǔ)言是如何聲明常量的。用final定義常量。單精度后加f或F,雙精度后加d或D可省略。
6.變量。注意:Java 語(yǔ)言程序中可以隨時(shí)定義變量,不必集中在執(zhí)行語(yǔ)句之前。
7.字符串?dāng)?shù)據(jù)類(lèi)型轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。8.數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串類(lèi)型。(使用 +)
int MyInt=1234;
String MyString=“"+MyInt;
9.Java 語(yǔ)言中從鍵盤(pán)輸入數(shù)據(jù)。
? 由鍵盤(pán)輸入的數(shù)據(jù),不管是文字還是數(shù)字,Java皆視為字符串。? 兩種輸入方式。(輸入緩沖區(qū)和Scanner,至少掌握一種輸入方式。)10.表達(dá)式求值表達(dá)式求值,自增自減1 ? ++和——的運(yùn)算,注意前置和后置,尤其是用在復(fù)合語(yǔ)句中。
第4章 流程控制
1.Java語(yǔ)言不允許在兩個(gè)嵌套的復(fù)合語(yǔ)句內(nèi)聲明兩個(gè)同名的變量。2.Java中的三種注釋方式。(Java特有的文件注釋?zhuān)a(chǎn)生html文檔)。3.可以用選擇和循環(huán)結(jié)構(gòu)來(lái)解決問(wèn)題,三種循環(huán)語(yǔ)句的區(qū)別(見(jiàn)程序)4.break和continue的含義和區(qū)別。
第5章 數(shù)組與字符串
1.數(shù)組的概念。相同數(shù)據(jù)類(lèi)型的元素按一定順序排列的集合。Java中,數(shù)組元 素可以為簡(jiǎn)單數(shù)據(jù)類(lèi)型,也可以為對(duì)象。2.Java語(yǔ)言?xún)?nèi)存分配問(wèn)題
? 棧內(nèi)存:定義的基本類(lèi)型的變量和對(duì)象的引用變量,超出作用域?qū)⒆詣?dòng)釋放。
? 堆內(nèi)存:存放由new運(yùn)算符創(chuàng)建的對(duì)象和數(shù)組。由Java虛擬機(jī)的自動(dòng)垃圾回收器來(lái)管理。
3.什么是引用變量?(為數(shù)組或?qū)ο笃鸬囊粋€(gè)名稱(chēng))4.Java 中一維數(shù)組的定義和使用。
int a[ ];//不能給出數(shù)組長(zhǎng)度,因?yàn)榇藭r(shí)還沒(méi)有給數(shù)組分配內(nèi)存 int[ ] a;int a[ ] = {1,2,3,4};int[ ] a = new int[4];// 用new分配內(nèi)存時(shí),數(shù)組的每個(gè)元素都會(huì)自動(dòng)賦默認(rèn)值
Java對(duì)數(shù)組元素要進(jìn)行越界檢查。
每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度,如a.length指出數(shù)組a所包含的元素個(gè)數(shù)。(常作為循環(huán)控制條件)5.二維數(shù)組的定義和使用。
? Java中的二維數(shù)組看作是由多個(gè)一維數(shù)組構(gòu)成。? 求二維數(shù)組的維數(shù) 計(jì)算某數(shù)組的行數(shù):數(shù)組名.length 計(jì)算某數(shù)組中某行元素的個(gè)數(shù):數(shù)組名[下標(biāo)].length ? 二維數(shù)組申請(qǐng)內(nèi)存方式(必須指定高層維數(shù)):(下面哪些錯(cuò)誤)
int[][] MyArray = new int [10][];int[][] MyArray = new int [10][3];int[][] MyArray = new int [][3];int[][] MyArray = new int [][];
6.字符串的聲明和使用。
? String 變量名;
變量名 = new String(”字符串“);
String 變量名 = new String(”字符串“); String 變量名 = ”字符串";
? String 類(lèi)的常用方法(求長(zhǎng)度,定位,==和equals方法比較)
第6章 類(lèi)與對(duì)象
1.什么是類(lèi)?什么是對(duì)象?類(lèi)和對(duì)象有怎樣的關(guān)系? 2.類(lèi)的定義和使用。
? 類(lèi)修飾符及含義見(jiàn)教材所示。
? 類(lèi)的成員不能是執(zhí)行語(yǔ)句。
? 成員變量和成員方法的定義、修飾符見(jiàn)教材所示。
? 在定義類(lèi)的成員變量時(shí),可以同時(shí)賦初值,但對(duì)成員變量的操作只能放在方法中。
? 類(lèi)中成員間的訪(fǎng)問(wèn)機(jī)制。(在一個(gè)類(lèi)中的訪(fǎng)問(wèn)機(jī)制,一個(gè)類(lèi)訪(fǎng)問(wèn)另外一個(gè)類(lèi))
3.成員變量與局部變量的區(qū)別?
4.對(duì)象的創(chuàng)建和使用。對(duì)象的創(chuàng)建:
Cylinder volu;
//聲明指向?qū)ο蟮淖兞縱olu
volu = new Cylinder();
//利用new創(chuàng)建新的對(duì)象,并讓變volu指向它
或者:Cylinder volu = new Cylinder();volu只是對(duì)象的名稱(chēng),它是指向?qū)ο髮?shí)體的引用變量,而非對(duì)象本身。5.當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí),會(huì)對(duì)其中各種類(lèi)型的成員變量按表6.4自動(dòng)進(jìn)行初始化。
6.一個(gè)類(lèi)多個(gè)對(duì)象,它們的成員變量分配在不同的內(nèi)存,因此修改某一對(duì)象的成員變量時(shí)其他不受影響。7.this關(guān)鍵字的使用?!皌his.成員名”,此時(shí)this代表調(diào)用此成員的對(duì)象。
若在通過(guò)方法調(diào)用,將外部傳入的參數(shù)賦值給類(lèi)的成員變量,方法的形式參數(shù)與類(lèi)的成員變量同名時(shí),則需用this來(lái)標(biāo)識(shí)成員變量。
8.傳遞數(shù)組:指明參數(shù)是一個(gè)數(shù)組,實(shí)參只給出數(shù)組名。
9.當(dāng)參數(shù)是基本數(shù)據(jù)類(lèi)型時(shí),采用傳值方式調(diào)用;當(dāng)參數(shù)是引用型的變量時(shí),則是傳址方式調(diào)用。10.了解匿名對(duì)象。
第7章 Java語(yǔ)言類(lèi)的特征
1.私有成員(private)、公共成員(public)、保護(hù)成員(protected)、缺省訪(fǎng)問(wèn)控制符各自的訪(fǎng)問(wèn)權(quán)限是什么?
2.什么是方法的重載,即方法的重載條件是什么?會(huì)判斷哪些是合法的重載形式。
3.什么是構(gòu)造方法?構(gòu)造方法有哪些特征?何時(shí)被調(diào)用?什么是默認(rèn)構(gòu)造方法?何時(shí)被調(diào)用?
4.什么是靜態(tài)成員(類(lèi)成員)?什么是實(shí)例成員?使用靜態(tài)成員有什么意義?靜態(tài)成員的訪(fǎng)問(wèn)格式是什么?main方法為何是public,static的呢? 5.對(duì)象的賦值與比較。
6.對(duì)象是一種引用型變量,它實(shí)際保存的是對(duì)象在內(nèi)存中的地址。7.引用變量也可作為方法的參數(shù),采用傳址調(diào)用。例如: Circle c1 = new Circle(2);
Circle c2 = new Circle(3);
c2 = c1;
//它們所共同指向的同一對(duì)象的內(nèi)容相等還是兩個(gè)引用變量中所保存的地址相等呢?
第8章 繼承、抽象類(lèi)和接口
1.什么是繼承?什么是父類(lèi)、子類(lèi)?子類(lèi)是如何創(chuàng)建的?
在Java語(yǔ)言中有一個(gè)名為java.lang.Object的特殊類(lèi),所有的類(lèi)都是直接或間接地繼承該類(lèi)而得到的。2. 在子類(lèi)中如何訪(fǎng)問(wèn)父類(lèi)的成員。
3. 什么是方法的覆蓋。方法的覆蓋與方法的重載有和區(qū)別?
4. ”==”和equal()方法比較對(duì)象的異同?
5.什么是抽象類(lèi)和抽象方法?抽象類(lèi)有哪些特征?
6.接口的定義?接口與抽象類(lèi)有何區(qū)別? 7.利用接口如何實(shí)現(xiàn)類(lèi)的多重繼承? 8. 軟件包的概念、作用、應(yīng)用。(package、import語(yǔ)句應(yīng)放在哪里)9. Java的垃圾自動(dòng)回收機(jī)制。10.如何理解Java的多態(tài)性?
第9章 異常處理
1.什么是異常?按照錯(cuò)誤的性質(zhì)將錯(cuò)誤如何分類(lèi)及其含義?(哪些屬于異常,會(huì)判斷)
2.什么是拋出異常和捕獲異常?try-catch-finally語(yǔ)句如何使用?
3.Java的異常處理機(jī)制是如何實(shí)現(xiàn)的,為什么有一些異常一定要捕獲,否則編譯不能通過(guò)? 4.拋出異常的方式
在捕獲一個(gè)異常前,必須有一段代碼生成一個(gè)異常對(duì)象并把它拋出。根據(jù)異常類(lèi)的不同,拋出異常的方法也不相同。
第12章 圖形界面設(shè)計(jì)
1. 了解java.awt包中主要類(lèi)及組件類(lèi)的繼承關(guān)系。2.什么是組件?組件是怎樣分類(lèi)的?
3.什么是窗口?窗口又如何分類(lèi),他們又分別具有怎樣的特征? 4.什么是面板?面板與窗口有何區(qū)別?
5.圖形用戶(hù)界面設(shè)計(jì)的步驟?
6.什么是控件?它有何作用?Java中有哪些常用控件?
7.什么是窗口的布局管理?有哪些布局管理方式?它們分別具有怎樣的策略或特征?
8.容器和普通組件的區(qū)別是什么?
第13章 事件處理
1.什么是事件處理?什么是事件?什么是事件源?什么是事件監(jiān)聽(tīng)者?什么是事件處理接口?
2.什么是委托事件模型?
3.擔(dān)任監(jiān)聽(tīng)者的方式有哪些?
4.java語(yǔ)言把事件如何分類(lèi)?
5.Java語(yǔ)言的事件處理類(lèi)及其繼承關(guān)系?
6.什么是適配器類(lèi)?它與接口完成事件處理有何區(qū)別?
第四篇:java程序員面試要點(diǎn)
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是 Object類(lèi)的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
第二,Anonymous Inner Class(匿名內(nèi)部類(lèi))是否可以extends(繼承)其它類(lèi),是否可以implements(實(shí)現(xiàn))interface(接口)?
可以繼承其他類(lèi)或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內(nèi)部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
第四,&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and).第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線(xiàn)程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線(xiàn)程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的區(qū)別。
Collection是集合類(lèi)的上級(jí)接口,繼承與他的接口主要有Set 和List.Collections是針對(duì)集合類(lèi)的一個(gè)幫助類(lèi),他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線(xiàn)程安全化等操作。
第七,什么時(shí)候用assert。
1.4新增關(guān)鍵字(語(yǔ)法),用于測(cè)試boolean表達(dá)式狀態(tài),可用于調(diào)試程序。使用方法 assert,表示如果表達(dá)式為真(true),則下面的語(yǔ)句執(zhí)行,否則拋出AssertionError。另外的使用方式assert < boolean表達(dá)式>:,表示如果表達(dá)式為真,后面的表達(dá)式忽略,否則后面表達(dá)式的值用于A(yíng)ssertionError的構(gòu)建參數(shù)。注意編譯時(shí)要增加-source 1.4 參數(shù),否則報(bào)錯(cuò)。]運(yùn)行時(shí)要增加 –ea參數(shù),否則assert行被忽略
第八,GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String(“xyz”);創(chuàng)建了幾個(gè)String Object?
兩個(gè)
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么錯(cuò)? short s1 = 1;s1 += 1;有什么錯(cuò)?
short s1 = 1;s1 = s1 + 1;(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類(lèi)型)short s1 = 1;s1 += 1;(可以正確編譯)
第十二,sleep()和 wait()有什么區(qū)別?
sleep是線(xiàn)程類(lèi)(Thread)的方法,導(dǎo)致此線(xiàn)程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線(xiàn)程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep不會(huì)釋放對(duì)象鎖。wait是Object類(lèi)的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線(xiàn)程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線(xiàn)程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
第十三,Java有沒(méi)有g(shù)oto?
沒(méi)有
很十三的問(wèn)題,如果哪個(gè)面試的問(wèn)到這個(gè)問(wèn)題,我勸你還是別進(jìn)這家公司。
第十四,數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?
數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個(gè)方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類(lèi)型?
方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn)。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數(shù),我們說(shuō)該方法被重寫(xiě)(Overriding)。子類(lèi)的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義,對(duì)它而言,父類(lèi)中的定義如同被“屏蔽”了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類(lèi)型,則稱(chēng)為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類(lèi)型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對(duì)象equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話(huà),返回真值。
第十七,給我一個(gè)你最常見(jiàn)到的runtime exception。
參考如下:
ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
第十八,error和exception有什么區(qū)別?
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。
第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
聲明方法的存在而不去實(shí)現(xiàn)它的類(lèi)被叫做抽象類(lèi)(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類(lèi),并為該類(lèi)聲明方法,但不能在該類(lèi)中實(shí)現(xiàn)該類(lèi)的情況。不能創(chuàng)建abstract 類(lèi)的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類(lèi)型是一個(gè)抽象類(lèi),并讓它指向具體子類(lèi)的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類(lèi)的子類(lèi)為它們父類(lèi)中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類(lèi)為。取而代之,在子類(lèi)中實(shí)現(xiàn)該方法。知道其行為的其它類(lèi)可以在類(lèi)中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類(lèi)的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè) 有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類(lèi)相似,除了該實(shí)現(xiàn)類(lèi)不能從接口定義中繼承行為。當(dāng)類(lèi)實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類(lèi)的任何對(duì)象上調(diào)用接口的方法。由于有抽象類(lèi),它允許使用接口名作為引用變量的類(lèi)型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類(lèi)型或從接口類(lèi)型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類(lèi)是否實(shí)現(xiàn)了接口。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
都不能
第二十二,接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?
接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。
第二十三,啟動(dòng)一個(gè)線(xiàn)程是用run()還是start()?
啟動(dòng)一個(gè)線(xiàn)程是調(diào)用start()方法,使線(xiàn)程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線(xiàn)程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線(xiàn)程。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類(lèi)?
String類(lèi)是final類(lèi)故不可以繼承。
第二十六,當(dāng)一個(gè)線(xiàn)程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線(xiàn)程是否可進(jìn)入此對(duì)象的其它方法?
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線(xiàn)程訪(fǎng)問(wèn)。
第二十七,try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
會(huì)執(zhí)行,在return前執(zhí)行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問(wèn)這種問(wèn)題。< < 3
第二十九,兩個(gè)對(duì)象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話(huà)對(duì)不對(duì)?
不對(duì),有相同的hash code。
第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語(yǔ)言只由值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語(yǔ)句的參數(shù)應(yīng)該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,編程題: 寫(xiě)一個(gè)Singleton出來(lái)。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類(lèi)Class只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類(lèi)變量,在類(lèi)初始化時(shí)實(shí)例話(huà),通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪(fǎng)問(wèn)本class的靜態(tài)方法,可以直接訪(fǎng)問(wèn)
public static Singleton getInstance(){
return instance;
} }
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;} }
其他形式:
定義一個(gè)類(lèi),它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
其中也存在一些問(wèn)題,下面補(bǔ)充一下.希望大家繼續(xù)補(bǔ)充
1.最好介紹一下final修飾變量的情形(分開(kāi)說(shuō)明基本類(lèi)型變量和引用類(lèi)型變量)。
2.不知道如何描述比較好,匿名內(nèi)部類(lèi)本身是一個(gè)實(shí)現(xiàn)了特定接口或繼承了其他類(lèi)的類(lèi)。
3.非靜態(tài)類(lèi)不能有static的方法。參考一下java collections framework的代碼,還能說(shuō)出很多東西來(lái)。
4.&既是位運(yùn)算符,也是邏輯操作符。
&和&&都是邏輯運(yùn)算符,它們的區(qū)別是,&&進(jìn)行短路計(jì)算。
6.可以補(bǔ)充一下,參考文檔。
11.說(shuō)一下具體的原因可能更好。
13.java有g(shù)oto這個(gè)keyword,不過(guò)還沒(méi)有使用。
15.overload和多態(tài)沒(méi)有任何關(guān)系。多態(tài)是面向?qū)ο蟮幕咎卣?,是和繼承、overriding相關(guān)的。原來(lái)以為把overload當(dāng)作多態(tài)的一種是從C++來(lái)的,后來(lái)翻了基本c++的經(jīng)典的書(shū),也強(qiáng)調(diào)多態(tài)只是和繼承,虛函數(shù),overriding相關(guān),所以不知道這個(gè)錯(cuò)誤思想從哪來(lái)的了.16.public interface Set
看文檔就是了.22.“抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。”什么意思?誰(shuí)規(guī)定的?
27.這個(gè)比較復(fù)雜,例如
public class Main {
public static void main(String[] args){
System.out.println(test());}
public static boolean test(){
boolean b = false;
try {
return b = 4 > 3;
} finally {
System.out.println(b);
//return false;} } }
這個(gè)例子中可以看出,return后面的表達(dá)式已經(jīng)計(jì)算了,感覺(jué)return語(yǔ)句這里被掛起了,如果finally中沒(méi)有return,這個(gè)return就返回.如果finally也有return,那么就是finally中的return返回了.29.碰上不守規(guī)矩的程序員誰(shuí)也沒(méi)辦法.31.還有枚舉呢
32.注釋有問(wèn)題.
第五篇:Java Web復(fù)習(xí)
《Java Web應(yīng)用開(kāi)發(fā)》復(fù)習(xí)
一、單項(xiàng)選擇題
(1)Web應(yīng)用程序的運(yùn)行機(jī)制是(B)
A.服務(wù)器向客戶(hù)端發(fā)送請(qǐng)求
B.客戶(hù)端向服務(wù)器端發(fā)送請(qǐng)求
C.客戶(hù)端向服務(wù)器發(fā)送響應(yīng)
D.服務(wù)器向客戶(hù)端自動(dòng)發(fā)送響應(yīng)
(2)關(guān)于Web服務(wù)器的說(shuō)法正確的是(C)
A.只是用來(lái)存儲(chǔ)信息
B.IIS、Tomcat、Eclipse都是Web服務(wù)器
C.負(fù)責(zé)處理用戶(hù)的請(qǐng)求,并把請(qǐng)求的處理結(jié)果返回給用戶(hù)
D、Web服務(wù)器必須運(yùn)行在Internet上
(3)JSP是(A)
A.動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)語(yǔ)言
B.內(nèi)容和顯示集成在一起
C.必須運(yùn)行在Tomcat服務(wù)器上
D.JSP第一次運(yùn)行的效率是最高的(4)C/S結(jié)構(gòu)和B/S結(jié)構(gòu)的區(qū)別(C)
A.B/S結(jié)構(gòu)的系統(tǒng)用戶(hù)界面必須通過(guò)IE瀏覽器查看
B.C/S結(jié)構(gòu)的系統(tǒng)不能運(yùn)行在Internet上
C.B/S結(jié)構(gòu)的系統(tǒng)具有很好的重用性
D.C/S結(jié)構(gòu)的系統(tǒng)不需要操作系統(tǒng)的支撐
(5)JSP和JDK的關(guān)系(A)
A、JSP的編譯需要JDK的支持
B、JSP的運(yùn)行不需要JDK
C、JDK的運(yùn)行需要JSP
D、JDK的編譯需要JSP的支持
(6)JSP程序的運(yùn)行機(jī)制(D)
A.客戶(hù)端發(fā)送信息給服務(wù)器
B.服務(wù)器端發(fā)送信息給客戶(hù)端
C.服務(wù)器端定時(shí)傳遞信息給客戶(hù)端
D.客戶(hù)端發(fā)出請(qǐng)求,服務(wù)器反饋一個(gè)響應(yīng)
(7)JSP中客戶(hù)端的注釋是(B)
A.<%----%>B.
C.
二、程序設(shè)計(jì)題
(1)利用javabean設(shè)計(jì)一個(gè)游戲平臺(tái)的用戶(hù)登錄頁(yè)
(gamelogin.jsp),當(dāng)用戶(hù)登錄時(shí)把用戶(hù)的名稱(chēng)、金錢(qián)、攻擊力、法力、等級(jí)存放起來(lái)供游戲中使用。Javabean程序清單:
gamelogin.jsp程序清單:
(2)新建一個(gè)MySQL數(shù)據(jù)庫(kù)Student,并在其中建立一個(gè)
users表,表的結(jié)構(gòu)如下:
字段類(lèi)型說(shuō)明
IDvarchar(10)學(xué)號(hào)
loginNamevarchar(10)登錄名
realNamenvarchar(10)真實(shí)名
Mobilevarchar(20)手機(jī)號(hào)
表的測(cè)試數(shù)據(jù)如下
20090701zs張三***
20090702ls李四***
設(shè)計(jì)用戶(hù)登錄頁(yè)面login.jsp,當(dāng)用戶(hù)輸入登錄信息后,如果是數(shù)據(jù)庫(kù)的合法用戶(hù)則跳轉(zhuǎn)到main.jsp頁(yè)面,在main.jsp頁(yè)面中顯示出用戶(hù)的完整信息;如果是非法用戶(hù),則跳轉(zhuǎn)到error.jsp頁(yè)面,并給出警告提示。程序清單: