第一篇:java SATC初級(jí)程序員認(rèn)證考試--寶典
關(guān)于舉辦java SATC初級(jí)程序員認(rèn)證考試培訓(xùn)班的通知
Java語(yǔ)言是目前使用最廣泛的軟件開(kāi)發(fā)語(yǔ)言,熟練掌握J(rèn)ava語(yǔ)言并取得SUN公司的相應(yīng)證書(shū)是立志從事軟件開(kāi)發(fā)工作人員必備的技能和證明。為了滿(mǎn)足廣大學(xué)生學(xué)習(xí)Java語(yǔ)言的要求,工學(xué)院計(jì)算機(jī)工程系與西安絲路軟件有限責(zé)任公司聯(lián)合舉辦java SATC初級(jí)程序員認(rèn)證考試培訓(xùn),現(xiàn)將有關(guān)事項(xiàng)通知如下。
一、培訓(xùn)內(nèi)容
按照java SATC初級(jí)程序員考試大綱要求,對(duì)學(xué)員進(jìn)行考試內(nèi)容培訓(xùn)。培訓(xùn)任務(wù)是對(duì)Java語(yǔ)言進(jìn)行系統(tǒng)地學(xué)習(xí),并通過(guò)有針對(duì)性的上機(jī)實(shí)驗(yàn),了解掌握J(rèn)ava語(yǔ)言的基本內(nèi)容,學(xué)會(huì)面向?qū)ο蟮木幊谭椒?,通過(guò)理論和實(shí)踐教學(xué),使學(xué)生熟練掌握J(rèn)ava程序設(shè)計(jì)的基礎(chǔ)知識(shí),基本概念;掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和編程技巧;熟練掌握分析程序和運(yùn)用面向?qū)ο蟮乃悸泛头椒ň幹瞥绦虻哪芰?,并在此基礎(chǔ)上,進(jìn)一步學(xué)習(xí)關(guān)于Java語(yǔ)言編程的深入技術(shù)。
二、培訓(xùn)方式
培訓(xùn)采用理論與實(shí)踐相結(jié)合的方式進(jìn)行,全部課程在機(jī)房進(jìn)行,具體地點(diǎn)在工學(xué)院機(jī)房。
三、培訓(xùn)對(duì)象
本培訓(xùn)適用于計(jì)算機(jī)信息管理、計(jì)算機(jī)科學(xué)與技術(shù)、電子信息工程、通信工程、計(jì)算機(jī)控制技術(shù)、移動(dòng)通信等本科、高職專(zhuān)業(yè)(包括自考、成教相應(yīng)專(zhuān)業(yè)),要求具有C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)。
四、課時(shí)與上課時(shí)間安排
本課程按照教學(xué)大綱要求共96學(xué)時(shí),為了不影響學(xué)員的正常上課,本培訓(xùn)安排在晚上和周六、周日進(jìn)行(只占用一天),每周12學(xué)時(shí),共8周。
五、任課教師
本培訓(xùn)由西安絲路軟件有限責(zé)任公司高級(jí)技術(shù)人員與工學(xué)院計(jì)算機(jī)工程系教師共同執(zhí)教。
六、考試
培訓(xùn)結(jié)束后,在西安絲路軟件有限責(zé)任公司參加認(rèn)證考試,成績(jī)合格者,15個(gè)工作日后頒發(fā)《Sun SATC Certification 程序員》證書(shū)。對(duì)取得證書(shū)并即將畢業(yè)的學(xué)生推薦就業(yè)單位,其他學(xué)生推薦實(shí)習(xí)單位。
七、收費(fèi)
培訓(xùn)費(fèi)、考試費(fèi)、證書(shū)費(fèi)、教材費(fèi)合計(jì)1500元人民幣,其中包括800元人民幣的考試及證書(shū)費(fèi)用,不愿意參加考試的學(xué)員可以只繳納培訓(xùn)費(fèi)和教材費(fèi)共700元。
八、咨詢(xún)報(bào)名
報(bào)名時(shí)間:2011年9月13日~2011年9月16日
報(bào)名地點(diǎn):各班輔導(dǎo)員處。
繳費(fèi)地點(diǎn):工學(xué)院教學(xué)科何雅琳老師處。
咨詢(xún)地點(diǎn):工學(xué)院計(jì)算機(jī)系,集中咨詢(xún)時(shí)間:9月14日下午2:00-5:00.
第二篇:程序員認(rèn)證考試題庫(kù)
第一部分 基礎(chǔ)知識(shí)練習(xí)目標(biāo)
本章對(duì)應(yīng)于《學(xué)生指南》各章的內(nèi)容分別提供了練習(xí)題集,包括:
●
第一章Java入門(mén)
●
第二章數(shù)據(jù)類(lèi)型和運(yùn)算符
●
第三章流程控制與數(shù)組
●
第四章封裝
●
第五章繼承
●
第六章抽象類(lèi)與接口
●
第七章多態(tài)
●
第八章異常
●
第九章多線(xiàn)程機(jī)制
●
第十章輸入輸出流
●
第十一章使用泛型和集合框架
●
第十二章基于Swing的圖形用戶(hù)界面(GUI)設(shè)計(jì)
●
第十三章Java事件驅(qū)動(dòng)編程
1-1
第一章練習(xí)題(Java入門(mén))
1.下列哪項(xiàng)不是JDK所包含的內(nèi)容?(選一項(xiàng))
A.Java編程語(yǔ)言
B.工具及工具的API
C.Java EE擴(kuò)展API
D.Java平臺(tái)虛擬機(jī)
2.下列關(guān)于JDK、JRE和JVM的描述。哪項(xiàng)正確?
A.JDK中包含了JRE,JVM中包含了JRE
B.JRE中包含了JDK,JDK中包含了JVM
C.JRE中包含了JDK,JVM中包含了JRE
D.JDK中包含了JRE,JRE中包含了JVM
3.下列哪個(gè)工具可以編譯java源文件?
A.javac
B.jdb
C.javadoc
D.junit
4.JDK工具javadoc的作用是哪項(xiàng)?
A.生成Java文檔
B.編譯Java源文件
C.執(zhí)行Java類(lèi)文件
D.測(cè)試Java代碼
5.以下哪些包是Java標(biāo)準(zhǔn)庫(kù)中常用的包?(選三項(xiàng))
A.java.lang
B.javax.servlet.http
C.j ava.io D.java.sql
1-2
6.使用JDK工具生成的Java文檔的文件格式是? A.XML格式 B.自定義格式 c.二進(jìn)制格式 D.HTML格式
7.以下關(guān)于JVM的敘述,哪項(xiàng)正確?(選兩項(xiàng))A.JVM運(yùn)行于操作系統(tǒng)之上,它依賴(lài)于操作系統(tǒng) B.JVM運(yùn)行于操作系統(tǒng)之上,它與操作系統(tǒng)無(wú)關(guān)
C.JVM支持Java程序運(yùn)行,它能夠直接運(yùn)行Java字節(jié)碼文件 D.JVM支持Java程序運(yùn)行,它能夠直接運(yùn)行Java源代碼文件
8.以下關(guān)于支持Java運(yùn)行平臺(tái)的敘述,哪項(xiàng)錯(cuò)誤? A.Java可在Solaris平臺(tái)上運(yùn)行 B.Java可在Windows平臺(tái)上運(yùn)行
C.Java語(yǔ)言與平臺(tái)無(wú)關(guān)。Java程序的運(yùn)行結(jié)果依賴(lài)于操作系統(tǒng) D.Java語(yǔ)言與平臺(tái)無(wú)關(guān)。Java程序的運(yùn)行結(jié)果與操作系統(tǒng)無(wú)關(guān)
9.以下關(guān)于Applet和Java程序之間關(guān)系的敘述,哪項(xiàng)錯(cuò)誤? A.-個(gè)Applet就是一段Java程序
B.Applet是一種特殊的Java程序,它需要運(yùn)行在Web服務(wù)器上 C.Applet是一種特殊的Java程序,它需要運(yùn)行在Web瀏覽器上 D.Applet是一種Java SE平臺(tái)的應(yīng)用程序
10.以下關(guān)于Java HotSpot的描述,哪兩項(xiàng)錯(cuò)誤?(選兩項(xiàng))
A.JavaHotSpot是一種熱編譯技術(shù),在編譯Java源程序時(shí)會(huì)被使用 B.Java HotSpot是一種熱編譯技術(shù),在運(yùn)行Java代碼時(shí)會(huì)被使用
C.Java HotSpot是一種熱編譯技術(shù),它只對(duì)程序的部分字節(jié)碼進(jìn)行優(yōu)化 D.Java HotSpot是一種熱編譯技術(shù),它會(huì)對(duì)程序的全部字節(jié)碼進(jìn)行優(yōu)化
1-3
11.環(huán)境變量PATH中含有多個(gè)路徑時(shí),路徑和路徑之間可以用哪項(xiàng)來(lái)隔開(kāi)?
A.:
B.,C.*
D:|
12.CLASSPATH中的“.”的含義是哪項(xiàng)?
A.省略號(hào)
B.當(dāng)前目錄
C.所有目錄
D.上級(jí)目錄
13.JVM在執(zhí)行一個(gè)Java類(lèi)時(shí),大致采用以下過(guò)程?
A.執(zhí)行類(lèi)中的代碼一>裝載類(lèi)一>校驗(yàn)類(lèi)
B.校驗(yàn)類(lèi)一>裝載類(lèi)一>執(zhí)行類(lèi)中的代碼
C.裝載類(lèi)一>執(zhí)行類(lèi)中的代碼一>校驗(yàn)類(lèi)
D.裝載類(lèi)一>校驗(yàn)類(lèi)一>執(zhí)行類(lèi)中的代碼
14.當(dāng)運(yùn)行—個(gè)Java程序時(shí),傳遞參數(shù)的格式是哪項(xiàng)?
A. java類(lèi)名參數(shù)1,參數(shù)2
B. javac類(lèi)名參數(shù)1參數(shù)2
C. java類(lèi)名參數(shù)1參數(shù)2
D. java類(lèi)名參數(shù)1+參數(shù)2
15.以下關(guān)于Java文件名的敘述,正確的有?(選兩項(xiàng))
A.Java源文件的擴(kuò)展名應(yīng)為.java
B.Java源文件的文件名應(yīng)與文件中的類(lèi)名一致
C. Java字節(jié)碼文件的擴(kuò)展名應(yīng)為.java
D. 一個(gè)Java源文件中只能包含一個(gè)Java類(lèi)
1-4
lC
2D
3A
4A
SACD
6D
7AC
8C
9B A D A B D C A B
1-5
第二章練習(xí)題(數(shù)據(jù)類(lèi)型和運(yùn)算符)
1.下列哪項(xiàng)不屬于Java語(yǔ)言的基本數(shù)據(jù)類(lèi)型?
A.int
B.String
C.double
D.boolean
2.下列哪項(xiàng)不是int類(lèi)型的字面量?
A.u03A6
B.077
C.OxABBC
D.20
3.下列哪項(xiàng)不是有效的標(biāo)識(shí)符?
A.userName
B.2test
C.$change
D._password
4.下列哪項(xiàng)是Java語(yǔ)言中所規(guī)定的注釋樣式?(選三項(xiàng))
A.//單行注釋
B.--單行注釋
C.
/*
*單行或多行注釋
*/
D.
/**
*文檔注釋
*/
5.下列哪項(xiàng)不是Java語(yǔ)言的關(guān)鍵字?
A.goto
B.sizeof
C.instanceof
D.volatile
1-6
6.現(xiàn)有如下五個(gè)聲明:
Linel: int a_really_really_really_long_variable_name=5;
Line2: int _hi=6;
Line3: int big=Integer.getlnteger(“7”);
Line4:int $dollars=8;
line5: int %opercent=9;
哪行無(wú)法通過(guò)編譯?
A.Line1
B.Line3
C.Line4
D.Line5
7.現(xiàn)有:
1.class Top {
2.static int x=l;
3.public Top(int y){
x*=3;}
4.}
5.class Middle extends Top {
6.public Middle(){x+=1;}
7.public static void main(String [] args)
8.Middle m = new Middle();
9.System.out.println(x);
IO.}
II.}
結(jié)果為:
A.1
B.2
C.3
D.編譯失敗
8.現(xiàn)有:
1.class Passer f
2.static final int X=5;
3.public static void main(String [] args){
4.new Passer().go(x);
5.System.out.print(x);
6,)
7.void go(int x){
8.System.out.print(x++);
9.}
10.}
{
1-7
結(jié)果是什么?
A.55
B.56
C.65
D.66
9.現(xiàn)有:
1.class Wrench f
2.public static void main(String [] args){
3.Wrench w=new Wrench();
Wrench w2=new Wrench();
4.w2=go(w, w2);
5.System.out.print(w2==w);
6.}
7.static Wrench go(Wrench wrl, Wrench wr2){
8.Wrench wr3=wrl;wrl=wr2;wr2=wr3;
9.return wr3;
10.}
11.}
結(jié)果是什么?
A.false
B.
true
C.編譯失敗
D.運(yùn)行的時(shí)候有異常拋出
10.現(xiàn)有:
5.class Wrench2 {
6.int size;
7.public static void main(String [] args){
8.Wrench2 w=new Wrench2();
9.w.size=II;
IO.Wrench2 w2=go(w, w.size);
II.System.out.print(w2.size);
12.)
13.static Wrench2 go(Wrench2 wr.int s){
14.S=12;
15。
return wr;
16.}
17.}
1-8
結(jié)果為:
A.11
B.12
c.編譯失敗。
D.運(yùn)行時(shí)異常被拋出
11.現(xiàn)有:
class Test2 f
public static void main(String [] args){
short a,b,C;
a=l;
b=2;
C=a+b;
a+=2:
}
}
以上代碼中,哪一句是錯(cuò)誤的?
A.a(chǎn)=1:
B.C=a+b;
C.
a+=2;
D.short a,b,C;
12.表達(dá)式:1-2/5+2 'k5的結(jié)果是哪項(xiàng)?
A.10.6
B.9.8
C.9
13.現(xiàn)有代碼片段:
String s=”123“;
String sl=S+456;
請(qǐng)問(wèn)sl的結(jié)果是哪項(xiàng)?
A.123456
B.579
C.編譯錯(cuò)誤
D.運(yùn)行時(shí)拋出異常
1-9
14.基本數(shù)據(jù)類(lèi)型float的包裹類(lèi)是哪項(xiàng)? A. Integer B. Double C. Float D. Character
15.現(xiàn)有:
1.class Test4 {
2.public static void main(String [] args){
3.boolean X=true;
4.boolean y=false;
5.short Z=42;
6.7.if((z++==42)&&
(y=true))z++;
8.if((x=false)||
(++z==45))z++;
9.10.System.out.println(¨z=”+z);
II.}
12.} 結(jié)果為: A.Z=42 B.z=44 C.
Z= 45 D.
z= 46
1-10
第二章練習(xí)題
參考答案
1B
2A
3B
4ACD
5B
6D
7D
8A
9B A B D A C D
1-11
第三章練習(xí)題
第三章練習(xí)題(流程控制與數(shù)組)
1.現(xiàn)有:
class TestApp{
public static void main(String[] args){
for(int i=0;i if(i==3) break; System.out.print(i); } } } 程序運(yùn)行后的輸出是哪項(xiàng)? A.0123 B.012456789 C. 0123456789 D. 012 2.程序: class TestApp{ public static void main(String[] args){ int x=6; if(x>l) System.out.println(”x>l“); else if(x>5) System.out.println(”x>5“); else if(x<10) System.out.println(”x else if(x<29) System.out.println(”x<29“); else System.out.println(“以上都不是”); } } 上述程序運(yùn)行后的結(jié)果是哪項(xiàng)? A.x>5 B.x>l C. x<10 D.x<29 1-12 3.現(xiàn)有: class TestApp{ public static void main(String[] args){ int [5] myarray={ 10, 11, 12, 13, 14); int sum=0; for(int x : myarray) sum+=x; System.out.println(”sum= “+sum); } } 上述程序運(yùn)行后的結(jié)果是哪項(xiàng)? A. sum=10 B. sum=70 C. sum=60 D. 運(yùn)行時(shí)拋出異常 4.下列有關(guān)數(shù)組的聲明中,正確的是哪項(xiàng)?(選兩項(xiàng)) A. int s[10]; B. int[10] s; C. int[5] s={l,2,3,4,5}; D. int s[]; 5.已知數(shù)組array,其最后一個(gè)元素的下標(biāo)是? A. array.size B. array.length-l C. array.size-l D. array.length 6.程序: class TestApp{ public static void main(String[] args){ int X=5: switch(x){ case l: case 2: case 3: System.out.println(“一季度”); break; case 4: case 5: 1-13 case 6: System.out.println(“二季度”); break; default: System.out.println(“三季度以上”); break;) }) 上述程序運(yùn)行后的結(jié)果是哪項(xiàng)? A.一季度 B.二季度 c.三季度以上 D.無(wú)輸出 7.為將數(shù)組myArray的長(zhǎng)度由3改為6,現(xiàn)采取以下編碼: int[]myArray=new int [3]; myArray=new int[6]; 代碼執(zhí)行后,以下敘述哪項(xiàng)是正確的? A.?dāng)?shù)組myArray的長(zhǎng)度已由3改為6,其中前3個(gè)元素的值不變,后3個(gè)元素 的值為空。 B.?dāng)?shù)組myArray的長(zhǎng)度已由3改為6,其中前3個(gè)元素的值不變,后3個(gè)元素 需再經(jīng)過(guò)初始化后才能使用。 C.?dāng)?shù)組myArray的長(zhǎng)度沒(méi)有變化。 D.?dāng)?shù)組myArray的長(zhǎng)度已由3改為6,原來(lái)3個(gè)元素的值全部丟失。 8.現(xiàn)有: 1.class Ifs { 2.public static void main(String [] args){ 3.boolean state=false; 4.int i=2; 5.if((++i>2)&& (state=true)) 6.i++; 7.if((++i>4)l l(state=false)) 8.i++; 9.System.out.println(i); 10.} 11.} 1-14 結(jié)果為: A. B. C. D.編譯失敗 9.現(xiàn)有: 3.public class Tester { 4.public static void main(String[] args){ 5.intx-5; 6.Integer xl=x;Integer x2=x; 7.int x3=new Integer(5); 8.system..ut.print(x1.equals(x)); 9.system..ut.print(xl==x); lu.system..ut.print(x2.equals(xl)); 11.system..ut.print(x2==xl); system..ut.print(x2==x3); system..ut.print(x2.equals(x3)); “ l4.} 15.} 結(jié)果為: A.編譯失敗 B.falsefalsetruetruetruetrue C. truetruetruetruetruetrue D.falsefalsetruetruetruefalse E.truefalsetruefalsefalsetrue F.運(yùn)行時(shí)異常被拋出 10.現(xiàn)有: 1.class Rectangle { 2' public static V.id main(string [] args) 3.int[]x=(1,2,3); 4.x[1]=(x[1]>1)?x[2]: O; 5.System.out.println(x[1]); 6.} 7.} { 1-15 結(jié)果為: A.3 B.2 C.1 D.0 11.現(xiàn)有: 1.class Output(2.public static void main(String[] args) { 3.int i=5: 4.System.out.print(”4“+i+”“); 5.System.out.print(i+5+”7“); 6.System.out.println(i+”8“); 7.} 8.} 結(jié)果為: A.9722 B.55758 C. 10758 D. 9722 12.以下哪種初始化數(shù)組的方式是錯(cuò)誤的? A. String[]names={”zhang“,”wang“,”li“); B. String names[] =new String [3]; names [O] =”zhang“;names [1] =”wang“; names [2] C. String[3] names={”zhang“, ”wang“, ”li“}; D. 以上皆正確 13.現(xiàn)有: 1.class WhileTests { 2.public static void main(String [] args){ 3.int X=5; 4.while(++x<4){ 5.--x; 6.} 7.System.out.println(”x=“+x); 8.} 9.} =”li“; 1-16 結(jié)果是什么? A.X=6 B.X=5 C.X=2 D.編譯失敗 14.現(xiàn)有: 1.class Test2 f 2.public static void main(String [] args){ 3.boolean X= true; 4.boolean y=false; 5.short Z=20; 6.7.if((x==true)&& (y=true))z++; 8.if((y==true)||(++z==22))z++; 9.10. System.out.println(”z=“+z); 11.} 12.} 結(jié)果是什么? A.Z=21 B.z=22 C.z=23 D. Z= 24 15.現(xiàn)有: 1.class Foo { 2.public static void main(String [] args) 3.int x=O; 4.int y=4; 5.for(int z=0;z<3; Z++;X++){ 6.if(x>1&++y<10) 7.y++; 8.} 9.System.out.println(y); 10.} 11.} 結(jié)果是什么? A.7 B.8 C.10 D.1{ 1-17 I D 2B 3C 4CD 5B 6B 7D 8A 9C C C A B B 1-18 第四章練習(xí)題(封裝) 1.下列有關(guān)類(lèi)、對(duì)象和實(shí)例的敘述,正確的是哪一項(xiàng)? A.類(lèi)就是對(duì)象,對(duì)象就是類(lèi),實(shí)例是對(duì)象的另一個(gè)名稱(chēng),三者沒(méi)有差別 B.對(duì)象是類(lèi)的抽象,類(lèi)是對(duì)象的具體化,實(shí)例是對(duì)象的另一個(gè)名稱(chēng) C.類(lèi)是對(duì)象的抽象,對(duì)象是類(lèi)的具體化,實(shí)例是類(lèi)的另一個(gè)名稱(chēng) D.類(lèi)是對(duì)象的抽象,對(duì)象是類(lèi)的具體化,實(shí)例是對(duì)象的另一個(gè)名稱(chēng) 2.下列類(lèi)Account的構(gòu)造方法中,聲明正確的是? A. Account(String name){) B. Account(String name) C.Account(name)() D. NewAccount(String name){) 3.類(lèi)Account中字段聲明正確的是哪項(xiàng)? A. class Account f name; amount;) B. class Account{ String name=l.0; double amount=”Mike“;) C. class Accountf String name; double amount;) D. class Account{ String name= ”Mike,, double amount=1000.0;) 4.類(lèi)Account中方法聲明正確的是哪一項(xiàng)? A. class Account f deposit();) B. class Accountf void deposit(); } 1-19 C. class Accountf void deposit(){)) D.class Accountf void deposit{)) 5.下列有關(guān)類(lèi)聲明的代碼片段,哪一項(xiàng)是正確的? A.package school; import java.sql.*; class Student { } B.import java.sql.*; package school; class Student f) C. package school; class Student{ } import java.sql.*j D.package school; import java.sql.*; private String name; class Student { } 6.有關(guān)new關(guān)鍵字的描述正確的是哪項(xiàng)? A.創(chuàng)建對(duì)象實(shí)例的時(shí)候可以不使用new關(guān)鍵字 B.new所創(chuàng)建的對(duì)象不占用內(nèi)存空間 C.new會(huì)調(diào)用類(lèi)的構(gòu)造器來(lái)創(chuàng)建對(duì)象 D.new所創(chuàng)建的對(duì)象一定存在引用變量 7.下列哪些是方法public int add(int a)的重載方法?(選三項(xiàng)) A.public int add(long a); B.public void add(int a)j C.public void add(long a); D.public int add(float a); 1-20 8.我們定義一個(gè)Account類(lèi)來(lái)描述銀行賬戶(hù),銀行賬戶(hù)有賬戶(hù)名、金額等屬性 特征,同時(shí)有存款、取款等行為特征,下述代碼適合描述的是哪項(xiàng)? A.class Accountf String name;//賬戶(hù) String amount;//金額 Account(String name)() void deposit(double mount){ //存款) void withdraw(double mount){ //取款 }) B.class Accountf String name;//賬戶(hù) doujole amount;//金額 Account(double amount){) void deposit(double mount){ //存款) void withdraw(double mount){ //取款)) C.class Accountf String name;//賬戶(hù) double amount;//金額 Account(String name){) void deposit(double mount){//存款) void withdraw(double mount){ //取款)) D.class Accountf String name;//賬戶(hù) double amount;//金額 Account(String name){) void deposit(){//存款) void withdraw(){//取款)) 1-21 9.現(xiàn)有: 1.class Banana2 f 2.static int X=2; 3.'public static void main(String [] args){ 4.int X=2; 5.Banana2 b=new Banana2(); 6.b.go(x); 7.} 8.static {x+=x;) 9.void go(int x){ 10.++x; 11.System.out.println(x); 12.} 13.} 結(jié)果為: A.7 B.5 C.3 D.2 10.現(xiàn)有: 1.class TestFoo f 2.int x; 3.String y; 4.int getX(){ return x;} 5.String getY(){return y;} 6.void setX(int x){ 7.int Z=7: 8.this.x=x; 9.} 10.} 可以添加多少個(gè)修飾符來(lái)封裝此類(lèi)? A.5 B.4 C.3 D.2 1-22 11.定義枚舉如下: public enum Direction{ EAST,SOUTH,WEST,NORTH) F列正確使用該枚舉類(lèi)型的語(yǔ)句是哪項(xiàng)? A.Direction Direction=EAST; B.Direction direction=Direction.WEST; C.int a-Direction.NORTH; n Direction direction=2; 12.定義類(lèi): package utils; public class Rep{ public static String twice(String s){return s+s ;) } 再定義另一個(gè)類(lèi)Demo: l.//insert code here 2.public class Demo{ 3.public static void main(String[] args){ 4.System.out.println(twice(“Hello”)); 5.} 6.} 在第一行插入哪項(xiàng)代碼,可以使程序正常編譯和執(zhí)行? A.import utils.*; B.import utils.Rep.*; C.import static utils.Rep.twice; D.static import utils.Rep.twice; 13.現(xiàn)有: public class TestDemo{ private int X-2; static int y=3; public void method(){ final int i=100; int j =10; class Cinner { public void mymethod(){ //Here } } } } 1-23 在Here處可以訪(fǎng)問(wèn)的變量是哪些?(選三項(xiàng))A.X B.y C.j D. i 14.現(xiàn)有如F包結(jié)構(gòu): com |一一X | |一一Alpha.class | | | |一一y I |一一Beta.class | |l--Gamma.class 和類(lèi): class Test { Alpha a; Beta b;Gamma c;} 哪三個(gè)必須加入到類(lèi)Test中,以使其通過(guò)編譯?(選三項(xiàng)) A.package y; B.package com; C.import com.x.y.*; D.import com.x.*; 15.現(xiàn)有2個(gè)文件: 1.package x; 2.public class X{ 3.public static void doX(){System.out.print(“doX”);} 4.} 和: 1.class Find{ 2.public static void main(String [] args){ 3.//insert code here 4.} 5.} 哪兩行分別插入到類(lèi)Find的第3行將編譯并產(chǎn)生輸出“doX”?(選兩項(xiàng)) A.doX(); B. X.doX(); C.x.X.doX(); D.x.X myX=new x.X();myX.doX(); 1-24 1D 2A 3C 4C 5A 6C ACD 8C 9C D B C A B D BCD C D 1-25 第五章練習(xí)題(繼承) 1.下列關(guān)于繼承優(yōu)點(diǎn)的敘述正確的是哪幾項(xiàng)?(選三項(xiàng)) A.可以創(chuàng)建更為特殊的類(lèi)型 B.消除重復(fù)代碼 C.執(zhí)行效率高 D.便于維護(hù) 2.在子類(lèi)中調(diào)用父類(lèi)中被覆蓋的方法時(shí)需要使用哪項(xiàng)關(guān)鍵字? A.this B.super C.new D.以上都不是 3.現(xiàn)有 public class Parentt public void change(int x){)) public class Child extends Parent{ //覆蓋父類(lèi)change方法 } 下列哪個(gè)聲明是正確的覆蓋了父類(lèi)的change方法? A.protected void change(int x){} B.public void change(int x, int y){} C.public void change(int x){} D.public void change(String s){} 4.如果想要一個(gè)類(lèi)不能被任何類(lèi)繼承的話(huà),需要使用哪個(gè)關(guān)鍵字來(lái)修飾該類(lèi)? A.abstract B.new C.static D.final 1-26 5.為了使得System.out.println()輸出對(duì)象引用的時(shí)候得到有意義的信 我們應(yīng)該覆蓋Object t{-的哪個(gè)方法? A.equals B.toString C.hashCode D.notify 6.現(xiàn)有: public class Pet() public class Cat extends Pet{) 執(zhí)行代碼 Cat c-new Cat(); Pet p=(Pet)c; 后下列哪項(xiàng)是正確的? A.Pet p=(Pet)c運(yùn)行錯(cuò)誤 B.Pet p=(Pet)c編譯錯(cuò)誤 C.Pet p=(Pet)c止常執(zhí)行 D.以上都不對(duì) 7.程序: public class Pet{ public void speak(){ System.out.print(“pet”); } } public class Cat extends Pet{ pulolic void speak(){ System.out.print(“Cat”); } } public class Dog extends Pet(public void speak(){ System.out.print(“Dog”); } } 執(zhí)行代碼 Pet[] p= {new Cat(),new Dog(),nex Pet()}; for(int i=O;i p[i].speak(); 1-27 后輸出的內(nèi)容是哪項(xiàng)? B.Cat Cat Cat C.Cat Dog Dog D.Cat Dog Pet 8.現(xiàn)有: 1.class Dog{) 2.class Harrier extends Dog {) 3.4.class DogTest{ 5.public static void main(String [] args)(6. Dog dl=new Dog(); 7.Harrier hl=new Harrier(); 8.Dog d2=hl; 9.Harrier h2=(Harrier)d2; 10.Harrier h3=d2; 11.} 12.} 下面哪一項(xiàng)是正確的? A.2個(gè)Dog對(duì)象被創(chuàng)建 B.2個(gè)Harrier對(duì)象被創(chuàng)建 C.3個(gè)Harrier對(duì)象被創(chuàng)建 D.編譯失敗 9.現(xiàn)有: 2.class Cat { 3.Cat(int c){System.out.print {“cat”+c+“ ”);} 4.} 5.class SubCat extends Cat { 6.SubCat(int c){super(5);System.out.print(“cable”);} 7.SubCat(){ this(4); } 8.public static void main(String [] args){ 9.SubCat s= new SubCat(); 10.} 11.} 結(jié)果為: A.cat5 B.cable C.cat5 cable D.cable cat5 1-28 10.現(xiàn)有: 1.class Guy {String greet() {return “hi”;} } 2.class Cowboy extends Guy(String greet() (return “howdy ¨;))3.class Surfer extends Guy(String greet() (return ”dude!“;} } 4. 5.class Greetings { 6.public static void main(String [] args) { 7.Guy [] guys =(new Guy(), new Cowboy(), new Surfer()8. for(Guy g: guys)9.System.out.print(g.greet()};10. } 11.} 結(jié)果為: A.hi howdy dude! B.運(yùn)行時(shí)異常被拋出。 c.第7行出現(xiàn)一個(gè)錯(cuò)誤,編譯失敗。 D.第8行出現(xiàn)一個(gè)錯(cuò)誤,編譯失敗。 11.現(xiàn)有: 1.class Over { 2.int dolt(long x){ return 3;} 3.} 4.5.class Under extends Over { 6.//insert code here 7.} 和四個(gè)方法: short dolt(int y){ return 4;} int dolt(long Xr long y){ return 4;} private int dolt(short y){ return 4;} protected int dolt(long x){ return 4;} 分別插入到第6行,有幾個(gè)可以通過(guò)編譯? A.1 B.2 C.3 D.4 }; 1-29 12現(xiàn)有 1.class Beverage { 2.Beverage(){ System.out.print(”beverage “);} 3.} 4.class Beer extends Beverage { 5.public static void main{string [] args){ 6.Beer b = new Beer(14); 7.} 8.public int Beer(int x){ 9.this(); 10.System.out.print(”beerl“); 11.} 12.public Beer(){ System.out.print(”beer2 “);} 13.} 結(jié)果是什么? A.beerl beverage B.beer2 beverage C.beverage beer2 beerl D.編譯失敗 13.現(xiàn)有: 1.class Bird { 2.void talk(){ System.out.print(”chirp “);} 3.} 4.class Parrot2 extends Bird { 5.protected void talk(){ System.out.print(”hello “); 6.public static void main(String [] args){ 7.Bird [] birds = {new Bird(), new Parrot2()}; 8.for(Bird b : birds) 9.b.talk(); 10.} 11.} 結(jié)果是什么 ? A.chirp chirp B.hello hello C.chirp hello D:編譯錯(cuò)誤 1-30 14.現(xiàn)有: 1.class SuperFoo(2.SuperFoo doStuff(int x){ 3.return new SuperFoo(); 4.} 5.} 6.7.class Foo extends SuperFoo { 8.//insert code here 9.} 和四個(gè)聲明: Foo doStuff(int x){ return new Foo(); } Foo doStuff(int x){ return new SuperFoo(); } SuperFoo doStuff(int x){ return new Foo();} SuperFoo doStuff(int y){ return new SuperFoo();} 分別插入到第8行,有幾個(gè)可以通過(guò)編澤? A.1 B.2 C.3 D. 4 15.現(xiàn)有: 1.class HorseRadish { 2.//insert code here 3.protected HorseRadish(int x) { 4.System.out.println(”bok choy“); 5.} 6.} 7.class Wasabi extends HorseRadish { 8.public static void main(String [] args) (9.Wasabi w-new Wasabi(); 10,} 11.} 分別插入到第2行,哪兩項(xiàng)允許代碼編譯并產(chǎn)生”bok choy”輸出結(jié)果?(選 兩項(xiàng)) A.protected HorseRadish(){this(42);} B.protected HorseRadish(){} C.//just a comment D.protected HorseRadish(){ new HorseRadish(42);} 1-31 參考答案 .1ABD 2B 3C 4D SB 6A 7D 8D 9C A D D C D AD 1-32 第六章練習(xí)題(抽象類(lèi)與接口) 1.下列有關(guān)抽象類(lèi)的敘述正確的是哪項(xiàng)? A.抽象類(lèi)中一定含有抽象方法 B.抽象類(lèi)的聲明必須包含abstract關(guān)鍵字 C.抽象類(lèi)既能被實(shí)例化也能被繼承 D.抽象類(lèi)中不能有構(gòu)造方法 2.下列有關(guān)抽象方法敘述正確的是哪項(xiàng)?(選兩項(xiàng)) A.抽象方法和普通方法一樣,只是前面多加一個(gè)修飾符asbtract B.抽象方法沒(méi)有方法體 c.抽象方法可以包含存任何類(lèi)中 D.包含抽象方法的類(lèi)的具體子類(lèi)必須提供具體的覆蓋方法 3.下列有關(guān)接口的敘述錯(cuò)誤的是哪項(xiàng)? A.接口中只能包含抽象方法和常量 B.一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口 C.類(lèi)實(shí)現(xiàn)接口時(shí)必須實(shí)現(xiàn)其中的方法 D.接口不能被繼承 4.下列關(guān)于接口的定義哪項(xiàng)是正確的? A. interface C{int a;) B.public interface A implements B {) C.public interface A {int a();) D.abstract interface D {) 1-33 5.現(xiàn)有: 1.interface Animal f 2.void eat(); 3.} 4.5.// insert code here 6.7.public class HouseCat implements Feline { 8.public void eat() { } 9.} 和以下三個(gè)接口聲明: interface Feline extends Animal() interface Feline extends Animal {void eat(); } interface Feline extends Animal {void eat() { } } 分別插入到第5行,有多少行可以編譯? A.0 B.1 C.2 D.3 6.現(xiàn)自: 1.interface Color { } 2.interface Weight { } 3.//insert code here 和以下足六個(gè)聲明: class Boat extends Color, extends Weight { } class Boat extends Color and Weight { } class Boat extends Color, Weight { } class Boat implements Color, implements Weight { } class Boat implements Color and Weight { } class Boat implements Color, Weight { } 分別插入到第3行,有多少行可以編譯? A.0 B.1 C.2 D.3 1-34 7.現(xiàn)有: 1.abstract class Color { 2.protected abstract String getRGB(); 3.} 4.5.public class Blue extends Color { 6.//insert code here 7.} 和四個(gè)聲明: public String getRGB(){ return ”blue“;} String getRGB(){ return ”blue“;) private String getRGB(){ return ”blue“;} protected String getRGB(){ return ”blue“;) 分別插入到第6行,有幾個(gè)可以通過(guò)編譯? A.0 B.1 C.2 D.3 8.現(xiàn)有: 1.abstract class Color2 { 2.//insert code here 3.} 4.5.public class Blue2 extends Color2 { 6.public String getRGB(){ return ”blue“;} 7.} 和4個(gè)聲明: public abstract String getRGB(); abstract String getRGB(); private abstract String getRGB(); protected abstract String getRGB(); 分別插入到第2行,有多少行可以編譯? A.O B.1 C.2 D 1-35 9.現(xiàn)有: 1.class Top { 2.static int X=l; 3.public Top(){ x*=3;) 4.} 5.class Middle extends Top { 6.public Middle() {x+=l;} 7.public static void main(String [] args){ 8.Middle m=new Middle(); 9.System.out.println(x)j 10.} 11.} 結(jié)果是什么? A.2 B.3 C.4 D.編譯失敗 10.現(xiàn)有兩個(gè)文件: 1.package X; 2.public class X { 3.public static void doX(){System.out.print(”doX“); 4.} 和: 1.import x.X; 2.class Find { 3.publiC static void main(String [] args) { 4.X myX=new X(); myX.doX(); 5.X.doX(); 6.x.X.aoX(): 7.x.X myX2=new x.X(); myx2.doX(); 8.} ’ 9.} 結(jié)果為: A.Find類(lèi)中第4行出現(xiàn)一個(gè)錯(cuò)誤,編譯失敗。 B.Find類(lèi)第5行出現(xiàn)一個(gè)錯(cuò)誤,編譯失敗。 C.Find類(lèi)第6行出現(xiàn)一個(gè)錯(cuò)誤,編譯失敗。 D.doX doX doX doX } 1-36 11.現(xiàn)有: 1.class Tree { 2.private static String tree = ”tree “; 3.String getTree(){ return tree;} 4.} 5.class Elm extends Tree { 6.private static String tree = ”elm “; 7.public static void main(String [] args){ 8.new Elm().go(new Tree()); 9.} 10.void go(Tree t){ 11.String s = t.getTree()+Elm.tree + tree + (new Elm().getTree()); 12.System.out.println(s); 結(jié)果為: A.elm elm elm elm B.tree elm elm elm C.tree elm elm tree D.tree elm tree elm 12.現(xiàn)有: 1.interface Animal { 2.void eat(); 3.} 4.5.//insert code here 6.7.public class HouseCat extends Feline { 8.public void eat(){ } 9.} 和五個(gè)申明 abstract class Feline implements Animal { } abstract class Feline implements Animal { void eat();} abstract class Feline implements Animal { public void eat();} abstract class Feline implements Animal { public void eat(){} } abstract class Feline implements Animal { abstract public void eat();} A.1 B.2 C.3 D.4 1-37 · 13.現(xiàn)有: 1.interface I { void go();} 2.3.abstract class A implements I { } 4.5.class C extends A { 6.void go(){) 7.} 結(jié)果是什么? A.代碼通過(guò)編譯 B.由于第1行的錯(cuò)誤導(dǎo)致編譯失敗 C.由于笫3行的錯(cuò)誤導(dǎo)致編譯失敗 D.由于第6行的錯(cuò)誤導(dǎo)致編譯失敗 14.現(xiàn)有: 1.interface Data {public void load();} 2.abstract class Info {public abstract void load();} 下列類(lèi)定義中正確使用Data和Info的是哪項(xiàng)? A.public class Employee implements Info extends Data { public void load(){/*do something*/)) B.public class Employee extends Inf.implements Data{ public void load(){/*do something*/} } c.public class Empl.yee implements Inf extends Data{ public void Data.1oad(){* do something*/} public void load(){/*do something*/}) D.public class Employee extends Inf implements Data { public void Data.1oad(){/*do something*/) public void info.1oad(){/*do something*/)) 1-38 15.下列代碼正確的是哪項(xiàng)? A.public class Session implements Runnable, Clonable{ public void run(); public Object clone(); } B.public class Session extends Runnable, Cloneable { public void run(){/*do something*/} public Object clone(){/*make a copy*/} } C.public abstract class Session implements Runnable, Clonable { pu)olic void run(){/*do something*/} public Object clone(){/*make a copy*/} } D.public class Session implements Runnable, implements Clonable { public void run(){/*do something*/} public Object clone(){/*make a copy*/} } 1-39 參考答案 1B 2BD 3D 4C 5C 6B 7C 8D 9C D C C D B C 1-40 第七章練習(xí)題(多態(tài)) 1.下列自‘關(guān)多態(tài)的敘述正確的是哪項(xiàng)?(選兩項(xiàng)) A.父類(lèi)的引用指向子類(lèi)的實(shí)例是一種多態(tài) B.子類(lèi)的引用指向子類(lèi)的實(shí)例是一種多態(tài) c.接口的引用指向?qū)崿F(xiàn)該接口類(lèi)的實(shí)例是一種多態(tài) D.抽象類(lèi)的引用指向抽象類(lèi)的實(shí)例是一種多態(tài) 2.Java中方法綁定有哪些形式?(選兩項(xiàng)) A.編譯時(shí)刻綁定 B.運(yùn)行時(shí)刻綁定 c.靜態(tài)綁定 D.私有綁定 3.表達(dá)式”hello“ instance of String返回的值是哪項(xiàng)? A.true B. false C. D. 0 4.求平方根方法public static double sqrt(double a)可以傳遞的參數(shù) 類(lèi)型有哪些?(選三項(xiàng)) A.byte B.float C.String D.long 5.涉及類(lèi)MyClass的方法簽名足public void find(MyClass a),那么該 方法可接收的實(shí)際參數(shù)的類(lèi)型可以是哪些?(選兩項(xiàng)) A.MyClass類(lèi)的類(lèi)型 B.MyClass子類(lèi)的類(lèi)型 C.Object類(lèi)型 D.所有接口 1-41 6.使用下列哪些關(guān)鍵字可以判定實(shí)參的具體類(lèi)型? A.as B.is C.instanceof D.extends 7.現(xiàn)有: class Pencil { public void write(String content){ System.out.println(”Write“+content); } } class RubberPencil extends Pencil{ public void erase(String content){ System.out.println(”Erase“+content); } } 執(zhí)行下列代碼的結(jié)果是哪項(xiàng)? Pencil pen=new RubberPencil(); pen.write(”Hello“); pen.erase(”Hello“); A.Write Hello Erase Hello B.Erase Hello Write Hello C.編譯錯(cuò)誤 D.運(yùn)行時(shí)拋出異常 8.現(xiàn)有: class Pencil { public void write(String content){ System.out.println(”Write“+content); } } class RubberPencil extends Pencil{ public void write(String content){ System.out.println(”Rubber Write“+content); } public void erase(String content){ System.out.println(”Erase “+content); } } 1-42 執(zhí)行下列代碼的結(jié)果是哪項(xiàng)? Pencil pen=new RubberPencil(); pen.write(”Hello“); A.Write Hello B.Rubber Write Hello C.編譯錯(cuò)誤 D.運(yùn)行時(shí)拋出異常 下列哪些方法是在編譯時(shí)刻綁定的?(選三項(xiàng)) A.靜態(tài)方法 B.private方法 C.final方法 D.非private方法 10.現(xiàn)有: class Pencil { public void write(String content){ System.out.println(”Write“,+content){ } } class RubberPencil extends Pencil{ public void write(String content){ System.out.println(”Rubber Write“+content); } public void erase(String content){ System.out.println(”Erase “+content); } } 執(zhí)行下列代碼的結(jié)果是哪項(xiàng)? Pencil pen=new Pencil(); ((RubberPencil)pen).write(”Hello“); A. Write Hello B.Rubber Write Hello c.編譯失敗 D.運(yùn)行時(shí)拋出異常 1-43 1.現(xiàn)有: class TestA { public void start(){ System.out.println(”TestA“);} } public class TestB extends TestA { public void start(){ System.out.println(”TestB“);} public static v.id main(string[] args)(((TestA)new TestB()).start(); } } 運(yùn)行結(jié)果是哪項(xiàng)? A. TeStA B. TeStB c.編譯失敗 D.運(yùn)行時(shí)拋出異常 12.現(xiàn)有: class A {public String name=”a“} class B extends A {public String name=”b“} 執(zhí)行如下代碼后的結(jié)果是哪項(xiàng)? A a=new B(); System.out.println(a.name); A. a B. b c.編譯失敗 D.運(yùn)行時(shí)拋出異常 13.現(xiàn)有: Interface F{} class A implements F{} class B extends A{} class C extends B{ public static void main(String[] args){ B b=new B(); //inSert C0de here } } 1-44 下列哪行代碼插入到第7行,將拋出java.lang.ClassCaseException異常7 A.A a=b; B. F f=(C)b; C. F f=(A)b; D. B bb=(B)(A)b; 14.現(xiàn)有: 1.class Guy { String greet(){ return ”hi“;} j 2.class Cowboy extends Guy { String greet(){ ”howdy“;}} 3.class Wrangler extends Cowboy { String { return ”orch!“;} } 4. 5.class Greetings2 { 6.public static void main(String [] args){ 7.Guy g=new Wrangler();8. Guy g2=new Cowboy(); 9.Wrangler w2=new Wrangler();10.System.out.print(g.greet()+g2.greet()+w2.greet());11.} 12.} 結(jié)果是什么? A.hi hi ouch! B.ouch!howdy ouch! C.hi howdy ouch! D.編譯失敗 E.運(yùn)行的咐候有異常拋出 15.現(xiàn)有: class ClassA {} class ClassB extends ClassA {) class ClassC extends ClassA {) 以及: ClassA p0=new ClassA(); ClassB pl=new ClassB(); ClassC p2=new ClassC(); ClassA p3=new ClassB(); ClassA p4=new ClassC(); return.greet()1-45 · 下列哪些是正確的?(選三項(xiàng)] A.p0=pl; B.p1 =p2; C.p2=p4; D.p2 =(ClassC)pl; E.p1 =(ClassB)p3; F.p2 =(Classc)p4; 1-46 參考答案 1AC 2AB 3A 4ABD 5AB 6C 7C 8B 9ABC D B A B B 15AEF 1-47 第八章練習(xí)題(異常) 1.Java語(yǔ)言中異常的分類(lèi)是哪項(xiàng)? A.運(yùn)行時(shí)異常和異常 B.受檢異常和非受檢異常 C.錯(cuò)誤和異常 D.錯(cuò)誤和運(yùn)行時(shí)異常 確的是 2.所有異常的父類(lèi)是哪項(xiàng)? A. Throwable B.Error C. RuntimeException D. Exception 3.關(guān)于try...catch...finally結(jié)構(gòu),描述正確的是哪項(xiàng)? (選兩項(xiàng))A.可以有多個(gè)catch B.只能有一個(gè)catch C.可以沒(méi)有catch D.finally必須有 4.下列屬于非受檢異常的是哪項(xiàng)? A.SQLException B.IOException C.NullPointerException D.OutOfMemoryError 5.假設(shè)有自定義異常類(lèi)ServiceException,那么拋出該異常的語(yǔ)句正哪項(xiàng)? A.raise ServiceException B.throw new ServiceException()C.throw ServiceException D.throws ServiceException 1-48 6.在方法的聲明中,要求該方法必須拋出異常時(shí)使用哪個(gè)關(guān)鍵字? A.throw B.catch C.finally D.throws 7.現(xiàn)有: 1.class Number{ 2.public static void main(String [] aras){ 3.try { 4.System.out.print(Integer.parselnt(”forty“)); 5.} catch(RuntimeException r){ 6.System.out.print(”runtime“); 7.} catch(NumberFormatException e){ 8.system..ut.print(”number“); 9.} 10.} 11.} 結(jié)果是什么? A. number B. runtime C. forty number D.編譯失敗 8.現(xiàn)有: 9.void topGo(){ 10.try { 11.middleGo(); 12.)catch(Exception e){ 13.System.out.print(”catch“);4. } 15.} 6.void middleGo()throws Exception { 17.go(); 8.system.out.print(”late middle“);9. } 2.void go()throws ExceptiOn { 21.throw new Exception(); 22.} 1-49 如果調(diào)用 topGo(),則結(jié)果為: A.late middle B.catch C.late middle catch D.catch Iate middle 9.現(xiàn)有 1.class Calc { 2.public static void main(String [] args){ 3.try { 4.int x = Integer.parselnt(”42a“);5.//insert code here 6.System.out.print(”oops“);7.} 8.} 9.} 下面哪兩行分別插入到第五行,會(huì)導(dǎo)致輸 ”oops“ ?(選兩項(xiàng))A.} catch(IllegalArgumentException e){ B.} catch(IllegalStateException c){ C.} catch(NumbelFormatException n){ D.} catch(ClassCastException c){ 10.現(xiàn)有: 1.class Flow { 2.public static void main(String [] args)t 3.try { 4.System.out.print(”before“);5.doRiskyThing();6.System.out.print(”after “);7.} catch(Exception fe){ 8.System.out.print(”catch“);9.} 10.System.out.println(” done");11.} 12.public static void doRiskyThing()throws Exception{ 13.// this code returns unless it throws an Exception }} 可能會(huì)產(chǎn)生哪兩項(xiàng)結(jié)果 ?(選兩項(xiàng)) A.before catch B.before after done C.before catch done D.before after catch 1-50 1、2、3、解析:本題考查存儲(chǔ)器基礎(chǔ)知識(shí)。 地址編號(hào)A0000H至DFFFFH的內(nèi)存空間中共有218(DFFFF-A0000=3FFFF)個(gè)存儲(chǔ)單元,每個(gè)單元8比特,因此需要的存儲(chǔ)器芯片數(shù)目為218/215=23個(gè)。5, 7 解析:本題考查計(jì)算機(jī)系統(tǒng)基礎(chǔ)知識(shí)。 Cache(高速緩沖存儲(chǔ)器)是一種特殊的存儲(chǔ)器子系統(tǒng),其中復(fù)制了頻繁使用的數(shù)據(jù)以利于快速訪(fǎng)問(wèn)。Cache的出現(xiàn)是基于兩種因素:首先,是由于CPU的速度和性能提高很快而主存速度較低且價(jià)格高,第二就是程序執(zhí)行的局部性特點(diǎn)。因此,才將速度比較快而容量有限的SRAM構(gòu)成Cache,目的在于盡可能發(fā)揮CPU的高速度。8 本題考查光盤(pán)存儲(chǔ)技術(shù)基本常識(shí)。題目給出的是常見(jiàn)光盤(pán)格式,其中DVD-RAM和DVD-RW是DVD論壇所支持的兩種不同的可多次擦除重寫(xiě)的DVD光盤(pán)格式,CD-R指一次性可寫(xiě)(刻錄)CD光盤(pán),而CD-RW指可多次擦除、重寫(xiě)的CD光盤(pán)。11 本題考查計(jì)算機(jī)病毒方面的上基礎(chǔ)知識(shí)。 計(jì)算機(jī)病毒的分類(lèi)方法有許多種,按照最通用的區(qū)分方式,即根據(jù)其感染的途徑以及采用的核技術(shù)區(qū)分,計(jì)算機(jī)病毒可分為文件型計(jì)算機(jī)病毒、引導(dǎo)型計(jì)算機(jī)病毒、宏病毒和目錄型計(jì)算機(jī)病毒。 文件型計(jì)算機(jī)病毒感染可執(zhí)行文件(包括EXE和COM文件。 引導(dǎo)型計(jì)算機(jī)病毒影響軟盤(pán)或硬盤(pán)的引導(dǎo)扇區(qū)。 宏病毒感染的對(duì)象是使用某些程序創(chuàng)建的文本文檔、數(shù)據(jù)庫(kù)、電了表格等文件。 目錄型計(jì)算機(jī)病毒能夠修改硬盤(pán)上存儲(chǔ)的所有文件的地址,如果用戶(hù)使用某些工具(如SCANDISK或CHKDSK檢測(cè)受感染的磁盤(pán),會(huì)發(fā)現(xiàn)大量的文件鏈接地址的錯(cuò)誤,這些錯(cuò)誤都是由此類(lèi)計(jì)算機(jī)病毒造成的。12 本題考查知識(shí)產(chǎn)權(quán)基本知識(shí),即軟件著作權(quán)歸屬。依據(jù)我國(guó)《著作權(quán)法》、《計(jì)算機(jī)軟件保護(hù)條例》,委托開(kāi)發(fā)的軟件的著作權(quán)可歸屬于委托方,也可歸屬于受托方,或者由委托方和受托方雙方共有;具體情況由雙方訂立的合同約定來(lái)確認(rèn)。如果委托方和受托方之間簽訂了書(shū)面的委托開(kāi)發(fā)合同,并對(duì)委托開(kāi)發(fā)的軟件著作權(quán)的歸屬有明確約定的,那么該委托開(kāi)發(fā)軟件著作權(quán)應(yīng)依照合同的約定確認(rèn)著作權(quán)歸屬關(guān)系。對(duì)于在委托開(kāi)發(fā)軟件活動(dòng)中,委托方和受托方之間沒(méi)有簽訂書(shū)面的委托開(kāi)發(fā)合同,或者雖然簽訂了書(shū)面的委托開(kāi)發(fā)合同,但是合同中對(duì)該委托開(kāi)發(fā)軟件著作權(quán)的歸屬約定不明確的,那么根據(jù)法律的規(guī)定,該委托開(kāi)發(fā)軟件的著作權(quán)應(yīng)屬于受托者所有,但是委托人可以享有該軟件的使用權(quán)。法律的這種規(guī)定主要是考慮了受托人是軟件的實(shí)際開(kāi)發(fā)者,是軟件真實(shí)的智力投資者,符合開(kāi)發(fā)者享有軟件著作權(quán)的一般原則。所以,本題涉及的軟件著作權(quán)應(yīng)屬于軟件公司。13 本題考查知識(shí)產(chǎn)權(quán)基本知識(shí),即區(qū)別侵犯物權(quán)與知識(shí)產(chǎn)權(quán)行為。將他人的軟件光盤(pán)占為已有,涉及的是物體本身,即軟件的物化載體,該行為是侵犯財(cái)產(chǎn)所有權(quán)的行為。如果行為人雖未占有這一軟件光盤(pán),(如借或租他人一張軟件光盤(pán),使用后返還,但擅自將該軟件光盤(pán)復(fù)制出售,則該行為涉及的是無(wú)形財(cái)產(chǎn),即軟件開(kāi)發(fā)商的思想表現(xiàn)形式(知識(shí)產(chǎn)品,屬于侵犯知識(shí)產(chǎn)權(quán)行為。14 指令寄存器(IR)用來(lái)保存當(dāng)前正在執(zhí)行的指令。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到數(shù)據(jù)寄存器(DR)中,然后再傳送至IR。為了執(zhí)行任何給定的指令,必須對(duì)操作碼進(jìn)行測(cè)試,以便識(shí)別所要求的操作。指令譯碼器(ID)就是做這項(xiàng)工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼后,即可向操作控制器發(fā)出具體操作的特定信號(hào)。地址寄存器(AR)用來(lái)保存當(dāng)前CPU所訪(fǎng)問(wèn)的內(nèi)存單元的地址。由于在內(nèi)存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來(lái)保持地址信息,直到內(nèi)存的讀/寫(xiě)操作完成為止。 為了保證程序指令能夠連續(xù)地執(zhí)行下去,CPU必須具有某些手段來(lái)確定下一條指令的地址。而程序計(jì)數(shù)器正是起到這種作用,所以通常又稱(chēng)為指令計(jì)數(shù)器。在程序開(kāi)始執(zhí)行前,必須將它的起始地址,即程序的一條指令所在的內(nèi)存單元地址送入PC,因此程序計(jì)數(shù)器(PC)的內(nèi)容即是從內(nèi)存提取的第一條指令的地址。當(dāng)執(zhí)行指令時(shí),CPU將自動(dòng)修改PC的內(nèi)容,即每執(zhí)行一條指令PC增加一個(gè)量,這個(gè)量等于指令所含的字節(jié)數(shù),以便使其保持的總是將要執(zhí)行的下一條指令的地址。由于大多數(shù)指令都是按順序來(lái)執(zhí)行的,所以修改的過(guò)程通常只是簡(jiǎn)單的對(duì)PC加1。17 先來(lái)先服務(wù),是按到達(dá)時(shí)間順序,一個(gè)服務(wù)完了,磁頭回去去找第二個(gè),找到馬上執(zhí)行,類(lèi)推,不知道下一個(gè)什么時(shí)候到,不能確定回到哪個(gè)點(diǎn) 最短尋道,是一個(gè)服務(wù)完,找離磁頭最近的那個(gè)進(jìn)程,也不固定 電梯調(diào)度,磁頭固定的在兩個(gè)點(diǎn)之間運(yùn)動(dòng),哪個(gè)進(jìn)程能搭上就運(yùn)行掉 單項(xiàng)掃描,磁頭從一邊掃到另一邊,完了立刻跳回到開(kāi)頭,回來(lái)過(guò)程中不處理進(jìn)程 19 從狀態(tài)圖的狀態(tài)0出發(fā),識(shí)別a后到達(dá)狀態(tài)0,識(shí)別b后到達(dá)狀態(tài)1,由于不存在從狀態(tài)1出發(fā)識(shí)別a的狀態(tài)轉(zhuǎn)移,因此,abab不能被該自動(dòng)機(jī)識(shí)別。對(duì)于選項(xiàng)B,識(shí)別aabb的狀態(tài)轉(zhuǎn)移路是狀態(tài)0→狀態(tài)0→狀態(tài)1→狀態(tài)2。對(duì)于選項(xiàng)C,識(shí)別bbaa的狀態(tài)轉(zhuǎn)移路是狀態(tài)0→狀態(tài)1→狀態(tài)2→狀態(tài)2→狀態(tài)2。對(duì)于選項(xiàng)D,識(shí)別bbab的狀態(tài)轉(zhuǎn)移路是狀態(tài)0→狀態(tài)1→狀態(tài)2→狀態(tài)2→狀態(tài)2。23 本題考查數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí)。 對(duì)二叉樹(shù)進(jìn)行先序遍歷的過(guò)程是:若二叉樹(shù)非空,則先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后先序遍歷左子樹(shù),最后先序遍歷右子樹(shù)。因此,二叉樹(shù)的先序遍歷序列中,第一個(gè)元素是根結(jié)點(diǎn)。對(duì)二叉樹(shù)進(jìn)行中序遍歷的過(guò)程是:若二叉樹(shù)非空,則先中序遍歷左子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后中序遍歷右子樹(shù)。因此,若在中序遍歷序列中已找出二叉樹(shù)的根結(jié)點(diǎn),則根結(jié)點(diǎn)左邊為左子樹(shù)的中序遍歷序列,右邊是右子樹(shù)的中序遍歷序列。 由此,根據(jù)先序序列確定根結(jié)點(diǎn),根據(jù)中序序列劃分左右子樹(shù),反復(fù)應(yīng)用此原則,就可根據(jù)先序遍歷序列和中序遍歷序列恢復(fù)二叉樹(shù)的結(jié)構(gòu)。 本題中,先序序列為ABDCE,因此A是樹(shù)根結(jié)點(diǎn),中序序列為BDAEC,因此BD是左子樹(shù)上的結(jié)點(diǎn),EC是右子樹(shù)上的結(jié)點(diǎn)。根據(jù)先序遍歷序列,可知B是左子樹(shù)的根結(jié)點(diǎn),C是右子樹(shù)的根結(jié)點(diǎn)。在中序遍歷序列BDAEC中,D在B之后,因此D是B的右孩子。同理,在中序遍歷序列BDAEC中,E在C之前,因此E是C的左孩子。25 蒙 29 本題考查面向?qū)ο蟮幕靖拍?。面向?qū)ο蟾拍钪?,子?lèi)是父類(lèi)的特化,子類(lèi)能夠自動(dòng)獲得父類(lèi)的屬性和方法,即繼承父類(lèi)的屬性和方法,但子類(lèi)可以根據(jù)實(shí)際情況對(duì)繼承而來(lái)的方法進(jìn)行覆蓋或重載,也就是子類(lèi)和父類(lèi)的行為不必保持完全地一致。33 本題考查類(lèi)和對(duì)象的基本概念。類(lèi)是對(duì)象的模板,類(lèi)定義了對(duì)象共有的屬性和方法。類(lèi)也可以看作是一組對(duì)象共有特性的集合,即一個(gè)類(lèi)中的對(duì)象擁有相同的屬性和方法,一般而言,從一個(gè)類(lèi)可以產(chǎn)生多個(gè)對(duì)象。34 面向?qū)ο笤O(shè)計(jì)的含義是設(shè)計(jì)分析模型和實(shí)現(xiàn)相應(yīng)源代碼,在目標(biāo)代碼環(huán)境中這種源代碼可被執(zhí)行。面向?qū)ο笤O(shè)計(jì)是建立在面向?qū)ο蠓治龅幕A(chǔ)上的。35 本題考查面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的作用。 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的最主要的作用是面向?qū)ο蟮南到y(tǒng)實(shí)現(xiàn),它并不能用于系統(tǒng)的分析與設(shè)計(jì),目前,較為流行的面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)工具或語(yǔ)言主要是統(tǒng)一建模語(yǔ)言UML。36 本題考查面向?qū)ο蠓治雠c結(jié)構(gòu)化分析的基本概念。面向?qū)ο蠓治龅闹饕蝿?wù)是描述用戶(hù)需求,構(gòu)建一個(gè)準(zhǔn)確的、一致的模型以描述軟件需要解決的問(wèn)題,其結(jié)果是軟件系統(tǒng)的分析模型;面向?qū)ο笤O(shè)計(jì)的主要任務(wù)則是描述系統(tǒng)如何解決問(wèn)題,其結(jié)果是軟件系統(tǒng)的設(shè)計(jì)模型。37 本題考查軟件維護(hù)的基礎(chǔ)知識(shí)。 軟件維護(hù)涉及不同內(nèi)容,主要包括硬件設(shè)備的維護(hù)、應(yīng)用軟件的維護(hù)和數(shù)據(jù)的維護(hù)。其中數(shù)據(jù)維護(hù)主要負(fù)責(zé)數(shù)據(jù)庫(kù)的安全性、完整性和進(jìn)行并發(fā)性控制,以及維護(hù)數(shù)據(jù)庫(kù)中的數(shù)據(jù),當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)類(lèi)型、長(zhǎng)度等發(fā)生變化時(shí),或者需要添加某個(gè)數(shù)據(jù)項(xiàng)、數(shù)據(jù)庫(kù)時(shí),要負(fù)責(zé)修改相關(guān)的數(shù)據(jù)庫(kù)、數(shù)據(jù)字典等工作。39 黑盒測(cè)試在完全不考慮軟件的內(nèi)部結(jié)構(gòu)和特性的情況下,測(cè)試軟件的外部特性。白盒測(cè)試則根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來(lái)設(shè)計(jì)測(cè)試用例,對(duì)程序的執(zhí)行路徑和執(zhí)行過(guò)程進(jìn)行測(cè)試,檢查是否滿(mǎn)足設(shè)計(jì)要求。41 本題考查動(dòng)態(tài)綁定的基礎(chǔ)知識(shí)。 綁定是一個(gè)把過(guò)程調(diào)用和響應(yīng)調(diào)用而需要執(zhí)行的代碼加以結(jié)合的過(guò)程。在一般的程序設(shè)計(jì)語(yǔ)言中,綁定是在編譯時(shí)進(jìn)行的,叫做靜態(tài)綁定。動(dòng)態(tài)綁定則是在運(yùn)行時(shí)進(jìn)行的,即一個(gè)給定的過(guò)程調(diào)用利代碼的結(jié)合直到調(diào)用發(fā)生時(shí)才進(jìn)行。42 軟件是為用戶(hù)設(shè)計(jì)的。勝任用戶(hù)的任務(wù),使用戶(hù)滿(mǎn)意是評(píng)價(jià)軟件的最終目標(biāo)。由于用戶(hù)最初提出的軟件需求一般比較模糊,剛交付的軟件一股還隱藏著某些問(wèn)題,所以需要對(duì)軟件產(chǎn)品進(jìn)行持續(xù)不斷的改進(jìn)。改進(jìn)的動(dòng)力主要來(lái)自用戶(hù)使用過(guò)程中的反饋意見(jiàn),包括,發(fā)現(xiàn)的質(zhì)量問(wèn)題,功能需要完善,操作需要簡(jiǎn)便,界面需要改進(jìn),需求也會(huì)有變化等。題中其他各項(xiàng)也是改進(jìn)軟件的原因,但分析研究用戶(hù)反饋意見(jiàn)并改進(jìn)軟件是主要的動(dòng)力。42 軟件開(kāi)發(fā)文檔是重要的,軟件產(chǎn)品=程序+文檔。因此,軟件開(kāi)發(fā)就是程序和文檔的生產(chǎn)過(guò)程。軟件文檔包括開(kāi)發(fā)文檔和用戶(hù)文檔兩大類(lèi)。開(kāi)發(fā)文檔記錄了開(kāi)發(fā)全過(guò)程、各階段所用的技術(shù)和產(chǎn)生的成果,這是開(kāi)發(fā)經(jīng)驗(yàn)的積累,也是改進(jìn)軟件時(shí)必須參照的依據(jù)。用戶(hù)文檔向用戶(hù)提供了使用和運(yùn)行維護(hù)所需要的資料。由于軟件開(kāi)發(fā)周期長(zhǎng),開(kāi)發(fā)過(guò)程中的人員流動(dòng)是難免的。為避免開(kāi)發(fā)人員在開(kāi)發(fā)中途離職造成工作脫節(jié),也需要實(shí)施開(kāi)發(fā)過(guò)程的文檔化。各階段的評(píng)審也需要文檔,這是質(zhì)量保證的重要基礎(chǔ)。 在開(kāi)發(fā)過(guò)程中,面對(duì)面交流的重要結(jié)果需要用文檔來(lái)固化,有據(jù)可依,有據(jù)可查。但是,文檔不能完全取代面對(duì)面交流。許多不成熟的意見(jiàn)、思想的火花(常稱(chēng)為軟知識(shí))是很難用嚴(yán)格的文檔來(lái)描述的。只有通過(guò)多次討論甚至辯論達(dá)成某種結(jié)論后,才能成為比較成熟的硬知識(shí),固化在文檔上。 現(xiàn)在的敏捷開(kāi)發(fā)方法特別關(guān)注面對(duì)面交流(溝通),充分發(fā)揮其作用,達(dá)到真正的一致認(rèn)識(shí)和理解。單靠文檔有時(shí)仍會(huì)產(chǎn)生不同理解甚至誤解。44 數(shù)據(jù)模型主要有網(wǎng)狀模型、層次模型、關(guān)系模型和面向?qū)ο竽P?。盡管采用網(wǎng)狀模型和層次模型的網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù)已經(jīng)很好地解決了數(shù)據(jù)的集中和共享問(wèn)題,但是在數(shù)據(jù)獨(dú)立性和抽象級(jí)別上仍有很大欠缺。用戶(hù)在對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),指出存取路徑。而后來(lái)出現(xiàn)的采用關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù)則較好地解決了這些問(wèn)題,因?yàn)椋P(guān)系模型是采用二維表格結(jié)構(gòu)表達(dá)實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。關(guān)系模型有嚴(yán)格的數(shù)學(xué)基礎(chǔ),抽象級(jí)別比較高,而且簡(jiǎn)單清晰,便于理解和使用。45 0.702位于0.70與0.71之間。如果將區(qū)間0.70,0.71分成5等分,則分點(diǎn)依次為0.702,0.704,0.706,0.708。其中0.702位于最靠近0.70處,即與0.70的距離是區(qū)間長(zhǎng)度的1/5。具體的表示式為:0.702=(4/5)×0.70+(1/5)×0.71。按照線(xiàn)性插值方法,它們的函數(shù)值也應(yīng)有這樣的比例:cos0.702=(4/5)×cos0.70+(1/5)×cos0.71=(4a+6)/5。51 網(wǎng)絡(luò)攻擊手段多種多樣,常見(jiàn)的形式包括口令入侵、放置特洛伊木馬程序、DoS攻擊、端口掃描、網(wǎng)絡(luò)監(jiān)聽(tīng)、欺騙攻擊、電子郵件攻擊。 釣魚(yú)網(wǎng)站屬于欺騙攻擊中的Web欺騙,Web欺騙允許攻擊者創(chuàng)造整個(gè)中,http是協(xié)議名;www.004km.cn是主機(jī)名,其中test.com是域名,www是主機(jī)名:main是路徑名:index.htm是文件名。55 數(shù)據(jù)庫(kù)中的恢復(fù)機(jī)制負(fù)責(zé)檢測(cè)故障,并將數(shù)據(jù)庫(kù)恢復(fù)到故障發(fā)生前的狀態(tài)。60 第3章 Java語(yǔ)法基礎(chǔ) 基礎(chǔ)類(lèi)型和語(yǔ)法 1、變量及其作用范圍 Java變量可以分為:靜態(tài)變量、成員變量和局部變量3種。 靜態(tài)變量:在類(lèi)中用static修飾的變量,它的生存周期是由類(lèi)來(lái)決定的。 成員變量:在類(lèi)中沒(méi)有用static修飾的變量,它的生存周期由對(duì)象來(lái)決定。 局部變量:定義在方法里的變量、方法的參數(shù)或代碼塊里定義的變量,它們的作用范圍用大括號(hào){}來(lái)界定。 2、Java的變量分哪兩種大的數(shù)據(jù)類(lèi)型 Java的變量分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型。它們最大的區(qū)別在于,引用數(shù)據(jù)類(lèi)型存 放的是數(shù)據(jù)所在的地址,而基本數(shù)據(jù)類(lèi)型則是直接存放數(shù)據(jù)的值。 其他知識(shí)點(diǎn):引用數(shù)據(jù)類(lèi)型的變量存的值是一個(gè)內(nèi)存地址。對(duì)象一般是通過(guò)new語(yǔ)句創(chuàng) 建出來(lái)的,它保存在堆空間中,可以被多個(gè)引用類(lèi)型的變量所引用。當(dāng)引 用a修改了對(duì)象的數(shù)據(jù)以后,其他的引用也是可以看到這些改變的。 3、Java包含哪些基本數(shù)據(jù)類(lèi)型及其包裝類(lèi) Java一共有8種基本數(shù)據(jù)類(lèi)型,分別是byte、short、int、long、float、double、boolean、char;存儲(chǔ)的數(shù)據(jù)量比較小,用二進(jìn)制保存。其饈類(lèi)分別是:Byte、Short、Integer、Float、Double、Boolean、Character。 Eg.Integer itg=new Integer.valueOf(100); Itg.intValue(); 4、如何理解Java中的裝箱和拆箱 從Java 5.0開(kāi)始,有一種自動(dòng)裝箱和拆箱的功能,就可以不必顯式的進(jìn)行類(lèi)型轉(zhuǎn)換,系統(tǒng)會(huì)自動(dòng)的按照需要進(jìn)行數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。 Java中的裝箱和拆箱指的是基本數(shù)據(jù)類(lèi)型和包裝類(lèi)型的自動(dòng)相互的轉(zhuǎn)換。 裝箱:基本數(shù)據(jù)類(lèi)型——>包裝類(lèi)型 拆箱:包裝類(lèi)型——>基本數(shù)據(jù)類(lèi)型 5、Java中equal和==的區(qū)別是什么 “==”運(yùn)用在基本數(shù)據(jù)類(lèi)型的時(shí)候,通過(guò)比較它們實(shí)際的值來(lái)判定是否相同;而用于比較引用類(lèi)型的時(shí)候,則是比較兩個(gè)引用的地址是否相等,也就是是否指向同一個(gè)對(duì)象。 Equal方法是java.lang.Object的方法,也就是所有的Java類(lèi)都會(huì)有的方法。它可以被程序員覆蓋重寫(xiě),通過(guò)自定義的方式來(lái)判定兩個(gè)對(duì)象是否相等。對(duì)于字符串java.lang.String類(lèi)來(lái)說(shuō),它的equal方法用來(lái)比較字符串的字符序列是否相等。 6、Java中的注釋有哪些 行注釋?zhuān)?/ 塊注釋?zhuān)?* */,這種注釋不會(huì)出現(xiàn)在HTML文檔中。 文檔注釋?zhuān)?** /,它的注釋信息可以進(jìn)入到j(luò)avadoc文檔中。注釋文檔將用來(lái)生成HTML 格式的代碼API報(bào)告,還可以用@開(kāi)頭的關(guān)鍵字進(jìn)行注釋?zhuān)赃_(dá)到說(shuō)明方法參數(shù)、返回 值、異常等各種詳細(xì)信息。 Annotation:它會(huì)進(jìn)入到編譯層,并對(duì)程序結(jié)果產(chǎn)生影響。它最變通的作用就是用來(lái)替代 XML提供一些配置信息,例如,JPA、Spring等框架的配置信息就可以通過(guò)Annotation 來(lái)提供。 7、Java的引用和C++的指針有什么區(qū)別 Java的引用和C++的指針本質(zhì)上,它們兩者都是想通過(guò)一個(gè)叫做引用或者指針的東西,找到要操作的目標(biāo),方便在程序中操作。所不同的是Java的辦法更安全、方便,但失去了C++的靈活,也算是對(duì)指針的一種包裝和改進(jìn)。 主要區(qū)別是: 對(duì)象和類(lèi)型 1、類(lèi)和對(duì)象有什么區(qū)別 類(lèi)是一種抽象,而對(duì)象是類(lèi)的實(shí)現(xiàn)。 Java的類(lèi)通過(guò)class關(guān)鍵字進(jìn)行定義,它代表了一種抽象的集合。在它的里面可以定義各種屬性和方法,它們代表了每個(gè)類(lèi)實(shí)例的特定的數(shù)據(jù)和動(dòng)作。Java虛擬機(jī)對(duì)類(lèi)只加載一次,對(duì)它的靜態(tài)成員也只加載一次。 對(duì)象,指的是某一個(gè)特定抽象的實(shí)例,它屬于某一種類(lèi)型,也就是對(duì)象是通過(guò)類(lèi)來(lái)創(chuàng)建的。它必須從屬于某一個(gè)類(lèi),通過(guò)new關(guān)鍵字進(jìn)行創(chuàng)建,它代表一個(gè)特定類(lèi)型的實(shí)例,對(duì)象可以被多次創(chuàng)建。 2、Java中如何使用繼承來(lái)重用代碼 Java采用的是單繼承制,使用extends關(guān)鍵字。通過(guò)繼承之后,子類(lèi)就擁有了父類(lèi)除開(kāi)私有成員以外的所有成員,從而達(dá)到代碼重用的目的。在繼承過(guò)程中,可以通過(guò)方法的覆蓋來(lái)實(shí)現(xiàn)多態(tài),讓子類(lèi)擁用自己獨(dú)特的方法實(shí)現(xiàn)方式。 方法的覆蓋(或重寫(xiě))和重載是兩個(gè)不同的概念。重載是創(chuàng)建一個(gè)方法名相同,但參數(shù)列表不同的方法;而方法覆蓋則是子類(lèi)對(duì)父類(lèi)方法的覆蓋和重寫(xiě),定義一個(gè)名字、參數(shù)、返回值一樣的方法即可。 3、簡(jiǎn)述Java中的多態(tài) 多態(tài)是建立在繼承的基礎(chǔ)之上的。 “多態(tài)”的本質(zhì)是,發(fā)送消息給某個(gè)對(duì)象,讓該對(duì)象自行決定響應(yīng)何種行為。通過(guò)將子類(lèi)對(duì)象引用賦值給超類(lèi)對(duì)象引用變量來(lái)實(shí)現(xiàn)動(dòng)態(tài)方法調(diào)用。 4、Java中靜態(tài)成員的特點(diǎn) 類(lèi)的靜態(tài)成員是通過(guò)static關(guān)鍵字修飾的成員,主要包括:靜態(tài)成員變量、靜態(tài)方法和靜態(tài)代碼塊,它們具有以下一些特點(diǎn): 1、在類(lèi)加載的時(shí)候,就進(jìn)行創(chuàng)建和初始化或執(zhí)行代碼。 2、它們對(duì)于一個(gè)類(lèi)來(lái)說(shuō),都只有一份。 3、類(lèi)的所有實(shí)例都可以訪(fǎng)問(wèn)到它們。 靜態(tài)代碼塊先執(zhí)行。 5、Java派生類(lèi)中的構(gòu)造方法如何為父類(lèi)傳遞參數(shù) 在Java中,使用super()的形式來(lái)為父類(lèi)的構(gòu)造方法提供參數(shù),通過(guò)參數(shù)的數(shù)目和類(lèi)型來(lái)決定調(diào)用哪一個(gè)構(gòu)造方法。如果調(diào)用的是父類(lèi)的默認(rèn)的無(wú)參數(shù)構(gòu)造方法,則可以不必顯式地使用super()。super()的使用必須放在子類(lèi)構(gòu)造方法的第一行,否則編譯時(shí)會(huì)有語(yǔ)法錯(cuò)誤。 6、接口和抽象類(lèi)的區(qū)別 包含抽象(abstract)方法的類(lèi),就是抽象類(lèi)。抽象類(lèi)不能夠?qū)嵗bstract class 接口所有的方法都是抽象的,它可以包含靜態(tài)的變量,這些變量的值不能修改。interface 抽象類(lèi)是一種功能不全的類(lèi),接口只是一個(gè)抽象方法聲明和靜態(tài)不能被修改的數(shù)據(jù)的集合,兩者都不能被實(shí)例化。從某種意義上說(shuō),接口是一種特殊形式的抽象類(lèi),在Java語(yǔ)言中,抽象類(lèi)表示一種繼承關(guān)系,一個(gè)類(lèi)吸能繼承一個(gè)抽象類(lèi),而一個(gè)類(lèi)卻可以實(shí)現(xiàn)多個(gè)接口。 Class A extends B implements C,D { } 7、簡(jiǎn)述一下內(nèi)部類(lèi)的實(shí)質(zhì) 包和訪(fǎng)問(wèn)控制 1、包應(yīng)該如何被創(chuàng)建及使用 包是Java程序中關(guān)于命名空間的一種手段,它可以有效的解決類(lèi)重名的問(wèn)題。當(dāng)需要把一個(gè)類(lèi)定義在某個(gè)包下的時(shí)候,需要使用package關(guān)鍵字進(jìn)行定義;當(dāng)需要使用其他包下的類(lèi)的時(shí)候,則需要使用import關(guān)鍵字進(jìn)行導(dǎo)入。 2、說(shuō)明private、protected、public、default(friendly)的區(qū)別 第4章 數(shù)據(jù)類(lèi)型及類(lèi)型轉(zhuǎn)換 整型數(shù)據(jù) 1、int 和Integer有什么區(qū)別 所有的整型字面量默認(rèn)為int 型。 裝箱:創(chuàng)建Integer對(duì)象:Integer a=new Integer(20);Integer b=Integer.valueOf(30);拆箱:int c=a.intValue(); 2、Java中的八制字面量采用0開(kāi)頭,十六進(jìn)制采用0x開(kāi)頭。 3、Int型數(shù)據(jù)采用4個(gè)字節(jié)進(jìn)行存儲(chǔ),一共是32位。第一位用于表示正負(fù)號(hào),這的取值范圍是:-2^31~(2^31-1)。 Long型數(shù)據(jù)采用8個(gè)字節(jié)進(jìn)行存儲(chǔ),一共是64位。第一位用于表示正負(fù)號(hào),這的取值范圍是:-2^63~(2^63-1)。 實(shí)型(浮點(diǎn)型)數(shù)據(jù) 1、float 和double的取值范圍各是多少 Float型定義的數(shù)據(jù)末尾必須有“f”或“F”,為了和double區(qū)別。而double末尾可以有“d”或“D”,也可以不寫(xiě)。Java的浮點(diǎn)型數(shù)默認(rèn)為double型。 2、如何用BigDecimal類(lèi)進(jìn)行精確運(yùn)算 布爾型數(shù)據(jù) 1、Java可以用非0來(lái)代表true嗎? Java不能用非0代表true,也不能用0代表 false,只能用布爾型的true和false來(lái)進(jìn)行條件判斷。 2、boolean和它的包裝類(lèi)的區(qū)別在哪里 Boolean變量一般初始化為false。 字符型數(shù)據(jù) 1、char的取值范圍 Java中的char采用Unicode編碼格式,用兩個(gè)字節(jié)來(lái)表示一個(gè)字符,一共16位(bit),它所能表示的范圍是:0~2^16。 2、char能否存儲(chǔ)漢字 char是可以存儲(chǔ)漢字的,每個(gè)中文字符都有對(duì)應(yīng)的Unicode編碼。對(duì)于英文字母,它們所處的范圍是0~127之間,與ASCII碼相同,這是因?yàn)閁nicode兼容ASCII碼。 3、如何使用轉(zhuǎn)義字符 在Java中,使用反斜線(xiàn)“”來(lái)代表轉(zhuǎn)義,它與緊跟在它后面的字符一起組成了轉(zhuǎn)義字符,從而達(dá)到轉(zhuǎn)義的目的。 String型數(shù)據(jù) 1、字符串字面量是否自動(dòng)生成一個(gè)String對(duì)象 肯定會(huì)自動(dòng)生成。字符串類(lèi)具有一定的特殊性,JVM在執(zhí)行雙引號(hào)操作符的時(shí)候,會(huì)自動(dòng)的創(chuàng)建一個(gè)String對(duì)象,并返回這個(gè)對(duì)象的引用。 2、字符串對(duì)象池的作用是什么? Java虛擬機(jī)在啟動(dòng)的時(shí)候會(huì)實(shí)例化9個(gè)對(duì)象池,這9個(gè)對(duì)象池分別且來(lái)存儲(chǔ)8種基本類(lèi)型的包裝類(lèi)對(duì)象和String對(duì)象,主要是為了效率問(wèn)題。 對(duì)象池的存在是為了避免頻繁的創(chuàng)建和銷(xiāo)毀對(duì)象而影響系統(tǒng)性能。當(dāng)JVM在運(yùn)行用雙引號(hào)引起來(lái)的一個(gè)字符串的代碼時(shí),會(huì)到String的對(duì)象池中去檢查是否有一個(gè)字符序列相同的對(duì)象。如果有,就取現(xiàn)成的對(duì)象,如果沒(méi)有,則在對(duì)象池中創(chuàng)建一個(gè)對(duì)象,并返回。 3、StringBuffer和StringBuilder存在的作用是什么? Java的字符串String對(duì)象,有一個(gè)特性:不變性,它只能被創(chuàng)建,不能改變其中的值。 在Java程序中,如果有大量拼接字符串的需要的話(huà),應(yīng)該使用StringBuffer和StringBuilder類(lèi),它們可以避免不必要的String對(duì)象的產(chǎn)生,以提高程序的性能。它們的作用類(lèi)似,只不過(guò)StringBuilder線(xiàn)程是安全的。 StringBuffer sb=new StringBuffer(); Sb.append(a);//用append方法追加字符串 4、如何輸出反轉(zhuǎn)過(guò)后的字符串 實(shí)現(xiàn)字符串的反轉(zhuǎn)一般來(lái)說(shuō)有兩種手段,第一是利用字符串存儲(chǔ)字符數(shù)據(jù)的原理,取出它的char數(shù)組,進(jìn)行重新排列并保存;第二則是生成StringBuffer對(duì)象,直接使用StringBuffer的reverse()方法。 本文由 tonhhssy 貢獻(xiàn) pdf 文檔可能在 WAP 端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇 TXT,或下載源文件到本機(jī)查看。編輯推薦 揭開(kāi)知名 IT 企業(yè)面試、筆試的核心機(jī)密; 傳授程序員崗位求職的關(guān)鍵技巧?!禞ava 程序員面試寶典》 不同于其他 Java 程序書(shū)籍的主要特點(diǎn)如下。唯一性 本書(shū)是國(guó)內(nèi) 市場(chǎng)上唯一介紹 Java 程序員求職面試技巧的圖書(shū)和案例庫(kù)。本書(shū)從實(shí)際出發(fā),將 Java 程序 員面試中常會(huì)考到的一些編程基礎(chǔ)性問(wèn)題,比如 final、super 類(lèi)、構(gòu)造函數(shù)等最易考到的基 礎(chǔ) 考點(diǎn),放在第 2 部分 Java 程序設(shè)計(jì)里面,希望能切切實(shí)實(shí)解決實(shí)際問(wèn)題。深入性 面試題通過(guò)一道題考一個(gè)專(zhuān)類(lèi)方面的能力。說(shuō)起 Java,人們首先想到的是 Java 編程語(yǔ)言,然而事 實(shí)上,Java 是一種技術(shù),它由 4 個(gè)方面組成: Java 編程語(yǔ)言、Java 類(lèi)文件格式、Java 虛擬機(jī)和 Java 應(yīng)用程 序接口(Java API)。從面試者的角度來(lái)講,一個(gè)測(cè)試也許能從多方面 揭示應(yīng)試者的素質(zhì),至少你能 了解應(yīng)試者所掌握類(lèi)的水平。市面上流行的面試書(shū)籍在 此專(zhuān)業(yè)性的分類(lèi)方面做得不夠,正因?yàn)槿绱?,《Java 程序員面試寶典 》 一書(shū)中追求的是程序員求職背后的一些東西: 對(duì)于技術(shù)的本質(zhì)理解,而不僅限于對(duì) Java 技術(shù)的單 純講解。廣泛性 本書(shū)包括但不僅限于 Java 程序員面試。對(duì)求職市場(chǎng)面 試做了妥善分類(lèi)后,將面試對(duì)象分為軟件 開(kāi)發(fā)人員、網(wǎng)絡(luò)工程師、測(cè)試工程師和系統(tǒng)管理員(又包括操作系統(tǒng)管理員和數(shù)據(jù)庫(kù)管理員等)實(shí)際上市面上流行的面試書(shū)籍僅對(duì)軟件開(kāi)發(fā)。人員比較側(cè)重,而忽略網(wǎng)絡(luò)工程師和測(cè)試工程師,而現(xiàn) 實(shí)情況是在諸如趨勢(shì)科技、思科等公 司的面試中,對(duì)網(wǎng)絡(luò)方面的考題日趨增加,在銀行、金融公司 的面試中對(duì)系統(tǒng)管理員方面的 考題也占很大的比重。本書(shū)就這一方面給出詳細(xì)論斷,并結(jié)合大量考 題分析題目特點(diǎn)給出應(yīng) 試方案。本書(shū)將在這些方面做出改進(jìn),以適應(yīng)市場(chǎng)需求。同時(shí)本書(shū)對(duì)外企經(jīng)常考到的 UML 及設(shè)計(jì)模式內(nèi)容也做了深入的分析,并在上一本書(shū)《程序員面 試寶典》的基礎(chǔ)上從本質(zhì) 上詮釋面試的真諦。真實(shí)性 本書(shū)的所有面試題都來(lái)自 2005—2006 年各大公司的面 試題及培訓(xùn)資料,內(nèi)容非常新,可以算做 面試者求職前的一份全真模擬。我們希望營(yíng)造一種 真實(shí)的面試氛圍,同時(shí)作者希望把如何做好一個(gè) 職業(yè)人,以及作者在職場(chǎng)上所獲得的實(shí)際感 悟融會(huì)在書(shū)中,通過(guò)真情實(shí)感,娓娓道來(lái),指引讀者走 上理想的工作崗位。本書(shū)不是一本萬(wàn) 能書(shū)籍,但卻肯定是你工作求職的好助手、好伙伴!本書(shū)是程序員面試寶典系列中的一 部,也是上一本《程序員面試寶典》的姊 妹叢書(shū)。本書(shū)對(duì)程 序設(shè)計(jì)面試中 Java 常見(jiàn)的題型 和常用解答技巧進(jìn)行了介紹,它不僅能幫助求職者快速?gòu)?fù)習(xí)有相關(guān)知 識(shí)點(diǎn),也對(duì)現(xiàn)代職業(yè)人 如何有效求職、面試考官如何關(guān)注求職者動(dòng)態(tài)等做了詳細(xì)解說(shuō)。本書(shū)通過(guò)詳 解各大知名公司 技術(shù)類(lèi)(開(kāi)發(fā)、測(cè)試、系統(tǒng)管理)面試中的常見(jiàn) Java 試題,深入淺出地對(duì)其解答思 路進(jìn)行 了分析和指導(dǎo)。希望能把在技術(shù)面試中取得的寶貴經(jīng)驗(yàn)毫無(wú)保留地傳授給讀者,以便使求職 者對(duì)程序設(shè)計(jì)面試中的常見(jiàn)題型應(yīng)付自如。通過(guò)對(duì)本書(shū)的學(xué)習(xí),你會(huì)發(fā)現(xiàn)和完善有關(guān)試題的 最佳解 決方案,以應(yīng)對(duì)不利局面的情況。本書(shū)簡(jiǎn)介 本書(shū)是程序員面試寶典系列中的一部,也是上一本《程序員面試寶典》的姊妹叢書(shū)。本 書(shū)對(duì)程序設(shè) 計(jì)面試中 Java 常見(jiàn)的題型和常用解答技巧進(jìn)行了介紹,它不僅能幫助求職者快 速?gòu)?fù)習(xí)有相關(guān)知識(shí)點(diǎn),也對(duì)現(xiàn)代職業(yè)人如何有效求職、面試考官如何關(guān)注求職者動(dòng)態(tài)等做了 詳細(xì)解說(shuō)。本書(shū)通過(guò)詳解各大知名公司技術(shù)類(lèi)(開(kāi)發(fā)、測(cè)試、系統(tǒng)管理)面試中的常見(jiàn) Java 試題,深入淺 出地對(duì)其解答思路進(jìn)行了分析和指導(dǎo)。希望能把在技術(shù)面試中取得的寶 貴經(jīng)驗(yàn)毫無(wú)保留地傳授給讀 者,以便使求職者對(duì)程序設(shè)計(jì)面試中的常見(jiàn)題型應(yīng)付自如。通過(guò) 對(duì)本書(shū)的學(xué)習(xí),你會(huì)發(fā)現(xiàn)和完善有 關(guān)試題的最佳解決方案,以應(yīng)對(duì)不利局面。本書(shū)適 合(但不限于)將要找工作的程序和高校計(jì)算機(jī)類(lèi)應(yīng)曲畢業(yè)生,以及其他計(jì)算機(jī)愛(ài)好者。目錄第三篇:初級(jí)程序員考試復(fù)習(xí)資料(筆試)
第四篇:Java程序員面試寶典
第五篇:Java程序員面試寶典
第 1 部分 求職過(guò)程 第 1 章 應(yīng)聘求職 第 2 章 簡(jiǎn)歷書(shū)寫(xiě) 第 3 章 3 種考試 第 4 章 職業(yè)生涯發(fā)展規(guī)劃 第 5 章 3 個(gè)求職技巧 第 2 部分 Java 程序設(shè)計(jì) 第 6 章 Java 程序設(shè)計(jì)基本概念 第 7 章 異常與反射 第 8 章 傳遞與引用 第 9 章 循環(huán)、條件、概率 第 10 章 Java 內(nèi)存管理 第 11 章 面向?qū)ο?第 12 章 繼承與接口 第 13 章 JavaScript 第 14 章 Java 架構(gòu)技術(shù)及相關(guān)中間件 第 3 部 分 數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì)模式 第 15 章 字符串 第 16 章 設(shè)計(jì)模式 第 4 部分 UNIX、Oracle、網(wǎng)絡(luò) 第 17 章 操作系統(tǒng) 第 18 章 數(shù)據(jù)庫(kù)和 SQL 語(yǔ)言 第 19 章 計(jì)算機(jī)網(wǎng) 絡(luò)及分布式系統(tǒng) 第 6 部分 Java 開(kāi)源 第 20 章 J2EE 技術(shù) 第 21 章 數(shù)據(jù)相關(guān) 第 22 章 Java 中的 Web 設(shè)計(jì) 第 23 章 Java 中的網(wǎng)頁(yè)設(shè)計(jì) 第 24 章 Struts 結(jié)構(gòu)設(shè)計(jì) 第 25 章 Java 安全性 第 6 部分 綜合面試題 第 26 章 英語(yǔ)面試 第 27 章 電話(huà)面試 第 28 章 智力測(cè)試 附錄 A 簡(jiǎn)歷模板 附錄 B 面試經(jīng)歷總結(jié) 下載后 點(diǎn)擊此處查看更多內(nèi)容 1