- 《JAVA程序設計》期末考試試題 推薦度:
- 相關(guān)推薦
《JAVA程序設計》期末考試試題(通用9套)
我們在學(xué)習、工作生活中,我們都要用到考試題,考試題有助于被考核者了解自己的真實(shí)水平。你知道什么樣的考試題才能切實(shí)地幫助到我們嗎?以下是小編為大家整理的《JAVA程序設計》期末考試試題(通用9套),僅供參考,歡迎大家閱讀。
《JAVA程序設計》期末考試試題 1
一、 單選題
1、下列程序段執行后的結果是( )。
String s = new String("abcdefg");
for (int i=0; i
System.out.print(s.charAt(i));
}
A) aceg B) ACEG C) abcdefg D) abcd
2、有整型數組:int[] x={12,35,8,7,2};,則調用方法Arrays.sort(x)后,數組x中的元素值依次是( ).
A) 2 7 8 12 35 B) 12 35 8 7 2
C) 35 12 8 7 2 D) 8 7 12 35 2
3、下面的程序段創(chuàng )建了BufferedReader類(lèi)的對象in,以便讀取本機c盤(pán)my文件夾下的文件1.txt。File構造函數中正確的路徑和文件名的表示是( )。
File f = new File(填代碼處);
file =new FileReader(f);
in=new BufferedReader(file);
A) "./1.txt" B) "../my/1.txt" C) "c:\\my\\1.txt" D) "c:\ my\1.txt"
4、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。
String s1=new String("abc");
String s2=new String("abc");
boolean b1=s1.equals(s2);
boolean b2=(s1==s2);
System.out.print(b1+" "+b2);
A)true false B) false true C) true true D)false false
5、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。
Hashtable hashtable=new Hashtable();
hashtable.put("x","12345");
hashtable.put("y","67890");
hashtable.put("a","abcde");
System.out.println(hashtable.get("a"));
A) a B) abcde C) 12345 D) 67890
6、下面語(yǔ)句的功能是( )。
RandomAccessFile raf2 = newRandomAccessFile("1.txt","rw" );
A)打開(kāi)當前目錄下的文件1.txt,既可以向文件寫(xiě)數據,也可以從文件讀數據。
B)打開(kāi)當前目錄下的文件1.txt,但只能向文件寫(xiě)入數據,不能從文件讀取數據。
C)打開(kāi)當前目錄下的文件1.txt,但不能向文件寫(xiě)入數據,只能從文件讀取數據。
D) 以上說(shuō)法都不對。
7、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。
String s="12345#aaa#bbb#67890";
int n=s.indexOf("#");
int k=s.indexOf("#",n+1);
int m=s.indexOf("#",k+1);
String s2=s.substring(m+1);
System.out.println(s2);
A) 123456 B) 67890 C) aaa D) bbb
8、下面程序段執行后b的值是( )。
Integerinteg =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false
9、應用程序Test.java的源程序如下,在命令行鍵入:
java Test aaa bb c
回車(chē)后輸出的.結果是 ( )。
public class Test {
publicstatic void main(String args[]) {
int k1=args.length;
int k2=args[1].length();
System.out.print(k1+" "+k2);
}
}
A) 3 2 B)1 2 C) 1 3 D)3 3
10、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。
int b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i
for(int j=0;j
sum*=b[i][j];
}
}
System.out.println("sum="+sum);
A) 32 B)11 C) 2 D) 3
11、應用程序的main方法中有以下語(yǔ)句,則執行后輸出的結果是 ( )。
int[] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i
if(x[i]>max)
max=x[i];
}
System.out.println(max);
A) 125 B) 5 C) 98 D) 168
12、程序Test.java編譯運行后輸出的結果是( )。
public class Test {
Strings1="java";
publicstatic void main(String args[]) {
intz=2;
Testt=new Test();
System.out.println(t.s1+z);
}
}
A) java2 B)2 C)沒(méi)有輸出結果 D)java
13、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。
Strings1="0.5", s2="12";
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);
System.out.println(x+y);
A) 12.5 B) 120.5 C)12 D) “12.5”
14、下面的程序創(chuàng )建了一個(gè)文件輸出流對象,用來(lái)向文件test.txt中輸出數據,假設程序當前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt 的內容是( )。
import java.io.*;
public class Test {
publicstatic void main(String args[]) {
try{
Strings="ABCDE";
byteb[]=s.getBytes();
FileOutputStreamfile=new FileOutputStream("test.txt",true);
file.write(b);
file.close();
}
catch(IOExceptione) {
System.out.println(e.toString());
}
}
}
A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE
15、下面那些方法不是接口Collection中已聲明的方法( )?
A)添加元素的add(Object obj) 方法
B)刪除元素的remove(Objectobj)方法
C)得到元素個(gè)數的length()方法
D)返回迭代器的iterator()方法,迭代器用于元素遍歷
二、多選題
1、下面main()方法的定義哪些是正確的( )?
A) publicstatic void main(String args[]) {} B) publicstatic void main(String[]) {}
C) publicstatic void main(String[] args) {} D)publicstatic void main(String [] x) {}
2、線(xiàn)程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)( )。
A)新建 B)運行 C)就緒 D)死亡
3、下面說(shuō)法正確的是( )。
A) final 可修飾類(lèi)、屬性(變量)、方法。
B) abstract可修飾類(lèi)、方法。
C) 抽象方法只有方法頭,沒(méi)有方法體。
D) 關(guān)鍵字final和abstract不能同時(shí)使用。
4、下面關(guān)于java中輸入/輸出流的說(shuō)法正確的是( )。
A) FileInputStream與FileOutputStream類(lèi)用讀、寫(xiě)字節流。
B) Reader與Writer類(lèi)用來(lái)讀、寫(xiě)字符流。
C) RandomAccessFile既可以用來(lái)讀文件,也可以用來(lái)寫(xiě)文件。
D) File類(lèi)用來(lái)處理與文件相關(guān)的操作。
5、下面說(shuō)法正確的是( )。
A)如果某公共接口被聲明在一個(gè)源文件中,則接口必須與源文件具有相同名字。
B)如果源文件包含import語(yǔ)句,則該語(yǔ)句必須是除空行和注釋行外的第一個(gè)語(yǔ)句行。
C)如果某源文件包含package語(yǔ)句,則該語(yǔ)句必須是第一個(gè)非空、非注釋行。
D)接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。
6、下面關(guān)于Java中異常處理try塊的說(shuō)法正確的是( )?
A) try塊后通常應有一個(gè)catch 塊,用來(lái)處理try塊中拋出的異常。
B) catch 塊后必須有finally塊。
C)可能拋出異常的方法調用應放在try塊中。
D)對拋出的異常的處理必須放在try塊中
7、下面關(guān)于進(jìn)程、線(xiàn)程的說(shuō)法正確的是( )。
A)進(jìn)程是程序的一次動(dòng)態(tài)執行過(guò)程。一個(gè)進(jìn)程在其執行過(guò)程中,可以產(chǎn)生多個(gè)線(xiàn)程——多線(xiàn)程,形成多條執行線(xiàn)索。
B)線(xiàn)程是比進(jìn)程更小的執行單位,是在一個(gè)進(jìn)程中獨立的控制流,即程序內部的控制流。線(xiàn)程本身不能自動(dòng)運行,棲身于某個(gè)進(jìn)程之中,由進(jìn)程啟動(dòng)執行。
C)Java多線(xiàn)程的運行與平臺相關(guān)。
D)對于單處理器系統,多個(gè)線(xiàn)程分時(shí)間片獲取CPU或其他系統資源來(lái)運行。對于多處理器系統,線(xiàn)程可以分配到多個(gè)處理器中,從而真正的并發(fā)執行多任務(wù)。
8、關(guān)于BufferedReader類(lèi)的readLine()方法,以下說(shuō)法正確的是()。
A)方法readLine()每次讀取一行數據。
B)方法readLine()每次讀取一個(gè)字節。
C)該方法可能拋出IOException異常,調用該方法時(shí)通常應將它放到try塊中,并通過(guò)catch塊處理異常。
D)如果讀到流的末尾,該方法返回的結果為null。
三、程序閱讀題
1、閱讀下面的程序,回答問(wèn)題(u問(wèn)3分,v問(wèn)3分,共6分)。
import java.awt.*;
import javax.swing.*;
public class T extends JFrame {
public T ( ) {
super("GridLayout");
Container con=this.getContentPane();
con.setLayout(new GridLayout(2,3));
con.add(new JButton("a"));
con.add(new JButton("b"));
con.add(new JButton("c"));
con.add(new JButton("d"));
con.add(new JButton("e"));
con.add(new JButton("f"));
setSize(200, 80);
setVisible(true);
}
public static void main(String args[]) {
new T();
}
}
u畫(huà)圖表示程序運行后的圖形界面。
v如果程序通過(guò)實(shí)現某個(gè)接口處理按鈕的動(dòng)作事件,則該接口名為何?接口中的方法頭聲明如何?
答案:
u
v接口名:ActionListener
接口中的方法:publicvoid actionPerformed(ActionEvent e)
2、閱讀下面的程序,回答問(wèn)題(u問(wèn)3分,v問(wèn)3分,共6分)。
import java.util.*;
publicclass T {
public static void main(Stringargs[]) {
Set set = new TreeSet();
set.add(new Integer(10));
set.add(new Integer(5));
set.add(new Integer(15));
set.add(new Integer(5));
set.add(new Integer(10));
System.out.println("size =" + set.size());
Iterator it=set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
u程序運行后輸出的結果如何?
v說(shuō)明java中的集合(Set接口)和映射(Map接口)的主要區別。
答案:
u
size = 3
5 10 15
vSet接口是不包含重復元素的集合;Map接口將鍵映射到值,鍵可以重復,但每個(gè)鍵最多只能映射一個(gè)值。
3、閱讀下面的程序,并回答問(wèn)題(u問(wèn)3分,v問(wèn)3分,共6分)。
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
BufferedReader buf=new BufferedReader(
newInputStreamReader(System.in));
while(true) {
String str=buf.readLine();
if(str.equals("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
編譯運行上面的程序:
u從鍵盤(pán)輸入5,回車(chē)后輸出的結果如何?
v從鍵盤(pán)輸入quit,回車(chē)后程序執行情況如何?
答案:
u25
v終止應用程序的運行。
《JAVA程序設計》期末考試試題 2
1. 下面哪些是Thread類(lèi)的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System類(lèi)的方法,如System.exit(0)。
2. 下面關(guān)于java.lang.Exception類(lèi)的說(shuō)法正確的是()
A 繼承自Throwable B Serialable CD 不記得,反正不正確
答案:A
解析:Java異常的基類(lèi)為java.lang.Throwable,java.lang.Error和java.lang.Exception繼承 Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。
擴展:錯誤和異常的區別(Error vs Exception)
1) java.lang.Error: Throwable的子類(lèi),用于標記嚴重錯誤。合理的應用程序不應該去try/catch這種錯誤。絕大多數的錯誤都是非正常的,就根本不該出現的。
java.lang.Exception: Throwable的子類(lèi),用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運行條件,而非嚴重錯誤,并且鼓勵用戶(hù)程序去catch它。
2) Error和RuntimeException 及其子類(lèi)都是未檢查的異常(unchecked exceptions),而所有其他的Exception類(lèi)都是檢查了的異常(checked exceptions).
checked exceptions: 通常是從一個(gè)可以恢復的程序中拋出來(lái)的,并且最好能夠從這種異常中使用程序恢復。比如FileNotFoundException, ParseException等。檢查了的異常發(fā)生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過(guò)。
unchecked exceptions: 通常是如果一切正常的話(huà)本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運行期,具有不確定性,主要是由于程序的邏輯問(wèn)題所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。從語(yǔ)言本身的角度講,程序不該去catch這類(lèi)異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復,但是并不鼓勵終端程序員這么做,因為完全沒(méi)要必要。因為這類(lèi)錯誤本身就是bug,應該被修復,出現此類(lèi)錯誤時(shí)程序就應該立即停止執行。 因此,面對Errors和unchecked exceptions應該讓程序自動(dòng)終止執行,程序員不該做諸如try/catch這樣的事情,而是應該查明原因,修改代碼邏輯。
RuntimeException:RuntimeException體系包括錯誤的類(lèi)型轉換、數組越界訪(fǎng)問(wèn)和試圖訪(fǎng)問(wèn)空指針等等。
處理RuntimeException的原則是:如果出現 RuntimeException,那么一定是程序員的錯誤。例如,可以通過(guò)檢查數組下標和數組邊界來(lái)避免數組越界訪(fǎng)問(wèn)異常。其他(IOException等等)checked異常一般是外部錯誤,例如試圖從文件尾后讀取數據等,這并不是程序本身的錯誤,而是在應用環(huán)境中出現的外部錯誤。
3. 下面程序的運行結果是()
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
答案:false
解析:因為str2中的llo是新申請的內存塊,而==判斷的是對象的地址而非值,所以不一樣。如果是String str2 = str1,那么就是true了。
4. 下列說(shuō)法正確的有()
A. class中的constructor不可省略
B. constructor必須與class同名,但方法不能與class同名
C. constructor在一個(gè)對象被new時(shí)執行。
D.一個(gè)class只能定義一個(gè)constructor
答案:C
解析:這里可能會(huì )有誤區,其實(shí)普通的類(lèi)方法是可以和類(lèi)名同名的,和構造方法唯一的區分就是,構造方法沒(méi)有返回值。
5. 具體選項不記得,但用到的知識如下:
String []a = new String[10];
則:a[0]~a[9] = null
a.length = 10
如果是int []a = new int[10];
則:a[0]~a[9] = 0
a.length = 10
6. 下面程序的運行結果:()
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
#FormatImgID_0#
A pingpong B pongping C pingpong和pongping都有可能 D 都不輸出
答案:B
解析:這里考的是Thread類(lèi)中start()和run()方法的區別了。start()用來(lái)啟動(dòng)一個(gè)線(xiàn)程,當調用start方法后,系統才會(huì )開(kāi)啟一個(gè)新的線(xiàn)程,進(jìn)而調用run()方法來(lái)執行任務(wù),而單獨的調用run()就跟調用普通方法是一樣的,已經(jīng)失去線(xiàn)程的特性了。因此在啟動(dòng)一個(gè)線(xiàn)程的時(shí)候一定要使用start()而不是run()。
7. 下列屬于關(guān)系型數據庫的是()
A. Oracle B MySql C IMS D MongoDB
答案:AB
解答:IMS(Information Management System )數據庫是IBM公司開(kāi)發(fā)的兩種數據庫類(lèi)型之一;
一種是關(guān)系數據庫,典型代表產(chǎn)品:DB2;
另一種則是層次數據庫,代表產(chǎn)品:IMS層次數據庫。
非關(guān)系型數據庫有MongoDB、memcachedb、Redis等。
8. GC線(xiàn)程是否為守護線(xiàn)程?()
答案:是
解析:線(xiàn)程分為守護線(xiàn)程和非守護線(xiàn)程(即用戶(hù)線(xiàn)程)。
只要當前JVM實(shí)例中尚存在任何一個(gè)非守護線(xiàn)程沒(méi)有結束,守護線(xiàn)程就全部工作;只有當最后一個(gè)非守護線(xiàn)程結束時(shí),守護線(xiàn)程隨著(zhù)JVM一同結束工作。
守護線(xiàn)程最典型的應用就是 GC (垃圾回收器)
9. volatile關(guān)鍵字是否能保證線(xiàn)程安全?()
答案:不能
解析:volatile關(guān)鍵字用在多線(xiàn)程同步中,可保證讀取的可見(jiàn)性,JVM只是保證從主內存加載到線(xiàn)程工作內存的值是最新的讀取值,而非cache中。但多個(gè)線(xiàn)程對
volatile的寫(xiě)操作,無(wú)法保證線(xiàn)程安全。例如假如線(xiàn)程1,線(xiàn)程2 在進(jìn)行read,load 操作中,發(fā)現主內存中count的值都是5,那么都會(huì )加載這個(gè)最新的值,在線(xiàn)程1堆count進(jìn)行修改之后,會(huì )write到主內存中,主內存中的count變量就會(huì )變?yōu)?;線(xiàn)程2由于已經(jīng)進(jìn)行read,load操作,在進(jìn)行運算之后,也會(huì )更新主內存count的變量值為6;導致兩個(gè)線(xiàn)程及時(shí)用volatile關(guān)鍵字修改之后,還是會(huì )存在并發(fā)的情況。
10. 下列說(shuō)法正確的是()
A LinkedList繼承自L(fǎng)ist
B AbstractSet繼承自Set
C HashSet繼承自AbstractSet
D WeakMap繼承自HashMap
答案:AC
解析:下面是一張下載的Java中的集合類(lèi)型的繼承關(guān)系圖,一目了然。
#FormatImgID_1#
11. 存在使i + 1 < i的數嗎()
答案:存在
解析:如果i為int型,那么當i為int能表示的最大整數時(shí),i+1就溢出變成負數了,此時(shí)不就
擴展:存在使i > j || i <= j不成立的數嗎()
答案:存在
解析:比如Double.NaN或Float.NaN,感謝@BuilderQiu網(wǎng)友指出。
12. 0.6332的數據類(lèi)型是()
A float B double C Float D Double
答案:B
解析:默認為double型,如果為float型需要加上f顯示說(shuō)明,即0.6332f
13. 下面哪個(gè)流類(lèi)屬于面向字符的輸入流( )
A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader
答案:D
解析:Java的IO操作中有面向字節(Byte)和面向字符(Character)兩種方式。
面向字節的操作為以8位為單位對二進(jìn)制的數據進(jìn)行操作,對數據不進(jìn)行轉換,這些類(lèi)都是InputStream和OutputStream的子類(lèi)。
面向字符的操作為以字符為單位對數據進(jìn)行操作,在讀的時(shí)候將二進(jìn)制數據轉為字符,在寫(xiě)的時(shí)候將字符轉為二進(jìn)制數據,這些類(lèi)都是Reader和Writer的子類(lèi)。
總結:以InputStream(輸入)/OutputStream(輸出)為后綴的是字節流;
以Reader(輸入)/Writer(輸出)為后綴的是字符流。
14. Java接口的修飾符可以為()
A private B protected C final D abstract
答案:CD
解析:接口很重要,為了說(shuō)明情況,這里稍微啰嗦點(diǎn):
(1)接口用于描述系統對外提供的所有服務(wù),因此接口中的成員常量和方法都必須是公開(kāi)(public)類(lèi)型的,確保外部使用者能訪(fǎng)問(wèn)它們;
(2)接口僅僅描述系統能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;
(3)接口不涉及和任何具體實(shí)例相關(guān)的細節,因此接口沒(méi)有構造方法,不能被實(shí)例化,沒(méi)有實(shí)例變量,只有靜態(tài)(static)變量;
(4)接口的中的變量是所有實(shí)現類(lèi)共有的,既然共有,肯定是不變的東西,因為變化的東西也不能夠算共有。所以變量是不可變(final)類(lèi)型,也就是常量了。
(5) 接口中不可以定義變量?如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無(wú)法通過(guò)行為來(lái)修改屬性。有的人會(huì )說(shuō)了,沒(méi)有關(guān)系,可以通過(guò) 實(shí)現接口的'對象的行為來(lái)修改接口中的屬性。這當然沒(méi)有問(wèn)題,但是考慮這樣的情況。如果接口 A 中有一個(gè)public 訪(fǎng)問(wèn)權限的靜態(tài)變量 a。按照 Java 的語(yǔ)義,我們可以不通過(guò)實(shí)現接口的對象來(lái)訪(fǎng)問(wèn)變量 a,通過(guò) A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類(lèi)中是可以這樣做的,那么實(shí)現接口 A 的所有對象也都會(huì )自動(dòng)擁有這一改變后的 a 的值了,也就是說(shuō)一個(gè)地方改變了 a,所有這些對象中 a 的值也都跟著(zhù)變了。這和抽象類(lèi)有什么區別呢,怎么體現接口更高的抽象級別呢,怎么體現接口提供的統一的協(xié)議呢,那還要接口這種抽象來(lái)做什么呢?所以接口中 不能出現變量,如果有變量,就和接口提供的統一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實(shí)現接口的對象提供一個(gè)統 一的屬性。
通俗的講,你認為是要變化的東西,就放在你自己的實(shí)現中,不能放在接口中去,接口只是對一類(lèi)事物的屬性和行為更高層次的抽象。對修改關(guān)閉,對擴展(不同的實(shí)現 implements)開(kāi)放,接口是對開(kāi)閉原則的一種體現。
所以:
接口的方法默認是public abstract;
接口中不可以定義變量即只能定義常量(加上final修飾就會(huì )變成常量)。所以接口的屬性默認是public static final 常量,且必須賦初值。
注意:final和abstract不能同時(shí)出現。
15. 不通過(guò)構造函數也能創(chuàng )建對象嗎()
A 是 B 否
答案:A
解析:Java創(chuàng )建對象的幾種方式(重要):
(1) 用new語(yǔ)句創(chuàng )建對象,這是最常見(jiàn)的創(chuàng )建對象的方法。
(2) 運用反射手段,調用java.lang.Class或者java.lang.reflect.Constructor類(lèi)的newInstance()實(shí)例方法。
(3) 調用對象的clone()方法。
(4) 運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。
(1)和(2)都會(huì )明確的顯式的調用構造函數 ;(3)是在內存上對已有對象的影印,所以不會(huì )調用構造函數 ;(4)是從文件中還原類(lèi)的對象,也不會(huì )調用構造函數。
坐完筆試后,很多人都希望能提前預知面試題目,最好的方法就是整理一些經(jīng)典的面試題,java面試的專(zhuān)業(yè)性比較強,如果你的基礎不夠扎實(shí),那么最好找些經(jīng)典的java面試題及答案分析,提前參透一下吧!
java面試題1、說(shuō)說(shuō)HashMap和Hashtable的差別
答案分析:
都屬于Map接口的類(lèi),實(shí)現了將惟一鍵映射到特定的值上。
HashMap類(lèi)沒(méi)有分類(lèi)或排序。他允許一個(gè)null鍵和多個(gè)null值。
Hashtable類(lèi)似于HashMap,不過(guò)不允許null鍵和null值。他也比HashMap慢,因為他是同步的。
java面試題2、Anonymous Inner Class (匿名內部類(lèi))是否能extends(繼承)其他類(lèi),是否implements(實(shí)現)interface(接口)?
答案分析:
匿名的內部類(lèi)是沒(méi)有名字的內部類(lèi)。不能extends(繼承)其他類(lèi),但一個(gè)內部類(lèi)能作為一個(gè)接口,由另一個(gè)內部類(lèi)實(shí)現。
java面試題3、STRING與STRINGBUFFER的區別是什么?
答案分析:
STRING的長(cháng)度是不可變的,STRINGBUFFER的長(cháng)度是可變的。如果你對字符串中的內容經(jīng)常進(jìn)行操作,特別是內容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
java面試題4、什么時(shí)候用assert
答案分析:
斷言是個(gè)包含布爾表達式的語(yǔ)句,在執行這個(gè)語(yǔ)句時(shí)假定該表達式為true。如果表達式計算為false,那么系統會(huì )報告一個(gè)AssertionError,他用于調試目的。
java面試題5、Set里的元素是不能重復的,那么用什么方法來(lái)區分重復和否呢?是用==還是equals()?他們有何差別?
答案分析:
Set里的元素是不能重復的,那么用iterator()方法來(lái)區分重復和否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類(lèi)中被覆蓋,為的是當兩個(gè)分離的對象的內容和類(lèi)型相配的話(huà),返回真值。
java面試題6、List, Set, Map是否繼承自Collection接口?
答案分析:
List,Set是
Map不是
《JAVA程序設計》期末考試試題 3
JAVA筆試基礎題目
1、string 是最基本的數據類(lèi)型嗎?
2、int 和 integer 有什么區別
3、string 和 stringbuffer 的區別
4、運行時(shí)異常與一般異常有何異同?
5、說(shuō)出 servlet 的生命周期,并說(shuō)出 servlet 和 cgi 的區別。
6、說(shuō)出 arraylist,vector, linkedlist 的存儲性能和特性
7、ejb 是基于哪些技術(shù)實(shí)現的?并說(shuō)出 sessionbean 和 entitybean 的區別,statefulbean 和statelessbean 的區別。
8、collection 和 collections 的區別。
9、&和&&的區別。
江蘇電信縣級筆試題目
江蘇電信縣級筆試考的內容為:經(jīng)濟學(xué),財務(wù),會(huì )計,營(yíng)銷(xiāo),管理30道單選,20道多選,10道判斷(每題1分)
大題(每題10分):
1授權的益處和流程
2客戶(hù)購買(mǎi)的動(dòng)機,聯(lián)系3g具體說(shuō)說(shuō)
3一位客戶(hù)出差,孩子沒(méi)人接送,你怎么辦?如果同意,是否值得推廣?
4根據材料談?wù)劷K電信如何實(shí)施聯(lián)合戰略
2015年建行筆試行測題
請參加過(guò)建行筆試的各位朋友們提供下行測題型,謝謝
行測題型:
第一部分:常識判斷
第二部分:言語(yǔ)理解與表達(給一段話(huà)概括意思、選詞填空)
第三部分:判斷推理(圖形推理、定義判斷、類(lèi)比推理、邏輯判斷)
第四部分:數量關(guān)系(數字推理、數學(xué)運算)
第五部分:資料分析
盡管知道建行筆試都有行測題,但希望各位朋友們能提供下具體的題型,不勝感激!
波士頓咨詢(xún)類(lèi)筆試題目
(一)專(zhuān)業(yè)與作文
戰略、人力、財務(wù)、營(yíng)銷(xiāo)模型名稱(chēng)各五個(gè),并深度描述其中兩個(gè)的運用
(二)、作文(500~800 字)
1、我看管理咨詢(xún)業(yè)
2、四大商業(yè)銀行改革之我見(jiàn)
3、中國民企成長(cháng)之煩惱
4、我看商業(yè)新業(yè)態(tài)
5、我看中國房地產(chǎn)
6、我看中國旅游業(yè)
7、農業(yè)改革之我見(jiàn)
(三)問(wèn)答題
1、公司人力資源管理很亂,應采用什么方法?
2、上海一年消費多少啤酒?
3、如果原油開(kāi)采成本降為0,世界會(huì )產(chǎn)生什么影響?
2015年拜耳校招筆試真題
1.1和0之間加上什么符號才可以使得到的數比0大又比1小呢?你知道嗎?
2.戴維手里拿著(zhù)火柴走到廚房,這有一個(gè)煤氣灶和一個(gè)酒精燈,他如果想燒開(kāi)水,請他應該先點(diǎn)燃什么?
3.有三個(gè)不同的信箱,今有4封不同的信欲投其中,共有多少種不同的投法?
4.連續4次拋擲一枚硬幣,恰出現兩次是正面的概率和最后兩次出現是正面的概率。
5.一個(gè)口袋內裝有除顏色外其他都相同的6個(gè)白球和4個(gè)紅球,從中任意摸出2個(gè),a、2個(gè)都是白球的概率;b、2個(gè)都是紅球的概率;c、一個(gè)白球,一個(gè)紅球的概率。
6.你有兩個(gè)罐子,50個(gè)紅色彈球,50個(gè)藍色彈球,隨機選出一個(gè)罐子,隨機選取出一個(gè)彈球放入罐子,怎么給紅色彈球最大的選中機會(huì )?在你的計劃中,得到紅球的準確幾率是多少?
7.在中國文化中中庸思想一直占據著(zhù)很重要的地位與作用,談?wù)勀愕睦斫?
8.你知道“世紀之藥”嗎?
9.談?wù)勱P(guān)于公司的幾件事?
推理題
1、在房里有三盞燈,房外有三個(gè)開(kāi)關(guān),在房外看不見(jiàn)房?jì)鹊?情況,你只能進(jìn)門(mén)一次,你用什么方法來(lái)區分那個(gè)開(kāi)關(guān)控制那一盞燈?
2、有兩根不均勻分布的香,每根香燒完的時(shí)間是一個(gè)小時(shí),你能用什么方法來(lái)確定一段45分鐘的時(shí)間?
3、一個(gè)經(jīng)理有三個(gè)女兒,三個(gè)女兒的年齡加起來(lái)等于13,三個(gè)女兒的年齡乘起來(lái)等于經(jīng)理自己的年齡,有一個(gè)下屬已知道經(jīng)理的年齡,但仍不能確定經(jīng)理三個(gè)女兒的年齡,這時(shí)經(jīng)理說(shuō)只有一個(gè)女兒的頭發(fā)是黑的,然后這個(gè)下屬就知道了經(jīng)理三個(gè)女兒的年齡。請問(wèn)三個(gè)女兒的年齡分別是多少?為什么?
4、在一張長(cháng)方形的桌面上放了n個(gè)一樣大小的圓形硬幣。這些硬幣中可能有一些不完全在桌面內,也可能有一些彼此重疊;當再多放一個(gè)硬幣而它的圓心在桌面內時(shí),新放的硬幣便必定與原先某些硬幣重疊。證明整個(gè)桌面可以用4n個(gè)硬幣完全覆蓋?
5、一個(gè)球、一把長(cháng)度大約是球的直徑2/3長(cháng)度的直尺.你怎樣測出球的半徑?方法很多,看看誰(shuí)的比較巧妙?
6、五個(gè)大小相同的一元人民幣硬幣。要求兩兩相接觸,應該怎么擺?
數字推理筆試題如何解答
1.熟記各種數字的運算關(guān)系。
如各種數字的平方、立方以及它們的鄰居,做到看到某個(gè)數字就有感覺(jué)。這是迅速準確解好數字推理題材的前提。常見(jiàn)的需記住的數字關(guān)系如下:
(1)平方關(guān)系:2-4,3-9,4-16,5-25,6-36,7-49,8-64,9-81,10-100,11-121,12-144
13-169,14-196,15-225,16-256,17-289,18-324,19-361,20-400
(2)立方關(guān)系:2-8,3-27,4-64,5-125,6-216,7-343,8-512,9-729,10-1000
(3)質(zhì)數關(guān)系:2,3,5,7,11,13,17,19,23,29......
(4)開(kāi)方關(guān)系:4-2,9-3,16-4......
以上四種,特別是前兩種關(guān)系,每次考試必有。所以,對這些平方立方后的數字,及這些數字的鄰居(如,64,63,65等)要有足夠的敏感。當看到這些數字時(shí),立刻就能想到平方立方的可能性。熟悉這些數字,對解題有很大的幫助,有時(shí)候,一個(gè)數字就能提供你一個(gè)正確的解題思路。如 216 ,125,64()如果上述關(guān)系爛熟于胸,一眼就可看出答案但一般考試題不會(huì )如此弱智,實(shí)際可能會(huì )這樣 215,124,63,() 或是217,124,65,()即是以它們的鄰居(加減1),這也不難,一般這種題5秒內搞定。
2.熟練掌握各種簡(jiǎn)單運算,一般加減乘除大家都會(huì ),值得注意的是帶根號的運算。根號運算掌握簡(jiǎn)單規律則可,也不難。
3.對中等難度以下的題,建議大家練習使用心算,可以節省不少時(shí)間,在考試時(shí)有很大效果。
注冊電氣工程師筆試試題
1、TN-C系統,設備對外殼短路,重復接地,求外殼電壓 (我的答案是110V)
A
B 98V
C 110V
D 66V
2、1題改成設備不接地等電位聯(lián)結,(我的答案是66V)
A 110V
B 99V
C 66V
D 44V
3 外接設備B問(wèn)當設備A發(fā)生接地故障,設備B外殼的接觸電壓是多少?我的答案是110V
4 采用以下那種措施不能防止設備A故障設備B外殼帶電 我選A
A 設備B線(xiàn)路接RCD
B 設備B采用局部TT
C (設備B與A沒(méi)有PE線(xiàn)連接)
D 設備B采用隔離變壓器供電。
5 從變壓器開(kāi)始,TN-C-S系統改為T(mén)N-S,設備A和B處接觸電壓有何變化? 我選c
A 降低20%
B 降低
C 降低40%
D 沒(méi)變化
下列負荷中為二級負荷的是( )
A. 中斷供電將造成公共場(chǎng)所秩序混亂者
B. 二類(lèi)高層建筑的消防控制室、消防水泵、消防電梯和防煙排煙設施等
C. 室外消防用水量為20L/s的公共建筑的消防用電設備
《JAVA程序設計》期末考試試題 4
1、Collection 和 Collections的區別?
Collection是集合的根接口,其下有set及l(fā)ist
Collections是集合的算法。
2、Set里的元素是不能重復的,那么用什么方法來(lái)區分重復與否呢? 是用==還是equals()? 它們有何區別?用contains來(lái)區分是否有重復的對象。還是都不用?
在比較時(shí)先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數據類(lèi)型及引用
equals:主要是對象或對象引用的比較。
集合中是否包含某一個(gè)元素用contains來(lái)判斷。
3、List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒(méi)有繼承于Collection,其相對是獨立的。
屬于Collection類(lèi)型的對象,可以通過(guò)構造函數將一個(gè)集合構造成另外一個(gè)集合。
4、面向對象的特征有哪些方面?
1.抽象:
找共性,將共有的屬性、方法放到父類(lèi)中
2.繼承:
子類(lèi)繼承于父類(lèi),具有父類(lèi)的所有屬性與方法,可以重用,也可以覆蓋。
3.封裝:
一個(gè)類(lèi)包括多個(gè)屬性及方法。
4. 多態(tài)性:
5、String是最基本的數據類(lèi)型嗎?
基本數據類(lèi)型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類(lèi)是final類(lèi)型的,因此不可以繼承這個(gè)類(lèi)、不能修改這個(gè)類(lèi)。為了提高效率節省空間,我們應該用StringBuffer類(lèi)
6、int 和 Integer 有什么區別?
int 是基本數據類(lèi)型,不是對象,占一個(gè)內存空間,沒(méi)有方法。與其同類(lèi)的有long,char,doble
Integer是封裝類(lèi),具有方法及屬性。與其同類(lèi)的有Long,Double.Float
7、運行時(shí)異常與一般異常有何異同?
運行時(shí)異常:JVM拋出的異常,代碼中不用處理。
一般異常:用戶(hù)拋出的異常,如果用throws 聲明了,調用這個(gè)方法的代碼必須對其處理。
8、&和&&的區別?
&:與: 左邊若為false右邊還執行。
:短路與,左邊若為false右邊不執行。
9、final,finally,finalize的區別?
final 用于聲明屬性,方法和類(lèi),分別表示屬性不可變,方法不可覆蓋,類(lèi)不可繼承。
finally是異常處理語(yǔ)句結構的一部分,表示總是執行。
finalize是Object類(lèi)的一個(gè)方法,在垃圾收集器執行的時(shí)候會(huì )調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
10、heap和stack有什么區別?
棧是一種線(xiàn)形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素
11、Static Nested Class 和 Inner Class的不同?
Static Nested Class是被聲明為靜態(tài)(static)的內部類(lèi),它可以不依賴(lài)于外部類(lèi)實(shí)例被實(shí)例化。而通常的內部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。
12、GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問(wèn)題的地方,忘記或者錯誤的內存回收會(huì )導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動(dòng)監測對象是否超過(guò)作用域從而達到自動(dòng)回收內存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內存的顯示操作方法。
13、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?
short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換類(lèi)型)
short s1 = 1; s1 += 1;(可以正確編譯)
14、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
round方法返回與參數最接近的長(cháng)整數,參數加1/2后求其floor.
15、Java有沒(méi)有g(shù)oto?
java中的保留字,現在沒(méi)有在java中使用。
16、給出一個(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
一般異常:
IOException
FileNotFoundException
SqlException
17、數組有沒(méi)有length()這個(gè)方法? String有沒(méi)有length()這個(gè)方法?
數組沒(méi)有length()這個(gè)方法,有length這個(gè)屬性
String有length()這個(gè)方法.
18、構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。
19、是否可以繼承String類(lèi)?
String類(lèi)是final類(lèi)故不可以繼承。
20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數表達式。因此傳遞給 switch 和 case 語(yǔ)句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
21、try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì )不會(huì )被執行,什么時(shí)候被執行,在return前還是后?
會(huì )執行,在return前執行。
22、兩個(gè)對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話(huà)對不對?
不對,有相同的 hash code
這是java語(yǔ)言的定義:
1) 對象相等則hashCode一定相等;
2) hashCode相等對象未必相等
23、四種會(huì )話(huà)跟蹤技術(shù)?
Cookie
Session
Hidden
url 重寫(xiě)
24、寫(xiě)一個(gè)Singleton出來(lái)。
Singleton模式主要作用是保證在Java應用程序中,一個(gè)類(lèi)只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類(lèi),它的構造函數為private的,它有一個(gè)static的private的該類(lèi)變量,在類(lèi)初始化時(shí)實(shí)例話(huà),通過(guò)一個(gè)public的'getInstance方法獲取對它的引用,繼而調用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內部調用
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)行生成對象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
其他形式:
定義一個(gè)類(lèi),它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
25、Java中的異常處理機制的簡(jiǎn)單原理和應用。
原理: 有錯直接轉到異常處理部分或向上拋出。
應用:JAVA的異常就是錯誤,有兩種,一種是運行時(shí),編碼可以不用捕捉。一種是一般異常,如果throws聲明了,必須進(jìn)行處理。
26、描述一下JVM加載class文件的原理機制?
JVM中類(lèi)的裝載是由ClassLoader和它的子類(lèi)來(lái)實(shí)現的,Java ClassLoader 是一個(gè)重要的Java運行時(shí)系統組件。它負責在運行時(shí)查找和裝入類(lèi)文件的類(lèi)。
《JAVA程序設計》期末考試試題 5
1). applet的運行過(guò)程要經(jīng)歷4個(gè)步驟,其中哪個(gè)不是運行步驟?
A.瀏覽器加載指定URL中的HTML文件
B.瀏覽器顯示HTML文件
C.瀏覽器加載HTML文件中指定的applet類(lèi)
D.瀏覽器中的Java運行環(huán)境運行該applet
正確答案:B
2). 二維數組A[O,…,8][0,…,9],其每個(gè)元素占2字節。從首地址400開(kāi)始,按行優(yōu)先順序存儲,則元素A[8][5]的存儲地址為( )。
A.570
B.506
C.410
D.482
正確答案:A
答案解析:A[8][5]元素存儲的位置在第9行第6列,所以A[8][5]之前存儲的個(gè)數應為8×10+5 = 85,這些元素占用的空間為85×2字節=170字節,所以A[8][5]的存儲位置為400+170= 570。
3). 用于生產(chǎn)過(guò)程控制的系統,一般都是( ),它要求有對輸入數據及時(shí)做出響應的能力。
A.批處理系統
B.分時(shí)系統
C.實(shí)時(shí)系統
D.及時(shí)系統
正確答案:C
答案解析:用于生產(chǎn)過(guò)程控制的系統,一般都是實(shí)時(shí)系統,它要求有對輸入數據及時(shí)做出反應(響應)的能力。由于環(huán)境和控制對象以及工作任務(wù)的不同,控制系統對計算機系統的要求也會(huì )不同,一般會(huì )對計算機系統的'可靠性、封閉性、抗干擾性等指標提出要求。
4). Java語(yǔ)言的許多特點(diǎn)中,下列哪個(gè)特點(diǎn)是C++語(yǔ)言所不具備的?
A.高性能
B.跨平臺
C.面向對象
D.有類(lèi)庫
正確答案:B
5). 在匹配器(Matcher)類(lèi)中,用于尋找下一個(gè)模式匹配串的方法是( )。
A.static boolean matches()
B.boolean matcher .fi nd()
C.i nt matcher .start()
D.i nt matcher .end()
正確答案:A
答案解析:本題考查考生對Java 中的匹配器(Matcher)類(lèi)的理解。Matcher 類(lèi)用于將一個(gè)輸入字符串i nput 和模式串pattern 相比較。Boolean matcher .fi nd()方法用于尋找下一個(gè)模式匹配串;i nt matcher .start()方法用于返回匹配串的一個(gè)起始索引整數值;i nt matcher .end()方法用于返回匹配串的一個(gè)終止索引整數值。而用于輸入字符串與模式串比較的方法是static boolean matches(),選項A 正確。
6). J2EE和( )語(yǔ)言綁定。
A.C
B.C++
C.Java
D.匯編語(yǔ)言
正確答案:C
答案解析:J2EE的基礎是J2SE,以Java為平臺;而C語(yǔ)言用于ODBCAPI。由于兩者不兼容,SUN公司才提出了JDBC作為Java幾個(gè)平臺與麴據庫的標準連接。
7). 下列關(guān)于結構化設計原則的描述,錯誤的是
A.在塊和進(jìn)程的非正常出口處往往需要調用GOTO語(yǔ)句,使用GOTO語(yǔ)句使程序執行效率提高,但是濫用GOTO語(yǔ)句確實(shí)有害,應該避免使用GOTO語(yǔ)句。
B.程序設計時(shí)應該自頂向下,逐步求精。
C.程序設計時(shí),應該將復雜問(wèn)題進(jìn)行模塊化,就是將程序設計的總目標分解為若干個(gè)分目標,再進(jìn)一步分解為具體的小目標。
D.在進(jìn)行程序設計時(shí),應該盡量在一行書(shū)寫(xiě)一條語(yǔ)句,盡量做到效率第一,清晰第二。
正確答案:D
8). 如果線(xiàn)程調用下列方法,不能保證使該線(xiàn)程停止運行的是( )。
A.sleep()
B.stop()
C.yield()
D.wait()
正確答案:C
答案解析:線(xiàn)程的方法中sleep()方法的作用是使比當前線(xiàn)程優(yōu)先級低的線(xiàn)程運行。該方法使一個(gè)線(xiàn)程暫停運行一段固定時(shí)間。在休眠時(shí)間內,線(xiàn)程將不運行,低優(yōu)先級的線(xiàn)程將有機會(huì )運行。yield()方法為只讓給同等優(yōu)先級的線(xiàn)程運行。如果沒(méi)有同等優(yōu)先級的線(xiàn)程是可運行狀態(tài),yield()方法將什么也不做,即線(xiàn)程將繼續運行。stop()方法是強行終止線(xiàn)程。wait()方法是線(xiàn)程間交互的方法,是使一個(gè)線(xiàn)程停止運行,進(jìn)入等待狀態(tài)。
9). 開(kāi)發(fā)軟件時(shí)對提高開(kāi)發(fā)人員工作效率至關(guān)重要的是( )。
A.操作系統的資源管理功能
B.先進(jìn)的軟件開(kāi)發(fā)工具和環(huán)境
C.程序員的數量
D.計算機的并行處理能力
正確答案:B
答案解析:先進(jìn)的軟件開(kāi)發(fā)工具和環(huán)境對提高開(kāi)發(fā)人員工作效率是至關(guān)重要的。
10). 信息隱蔽的概念與下述哪一種概念直接相關(guān)( )。
A.軟件結構定義
B.模塊獨立性
C.模塊類(lèi)型劃分
D.模擬耦合度
正確答案:B
答案解析:信息隱蔽的概念與模塊獨立性這一概念直接相關(guān)。
《JAVA程序設計》期末考試試題 6
一.選擇題(30分)
1.下列哪些情況可以終止當前線(xiàn)程的運行?
a. 拋出一個(gè)異常時(shí)。
b. 當該線(xiàn)程調用sleep()方法時(shí)。
c. 當創(chuàng )建一個(gè)新線(xiàn)程時(shí)。(與當前進(jìn)程無(wú)關(guān))
d. 當一個(gè)優(yōu)先級高的線(xiàn)程進(jìn)入就緒狀態(tài)時(shí)。
2. 下面哪些為構造函數的特性定義
a. 在類(lèi)中聲明構造函數時(shí),名稱(chēng)應該與類(lèi)名相同
b. 具有重載特性,可以建立多個(gè)相同的名稱(chēng)
c. 使用類(lèi)建立新對象時(shí),會(huì )自動(dòng)執行構造函數,因此在構造函
數內設定變量的初值或進(jìn)行內存分配
d. 以上都是
3. 關(guān)于異常處理機制的敘述哪些正確
a. catch部分捕捉到異常情況時(shí),才會(huì )執行finally部分(無(wú)論是否有毛病,都執行)
b. 當try區段的程序發(fā)生異常時(shí),才會(huì )執行catch區段的程序
c. 不論程序是否發(fā)生錯誤及捕捉到異常情況,都會(huì )執行finally部分
d. 以上都是
4. 下列關(guān)于接口的敘述中哪些是正確的
a. 接口中的數據必須設定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以聲明引用
d. 以上都正確
5.Java語(yǔ)言中,方法的重寫(xiě)(Overriding)和重載(Overloading)是多態(tài)性的不同表現。下邊哪些說(shuō)法是對的?
A. 重寫(xiě)是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現。
B. 重寫(xiě)是一個(gè)類(lèi)中多態(tài)性的一種表現。
C. 重載是一個(gè)類(lèi)中多態(tài)性的一種表現。
D. 重載是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現。
6.在Struts應用的視圖中包含哪些組件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表業(yè)務(wù)邏輯或業(yè)務(wù)數據的JavaBean
F. EJB
G. 客戶(hù)化標簽
7. struts框架中,關(guān)于FormBean,下列哪些說(shuō)法是正確的:
A FormBean是一種數據bean,主要用來(lái)封裝表單提交上來(lái)的數據,并把這些數據傳遞給Action
B 在FormBean中可以對頁(yè)面上傳遞來(lái)的參數進(jìn)行一下格式上的驗證,這種驗證是一種客戶(hù)端的驗證
C 用戶(hù)每次提交表單,都會(huì )產(chǎn)生一個(gè)新的FormBean實(shí)例
D 動(dòng)態(tài)FormBean不能進(jìn)行驗證操作
8哪些方法可以進(jìn)行servlet的調試?()
A、使用打印語(yǔ)句; 在桌面計算機上運行服務(wù)器
B、使用Apache Log4J
C、使用IDE集成的調試器
D、直接查看HTML源碼 ????
E、返回錯誤頁(yè)面給客戶(hù)
9、下面關(guān)于servlet的功用說(shuō)法正確的有哪些?()
A、讀取客戶(hù)程序發(fā)送來(lái)的顯式數據
B、讀取客戶(hù)程序發(fā)送來(lái)的隱式數據
C、生成相應的結果
D、發(fā)送顯式的數據給客戶(hù)程序
E、發(fā)送隱式的數據給客戶(hù)程序
10、下面關(guān)于session的用法哪些是錯誤的?(
A、HttpSession session = new HttpSession();
request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、關(guān)于說(shuō)法正確的有哪些?()
A、URL的輸出在請求時(shí)入到JSP頁(yè)面中
B、不能含有影響整個(gè)頁(yè)面的JSP內容
C、被包含文件改變后不需更改使用它的頁(yè)面
D、被包含文件更改后,需要手動(dòng)地更新使用它的頁(yè)面(不需要手動(dòng)更新)
12、關(guān)于bean的說(shuō)法正確的有哪些?()
A、具備一個(gè)零參數(空)的構造函數(不是必須的)
B、不應該有公開(kāi)的實(shí)例變量(字段)
C、所有的屬性都必須通過(guò)getXxx和setXxx方法來(lái)訪(fǎng)問(wèn)
D、布爾型的屬性使用isXxx,而非getXxx
13、下面關(guān)于MVC說(shuō)法錯誤的有哪些?()
A、必須使用復雜的框架
B、使用內建的RequestDispatcher能夠很好地實(shí)現MVC
C、當其中一個(gè)組件發(fā)生變化的時(shí)候,MVC影響整個(gè)系統的設計
D、我們可以用MVC來(lái)處理單個(gè)請求
14、下面的標簽中哪些是JSTL標簽?()
15、struts框架,錯誤的是,下面那些說(shuō)法正確?
A Struts中無(wú)法完成上傳功能
B Struts框架基于MVC模式
C Struts框架容易引起流程復雜、結構不清晰等問(wèn)題(清晰)
D Struts可以有效地降低項目的類(lèi)文件數目
二、填空題( 5分)
1、調用函數MOD(123,10)返回值為_(kāi)__。
2、select round (123.67,1) from dual;這語(yǔ)句輸出值為_(kāi)_____。
3、創(chuàng )建一個(gè)臨時(shí)替代變量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為_(kāi)___。
5、調用函數INSTR(‘Here you are’,’er’)返回值為_(kāi)__。
三、判斷題(10分)
1、WHERE子句限制行記錄,也可以指定限制分組結果的條件。 ()
2、具有UNIQUE約束的列不能包含多個(gè)空值。 ()
3、DATE型數據中包含著(zhù)時(shí)間值。 ()
4、具有外鍵約束的列可以包含空值。 ()
5、如果在類(lèi)型為4)的列中輸入“hello”,則只能存儲hell。 ()
6、含有Group by子句的`查詢(xún),其結果是排好序的。 ()
7、定義游標時(shí),其中的select語(yǔ)句不能使用order by子句。(子查詢(xún)
不能用) ()
9、觸發(fā)器一定會(huì )被激發(fā)。 、過(guò)程可以有返回值。 ()
10、instead
of觸發(fā)器只是基于視圖的。
四、寫(xiě)出相應的SQL語(yǔ)句(括號內為列名)(10分)
1、查詢(xún)從事各工作(JOB)的員工人數。
2、查詢(xún)與員工SMITH在同一部門(mén)(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門(mén)。
3、查詢(xún)所有員工的姓名(ENAME),工資(SAL)和工資等級(GRADE)。
4、查詢(xún)獲得工資(SAL)最高的3個(gè)員工信息。
5、查詢(xún)所有員工的姓名(ENAME)及其主管姓名(ENAME)。
五、簡(jiǎn)答題(15分)
1. 在PL/SQL程序中,進(jìn)行用戶(hù)自定義異常處理的3個(gè)步驟是
什么?
2. 面向對象的特征有哪些方面?并簡(jiǎn)要介紹
3. List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)?
List 以特定次序來(lái)持有元素,可有重復元素。Set 無(wú)法擁有重復元素,內部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的區別?如何控制兩種框架中的單例模式?
5. 描述一下如何在struts1.0實(shí)現國際化,以?xún)蓢Z(yǔ)言(中文,英文)為例:
6.struts中怎么配置form-bean、action
7. Hibernate自帶的分頁(yè)機制是什么?如果不使用Hibernate自帶的分頁(yè),則采用什么方式分頁(yè)?
8. hibernate中一對多配置文件返回的是什么?
9.什么樣的數據適合存放到第二級緩存中?
10你一般用spring做什么?
11項目中如何體現Spring中的切面編程,具體說(shuō)明。
12 觸發(fā)觸發(fā)器的數據操作有哪些?
13 解釋視圖的含義以及使用視圖的好處。
14 簡(jiǎn)述ORACLE中5種約束及其作用。
15 ORACLE中過(guò)程和函數的異同點(diǎn)。
六、編程題(30分)
1、創(chuàng )建一個(gè)PL/SQL塊,根據用戶(hù)輸入的編號,在emp表中查詢(xún)出該編號的員工姓名、部門(mén)號及其主管編號,要有異常處理。
2、創(chuàng )建一個(gè)PL/SQL塊,根據用戶(hù)輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號、姓名和受雇如期,每條信息格式如下:(用游標實(shí)現)
編號 姓名 受雇日期
7751 JOHN 95-12-31
3、編寫(xiě)一個(gè)函數,用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱(chēng),則返回TRUE,否則返回FALSE。
4、編寫(xiě)一觸發(fā)器,在EMP表執行插入或修改前被激發(fā),此觸發(fā)器將對員工的工資(SAL)超過(guò)5000進(jìn)行報錯,不能插入或修改,不超
過(guò)5000的才將員工編號、工作及當時(shí)的日期(SYSDATE)插入UP_EMP表
(注:此表已建好,表結構為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的輸出結果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代碼輸出的結果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子線(xiàn)程循環(huán)10次,接著(zhù)主線(xiàn)程循環(huán)100,接著(zhù)又回到子線(xiàn)程循環(huán)10次,接著(zhù)再回到主線(xiàn)程又循環(huán)100,如此循環(huán)50次,請寫(xiě)出程序。
8去掉一個(gè)Vector集合中重復的元素
9有一個(gè)字符串,其中包含中文字符、英文字符和數字字符,請統計和打印出各個(gè)字符的個(gè)數
10. xxx公司的sql面試
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表寫(xiě)出查詢(xún):寫(xiě)出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個(gè)人信息。
(2) 基于上述EMPLOYEES表寫(xiě)出查詢(xún):查出部門(mén)平均工資大于1800
元的部門(mén)的所有員工,列出這些員工的全部個(gè)人信息。()
(3) 基于上述EMPLOYEES表寫(xiě)出查詢(xún):查出個(gè)人工資高于其所在部門(mén)平均工資的員工,列出這些員工的全部個(gè)人信息及該員工工資高出部門(mén)平均工資百分比。
參考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判斷
× ×√√√√×√×√
四寫(xiě)出相應的SQL語(yǔ)句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五簡(jiǎn)答
可以通過(guò)聲明和發(fā)布來(lái)截獲自定義異常。
一、在聲明部分為聲明自定義異常名。
二、在執行部分使用 RAISE 語(yǔ)句顯式地發(fā)布異常。
三、在相應的異常處理例程中引用已聲明的異常。
2(1).抽象:
抽象就是忽略一個(gè)主題中與當前目標無(wú)關(guān)的那些方面,以便更充分地注意與當前目標有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細節。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數據抽象。
(2).繼承:
繼承是一種聯(lián)結類(lèi)的層次模型,并且允許和鼓勵類(lèi)的重用,它提供了一種明確表述共性的方法。對象的一個(gè)新類(lèi)可以從現有的類(lèi)中派生,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承。新類(lèi)繼承了原始類(lèi)的特性, 新類(lèi)稱(chēng)為原始類(lèi)的派生類(lèi)(子類(lèi)),而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過(guò)程和數據包圍起來(lái),對數據的訪(fǎng)問(wèn)只能通過(guò)已定義的界面。面向對象計算始于這個(gè)基本概念,即現實(shí)世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過(guò)一個(gè)受保護的接口訪(fǎng)問(wèn)其他對象。
(4). 多態(tài)性:
多態(tài)性是指允許不同類(lèi)的對象對同一消息作出響應。多態(tài)性包括參數化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數同名問(wèn)題。
List 以特定次序來(lái)持有元素,可有重復元素。Set 無(wú)法擁有重復元素,內部排序。Map 保存key-value值,value可多值。
3List 以特定次序來(lái)持有元素,可有重復元素。Set 無(wú)法擁有重復元素,內部排序。Map 保存key-value值,value可多值
4a、Action類(lèi):
struts1.2要求Action類(lèi)繼承一個(gè)基類(lèi)。struts2.0 Action要求繼承ActionSupport基類(lèi) b、線(xiàn)程模式
struts1.2 Action是單例模式的并且必須是線(xiàn)程安全的,因為僅有一個(gè)Action的實(shí)例來(lái)處理所有的請求。
單例策略限制了Struts1.2 Action能做的事情,并且開(kāi)發(fā)時(shí)特別小心。Action資源必須是線(xiàn)程安全的或同步的。
struts2.0 Action為每一個(gè)請求產(chǎn)生一個(gè)實(shí)例,因此沒(méi)有線(xiàn)程安全問(wèn)題。
c、Servlet依賴(lài)
struts1.2 Action依賴(lài)于Servlet API,因為當一個(gè)Action被調用時(shí)HttpServletRequest和HttpServletResponse被傳遞給execut方法。
struts2.0 Action不依賴(lài)于容器,允許Action脫離容器單獨測試。如果需要,Struts2 Action仍
然可以訪(fǎng)問(wèn)初始的Request和Response。
但是,其他的元素減少或者消除了直接訪(fǎng)問(wèn)HttpServletRequest和HttpServletResponse的必要性。
d、可測性
測試struts1.2 Action的一個(gè)主要問(wèn)題是execute方法暴露了Servlet API(這使得測試要依賴(lài)于容器)。一個(gè)第三方擴展:struts TestCase
提供了一套struts1.2的模擬對象來(lái)進(jìn)行測試。
Struts2.0 Action可以通過(guò)初始化、設置屬性、調用方法來(lái)測試,“依賴(lài)注入”也使得測試更容易。
《JAVA程序設計》期末考試試題 7
第一階段題庫
基礎知識部分:
1. JDK是什么?JRE是什么?
a) 答:JDK:java開(kāi)發(fā)工具包。JRE:java運行時(shí)環(huán)境。
2. 什么是java的平臺無(wú)關(guān)性?
a) 答:Java源文件被編譯成字節碼的形式,無(wú)論在什么系統環(huán)境下,只要有java虛擬機就能運行這個(gè)字節碼文件。也就是一處編寫(xiě),處處運行。這就是java的跨平臺性。
3. 在一臺電腦上配置java環(huán)境,path起什么作用?如何配置?
a) 答:path的作用是在DOS環(huán)境下,能在任意位置使用JDK目錄中bin文件夾中的可執行程序,來(lái)編譯執行java程序。
b) 在環(huán)境變量中找到path變量,把bin文件夾的絕對路徑加上即可。
4. 什么樣的標識符是合法的?
a) 由字母、數字、_和$組成,長(cháng)度不限。其中字母可以是大寫(xiě)或小寫(xiě)的英文字母,數字為0到9。
b) 標識符的第一個(gè)字符不能是數字。
c) 標識符區分大小寫(xiě)。
d) 標識符不能包含空格。
5. Java有幾種基本數據類(lèi)型?
a) byte,short,int,long,char,boolean,float,double
6. 什么是隱式類(lèi)型轉換?什么是顯示類(lèi)型轉換?
a) 當將占位數少的類(lèi)型賦值給占位數多的類(lèi)型時(shí),Java自動(dòng)使用隱式類(lèi)型轉換。 b) 當把在級別高的變量的值賦給級別底變量時(shí),必須使用顯示類(lèi)型轉換運算。
7. &&和&區別||和|區別?
a) &&和||是短路與,短路或,當左邊的表達式能判斷當前結果,則不判斷右邊的表達式。
b) 而& 和|則將兩邊的表達式都運算完畢后,再算結果。
8. break,continue區別?
a) break結束最近的一個(gè)循環(huán),continue結束當次循環(huán),進(jìn)入下次循環(huán)。
9. 類(lèi)的命名規則是什么?
a) 如果類(lèi)名使用拉丁字母,那么名字的首寫(xiě)字母使用大寫(xiě)字母。
b) 類(lèi)名最好見(jiàn)名得意,當類(lèi)名由幾個(gè)單詞復合而成時(shí),每個(gè)單詞的首寫(xiě)字母使用大寫(xiě)。
10. 類(lèi)體的內容由兩部分構成,哪兩部分?
a) 一部分是變量的定義,用來(lái)刻畫(huà)屬性。
b) 另一部分是方法的定義,用來(lái)刻畫(huà)功能。
11. 解釋什么是類(lèi)的成員變量,局部變量,實(shí)例成員變量,類(lèi)成員變量?
a) 變量定義部分所定義的變量被稱(chēng)為類(lèi)的成員變量。
b) 在方法體中定義的變量和方法的參數被稱(chēng)為局部變量。
c) 成員變量又分為實(shí)例成員變量和類(lèi)成員變量(static修飾)。
12. 簡(jiǎn)述this關(guān)鍵字用法。
a) this關(guān)鍵字使用在實(shí)例方法中,代表調用該方法的當前對象。
13. 如何確定方法的返回類(lèi)型?
_____________________________________________________________________
a) 方法返回的值的類(lèi)型就是方法的返回類(lèi)型,如果無(wú)返回值,則返回類(lèi)型為void。
14. 返回值為void的方法,可否有return?
a) 可以。但return后沒(méi)有任何值。
15. 解釋什么是類(lèi)方法,什么是實(shí)例方法?
a) static修飾的方法是類(lèi)方法,無(wú)static修飾的方法是實(shí)例方法。
16. 簡(jiǎn)述方法和變量的命名規則?
a) 首寫(xiě)字母使用小寫(xiě),如果由多個(gè)單詞組成,從第2個(gè)單詞開(kāi)始首字母使用大寫(xiě)。
17. 什么是方法重載?
a) 方法重載是指一個(gè)類(lèi)中可以有多個(gè)方法具有相同的名字,但這些方法的參數必須不同,即或者是參數的個(gè)數不同,或者是參數的類(lèi)型不同。
18. 什么是構造方法?
a) 構造方法是一種特殊方法,它的名字必須與它所在的類(lèi)的名字完全相同,并且不返回任何數據類(lèi)型。
19. 如何創(chuàng )建一個(gè)對象?
a) 使用new 運算符和類(lèi)的構造方法為對象分配內存,如果類(lèi)中沒(méi)有構造方法,系統會(huì )調用默認的構造方法。
20. 系統什么情況下會(huì )為類(lèi)提供構造方法,提供什么樣的構造方法?
a) 如果類(lèi)中沒(méi)有構造方法,系統會(huì )提供一個(gè)默認的構造方法,默認的構造方法是無(wú)參的。
21. 對象如何調用自己的成員變量和方法?
a) 使用運算符” . ”來(lái)調用自己的成員變量和方法。
22. 為什么可以直接用類(lèi)名來(lái)訪(fǎng)問(wèn)類(lèi)成員變量和類(lèi)方法?
a) 因為當類(lèi)被加載到虛擬機的時(shí)候,類(lèi)成員變量就被分配內存,類(lèi)方法被分配入口地
址,所以不用創(chuàng )建對象,可以直接通過(guò)類(lèi)名調用。
23. 類(lèi)變量有什么特點(diǎn)?
a) 一個(gè)類(lèi)的所有對象共享同一個(gè)類(lèi)變量。
24. 類(lèi)方法有什么特點(diǎn)?
a) 類(lèi)方法只能調用類(lèi)變量和類(lèi)方法。(同一類(lèi)中)
25. package關(guān)鍵字有什么作用,使用中注意什么問(wèn)題?
a) package指定一個(gè)類(lèi)所在的包,該語(yǔ)句為源代碼第一行。
26. import關(guān)鍵字有什么作用?
a) 引入程序中所用到的類(lèi)。
27. 類(lèi)有幾種訪(fǎng)問(wèn)權限?變量和方法有幾種訪(fǎng)問(wèn)權限?分別是什么?
a) 類(lèi)有兩種訪(fǎng)問(wèn)權限:public,友好的。
b) 方法和變量的訪(fǎng)問(wèn)權限:public,protected,友好的,private。
28. 簡(jiǎn)述java的訪(fǎng)問(wèn)權限。
a) public:公有的,任何類(lèi)都可以訪(fǎng)問(wèn)。
b) protected:受保護的,同一個(gè)包的類(lèi)可以訪(fǎng)問(wèn)。不同包的子類(lèi)可以訪(fǎng)問(wèn)。 c) 友好的:同一個(gè)包的類(lèi)可以訪(fǎng)問(wèn)。
d) private:私有的,在同一個(gè)類(lèi)中才能訪(fǎng)問(wèn)。
29. 子類(lèi)能繼承父類(lèi)的哪些變量和方法?
a) 如果子類(lèi)和父類(lèi)在同一個(gè)包中,那么,子類(lèi)自然地繼承了其父類(lèi)中不是private 的成員變量作為自己的成員變量,并且也自然地繼承了父類(lèi)中不是private 的方法作為自己的方法。
_____________________________________________________________________
b) 如果子類(lèi)和父類(lèi)不在同一個(gè)包中,那么,子類(lèi)繼承了父類(lèi)的protected,public 成員變量做為子類(lèi)的成員變量,并且繼承了父類(lèi)的protected,public 方法為子類(lèi)的方法。
30. 子類(lèi)重寫(xiě)父類(lèi)的方法,可否降低訪(fǎng)問(wèn)權限?
a) 不可以降低。
31. final關(guān)鍵字可以用來(lái)修飾什么?分別起什么作用?
a) final可以修飾類(lèi),這樣的類(lèi)不能被繼承。
b) final可以修飾方法,這樣的方法不能被重寫(xiě)。
c) final可以修飾變量,這樣的變量的值不能被修改,是常量。
32. 簡(jiǎn)述super關(guān)鍵字作用?
a) 使用super調用父類(lèi)的構造方法。
b) 使用super操作被隱藏的成員變量和方法。
33. 簡(jiǎn)述什么是對象上轉型?
a) 假設,A 類(lèi)是B 類(lèi)的父類(lèi),當我們用子類(lèi)創(chuàng )建一個(gè)對象,并把這個(gè)對象的引用放到父類(lèi)的對象中時(shí),我們稱(chēng)這個(gè)父類(lèi)對象是子類(lèi)對象的上轉型對象。
34. 上轉型對象可以操作什么?不可以操作什么?
a) 上轉對象不能操作子類(lèi)新增的成員變量,失掉了這部分屬性,不能使用子類(lèi)新增的方法,失掉了一些功能 。
b) 上轉型對象可以操作子類(lèi)繼承或重寫(xiě)的成員變量,也可以使用子類(lèi)繼承的或重寫(xiě)的方法。
35. 什么是抽象類(lèi)?什么是抽象方法?有什么特點(diǎn)?
a) 用關(guān)鍵字abstract修飾類(lèi)稱(chēng)為抽象類(lèi),abstract類(lèi)不能用new運算創(chuàng )建對象,必須產(chǎn)生其子類(lèi),由子類(lèi)創(chuàng )建對象。
b) 用關(guān)鍵字abstract修飾方法稱(chēng)為抽象方法,abstract方法,只允許聲明,而不允許實(shí)現。
36. 一個(gè)類(lèi)聲明實(shí)現一個(gè)接口,那么這個(gè)類(lèi)需要做什么工作?
a) 實(shí)現接口里所有的方法,并且這些方法的訪(fǎng)問(wèn)權限必須是public。
37. 簡(jiǎn)述什么是數組?
a) 數組是相同類(lèi)型的數據按順序組成的一種復合數據類(lèi)型。通過(guò)數組名加數組下標,來(lái)使用數組中的數據。下標從 0 開(kāi)始排序。
38. 創(chuàng )建數組是否需要指定數組長(cháng)度,如何求數組長(cháng)度?
a) 必須指定數組長(cháng)度,數組調用 .length來(lái)獲取數組長(cháng)度。
39. char數組和byte數組如何轉化成字符串?如何求字符串長(cháng)度?
a) 利用String類(lèi)本身的構造方法,String (char a[]),String (byte a[]),””.length()。
以下方法均為字符串中方法
40. equals equalsIgnoreCase startsWith endsWith
a) 字符串比較 。
b) 忽略大小寫(xiě)比較。
c) 判斷是否以指定字符串開(kāi)頭、結尾。
41. regionMatches
a) 判斷一個(gè)字符串的`子串是否和另一個(gè)字符串的子串匹配。
42. compareTo compareToIgnoreCase indexOf
a) 按字典順序比較字符串。
b) 忽略大小寫(xiě)的按字典順序比較字符串。
c) 字符串檢索。
43. substring replace trim()
a) 字符串截取
b) 字符串替換
c) 去掉字符串前后空格。
44. 字符串如何轉化為int型,double型?
a) Integer.parseInt(“1”);
b) Double.parseDouble(“25.45”);
45. 簡(jiǎn)述StringTokenizer作用?
a) 按照指定的分隔符,將字符串解析成若干語(yǔ)言符號。
46. 如何判斷一個(gè)字符是不是數字,是不是大寫(xiě)?
a) Character.isDigit(‘a(chǎn)’)
b) Character.isUpperCase(‘U’)
47. 已知一個(gè)java.util.Date對象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss
a) SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formate.format(new Date()));
48. 如何生成一個(gè)0-100的隨即整數?
a) (int)(Math.random()*100)
49. 簡(jiǎn)述java異常處理的機制?
a) 當所調用的方法出現異常時(shí),調用者可以捕獲異常使之得到處理;也可以回避異常。
50. 簡(jiǎn)述如下關(guān)鍵字用途try、catch、throw、throws、finally
a) try:保護代碼,如果try中某行代碼出現異常,則try中代碼不再繼續執行。 b) catch:捕獲異常,當try中出現異常,則catch負責捕獲異常,并處理。
c) throw:拋出異常。
d) throws:聲明異常。
e) finally:無(wú)論try中是否出現異常,finally一定執行。
51. LinkedList和ArrayList區別?
a) LinkedList底層通過(guò)鏈式存儲結構實(shí)現。
b) ArrayList底層通過(guò)數組實(shí)現。
52. 什么是I/O流,有什么作用?
a) 指數據輸入輸出的流, I/O 流提供一條通道程序,可以使用這條通道把源中的字節序列送給目的地。
53. 如何查看一個(gè)文件的大小,絕對路徑,是否可讀?
a) File file = new File(“e://a.txt”);
b) file.length();
c) file.getAbsolutePath();
d) file.canRead();
54. 已知如下代碼
File f = new File("myfile.dat");
FileInputStream istream = new FileInputStream(f); 如何從流中讀取數據。
a) byte[] buff = new byte[100];
b) istream.read(buff);
55. 實(shí)現多線(xiàn)程的兩種方法?
a) 從Java.lang.Thread類(lèi)派生一個(gè)新的線(xiàn)程類(lèi),重寫(xiě)它的run()方法。
b) 實(shí)現Runnable接口,重寫(xiě)Runable接口中的run()方法。
56. 簡(jiǎn)述一個(gè)線(xiàn)程的生命周期?
a) 新建---運行---中斷---死亡
57. 如何讓一個(gè)準備就緒的線(xiàn)程運行?
a) 調用線(xiàn)程的start方法讓一個(gè)處于準備就緒的狀態(tài)的線(xiàn)程運行。
58. 如何讓一個(gè)線(xiàn)程休眠1000毫秒?
a) 調用線(xiàn)程的sleep方法,參數為1000。
59. 如何使線(xiàn)程同步?
a) 使用同步方法
synchronized void methodA() { }
b) 使用同步塊
synchronized(object) {
//要同步的語(yǔ)句
}
60. 什么是GC?為什么有GC?
a) GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會(huì )自動(dòng)進(jìn)行管理。
61. 構造方法能否被重寫(xiě)?為什么?
a) 不能,因為構造方法不能被繼承,所以不能重寫(xiě)。
62. 是否可以繼承String類(lèi),為什么?
a) 因為String類(lèi)是final類(lèi),final修飾的類(lèi)不能被繼承。
63. java關(guān)鍵字區分大小寫(xiě)嗎?
a) java關(guān)鍵字一律小寫(xiě)。所以無(wú)所謂區分大小寫(xiě),大寫(xiě)的不是關(guān)鍵字。
64. java采用什么字符集?該字符集有多少字符
a) Java 使用 unicode 字符集,所以常量共有 65535 個(gè)
65. 列舉算術(shù)運算符?
a) +,-,*,/,%
66. 算術(shù)混合運算結果精度如何確定?
a) Java按照運算符兩邊的操作元的最高精度保留結果的精度。
67. &是位運算符,與運算的規則是什么?
a) 全1則1,否則為0
68. | 是位運算符,或運算的規則是什么?
a) 全0則0,否則是1
69. ^是位運算符,異或運算的規則是什么?
a) 相同0,不同1
70. ~是位運算符,非運算的規則是什么?
a) 遇1則0,遇0則1
71. if語(yǔ)句后邊有個(gè)括號,該括號里表達式為什么類(lèi)型?
a) boolean類(lèi)型
72. switch語(yǔ)句后括號里的表達式是什么類(lèi)型?case后類(lèi)型如何確定?
a) char,int,byte,short,枚舉類(lèi)型。
b) case后面是一個(gè)常量,該常量類(lèi)型由switch后括號內表達式來(lái)確定。
73. switch語(yǔ)句后,default關(guān)鍵字起什么作用?break起什么作用?
a) default:當用戶(hù)指定的表達式與任何case都不匹配的時(shí)候,執行了 default后的語(yǔ)句。 b) break:退出當前case。
74. for循環(huán)后括號里三個(gè)表達式分別起什么作用?
a) 1:循環(huán)初始化的時(shí)候執行,只執行一次。
b) 2:循環(huán)成立的條件。
c) 3:循環(huán)每次執行都會(huì )調用該表達式,一般做變量自增。
75. while 和do。while區別?
a) while先判斷條件,再執行。
b) do……while先執行,再判斷條件
c) do……while至少執行一次。
76. 什么是編譯執行的語(yǔ)言?什么是解釋執行的語(yǔ)言?
a) 編譯方式:Compilation:針對當前的機器處理器芯片,將源程序全部翻譯成機器指令,稱(chēng)做目標程序,再將目標程序交給計算機執行.
b) 解釋方式:Interpretation:這種方式不產(chǎn)生整個(gè)的目標程序,而是根據當前的機器處理器芯片,邊翻譯邊執行,翻譯一句執行一句.
77. 簡(jiǎn)述一個(gè)java程序執行的過(guò)程?
a) 首先編寫(xiě)java源文件(擴展名為.java的文本文檔)。
b) 用javac命令把源文件編譯成字節碼文件(.class文件)
c) 用java命令執行字節碼文件。
78. 成員變量的作用范圍?局部變量的作用范圍?
a) 成員變量在整個(gè)類(lèi)內都有效
b) 局部變量只在定義它的類(lèi)內有效。
79. 構造方法有什么作用?
a) 在創(chuàng )建對象的時(shí)候,java虛擬機會(huì )調用類(lèi)的構造方法來(lái)創(chuàng )建對象。一般對象的初始化工作可以放在構造方法里。
80. java三大特性?
a) 封裝,繼承,多態(tài)。
數據庫部分
81. 簡(jiǎn)述什么是關(guān)系型數據庫?
a) 所謂關(guān)系型數據庫,是指采用了關(guān)系模型來(lái)組織數據的數據庫。關(guān)系模型指的就是二維表格模型,而一個(gè)關(guān)系型數據庫就是由二維表及其之間的聯(lián)系組成的一個(gè)數據組織。
b) 關(guān)系型數據庫是由許多數據表(Table)所組成,表又是由許多記錄(Row 或Record)所組成,而紀錄又是由許多的字段(Column 或Filed)所組成。
82. 什么是主鍵?
a) 設置一個(gè)表中的某個(gè)字段為主鍵,這個(gè)字段能夠唯一的確定該表中某條記錄,這樣的字段我們稱(chēng)為主鍵。
83. 什么是外鍵?
a) 外部鍵約束用于強制參照完整性,提供單個(gè)字段或者多個(gè)字段的參照完整性。
84. 主外鍵關(guān)聯(lián)的作用?
a) 保證數據完整性。
b) 消除冗余數據。
85. SQL語(yǔ)句中文含義是?
a) Structured Query Language,結構化查詢(xún)語(yǔ)言。
86. 什么是數據庫?
a) 數據庫是長(cháng)期存儲在計算機內的、有組織的、可共享的數據集合。
87. 什么數據庫管理系統?
a) DBMS就是實(shí)現把用戶(hù)意義下的抽象的邏輯數據轉換成計算機中的具體的物理數據的處理軟件。
JDBC部分
88. JDBC含義?
a) JDBC(Java DataBase Connectivity) java數據庫連接,是java連接數據庫的AIP。
89. JDBC連接數據庫步驟?
a) 加載驅動(dòng)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
b) 建立連接
Connection conn = DriverManager.getConnection(dbURL,username,password);
c) 創(chuàng )建語(yǔ)句對象
Statement stmt = conn.createStatement()
90. 如何使用sql語(yǔ)句操作數據庫?
a) 得到語(yǔ)句對象之后,使用語(yǔ)句對象調用executeUpdate(sql)方法和executeQuery(sql)
方法分別執行更新語(yǔ)句和查詢(xún)語(yǔ)句。
91. executeUpdate(sql)方法的返回值表示什么含義?
a) 表示該更新方法影響了幾行記錄。
92. executeQuery(sql)方法的返回值如何使用?
a) 該方法的返回值為一個(gè)結果集,即ResultSet類(lèi)型的對象。
b) ResultSet類(lèi)型的對象有一個(gè)游標,指向當前操作的行。該游標默認指向第一行記錄
之前,如果我們想操作結果集,需要先將游標下移,我們調用ResultSet接口的next()方法將游標下移,如果結果集里有數據,則游標下移,指向第一行,如果結果集里沒(méi)有記錄,則下移失敗。當游標指向具體的某一行時(shí),我們就可以從結果集里邊獲取值了。獲取的值為當前游標指向行的值。
93. 如何獲取游標所指的行的數據?
a) 當游標指向某一行時(shí),我們可以使用ResultSet接口的getString(列名)方法來(lái)獲取某一列的值,列名作為方法的參數。
94. 創(chuàng )建語(yǔ)句對象時(shí),createStatement(參數1,參數2),兩個(gè)參數分別表示什么含義?
a) 第一個(gè)參數指定該語(yǔ)句對象生成的結果集是否可滾動(dòng)以及是否敏感,
b) 第二個(gè)參數指定該語(yǔ)句對象生成的結果集是否可以更新數據庫。
《JAVA程序設計》期末考試試題 8
1. Java中sleep和wait的區別
、 這兩個(gè)方法來(lái)自不同的類(lèi)分別是,sleep來(lái)自Thread類(lèi),和wait來(lái)自Object類(lèi)。
sleep是Thread的靜態(tài)類(lèi)方法,誰(shuí)調用的誰(shuí)去睡覺(jué),即使在a線(xiàn)程里調用b的sleep方法,實(shí)際上還是a去睡覺(jué),要讓b線(xiàn)程睡覺(jué)要在b的代碼中調用sleep。
、 鎖: 最主要是sleep方法沒(méi)有釋放鎖,而wait方法釋放了鎖,使得其他線(xiàn)程可以使用同步控制塊或者方法。
sleep不出讓系統資源;wait是進(jìn)入線(xiàn)程等待池等待,出讓系統資源,其他線(xiàn)程可以占用CPU。一般wait不會(huì )加時(shí)間限制,因為如果wait線(xiàn)程的運行資源不夠,再出來(lái)也沒(méi)用,要等待其他線(xiàn)程調用notify/notifyAll喚醒等待池中的所有線(xiàn)程,才會(huì )進(jìn)入就緒隊列等待OS分配系統資源。sleep(milliseconds)可以用時(shí)間指定使它自動(dòng)喚醒過(guò)來(lái),如果時(shí)間不到只能調用interrupt()強行打斷。
Thread.sleep(0)的作用是“觸發(fā)操作系統立刻重新進(jìn)行一次CPU競爭”。
、 使用范圍:wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用。
synchronized(x){ x.notify() //或者wait() }
2. Java中HashMap和HashTable的區別
、 歷史原因: Hashtable是給予陳舊的Dictonary類(lèi)的, HashMap是Java1.2引進(jìn)的Map接口的一個(gè)實(shí)現
、 HashMap允許空的鍵值對, 而HashTable不允許
、 HashTable同步,而HashMap非同步,效率上比HashTable要高
3. 請簡(jiǎn)述在異常當中,throw和throws有什么區別
、 throw代表動(dòng)作,表示拋出一個(gè)異常的動(dòng)作;throws代表一種狀態(tài),代表方法可能有異常拋出
、 throw用在方法實(shí)現中,而throws用在方法聲明中
、 throw只能用于拋出一種異常,而throws可以?huà)伋龆鄠(gè)異常
4. 內存溢出和內存泄露的區別
內存溢出 out of memory,是指程序在申請內存時(shí),沒(méi)有足夠的內存空間供其使用,出現out of memory;比如申請了一個(gè)integer,但給它存了long才能存下的數,那就是內存溢出。
內存泄露 memory leak,是指程序在申請內存后,無(wú)法釋放已申請的內存空間,一次內存泄露危害可以忽略,但內存泄露堆積后果很?chē)乐,無(wú)論多少內存,遲早會(huì )被占光。
memory leak會(huì )最終會(huì )導致out of memory!
內存溢出就是你要求分配的內存超出了系統能給你的,系統不能滿(mǎn)足需求,于是產(chǎn)生溢出。
內存泄漏是指你向系統申請分配內存進(jìn)行使用(new),可是使用完了以后卻不歸還(),結果你申請到的那塊內存你自己也不能再訪(fǎng)問(wèn)(也許你把它的地址給弄丟了),而系統也不能再次將它分配給需要的程序。一個(gè)盤(pán)子用盡各種方法只能裝4個(gè)果子,你裝了5個(gè),結果掉倒地上不能吃了。這就是溢出!比方說(shuō)棧,棧滿(mǎn)時(shí)再做進(jìn)棧必定產(chǎn)生空間溢出,叫上溢,?諘r(shí)再做退棧也產(chǎn)生空間溢出,稱(chēng)為下溢。就是分配的內存不足以放下數據項序列,稱(chēng)為內存溢出。
以發(fā)生的方式來(lái)分類(lèi),內存泄漏可以分為4類(lèi):
、 常發(fā)性?xún)却嫘孤。發(fā)生內存泄漏的代碼會(huì )被多次執行到,每次被執行的時(shí)候都會(huì )導致一塊內存泄漏。
、 偶發(fā)性?xún)却嫘孤。發(fā)生內存泄漏的代碼只有在某些特定環(huán)境或操作過(guò)程下才會(huì )發(fā)生。常發(fā)性和偶發(fā)性是相對的。對于特定的環(huán)境,偶發(fā)性的也許就變成了常發(fā)性的。所以測試環(huán)境和測試方法對檢測內存泄漏至關(guān)重要。
、 一次性?xún)却嫘孤。發(fā)生內存泄漏的代碼只會(huì )被執行一次,或者由于算法上的缺陷,導致總會(huì )有一塊僅且一塊內存發(fā)生泄漏。比如,在類(lèi)的構造函數中分配內存,在析構函數中卻沒(méi)有釋放該內存,所以?xún)却嫘孤┲粫?huì )發(fā)生一次。
、 隱式內存泄漏。程序在運行過(guò)程中不停的分配內存,但是直到結束的時(shí)候才釋放內存。嚴格的說(shuō)這里并沒(méi)有發(fā)生內存泄漏,因為最終程序釋放了所有申請的內存。但是對于一個(gè)服務(wù)器程序,需要運行幾天,幾周甚至幾個(gè)月,不及時(shí)釋放內存也可能導致最終耗盡系統的所有內存。所以,我們稱(chēng)這類(lèi)內存泄漏為隱式內存泄漏。
從用戶(hù)使用程序的角度來(lái)看,內存泄漏本身不會(huì )產(chǎn)生什么危害,作為一般的用戶(hù),根本感覺(jué)不到內存泄漏的.存在。真正有危害的是內存泄漏的堆積,這會(huì )最終消耗盡系統所有的內存。從這個(gè)角度來(lái)說(shuō),一次性?xún)却嫘孤┎](méi)有什么危害,因為它不會(huì )堆積,而隱式內存泄漏危害性則非常大,因為較之于常發(fā)性和偶發(fā)性?xún)却嫘孤┧y被檢測到。
5. String,StringBuffer 和 StringBuilder的區別
、倏勺兣c不可變
String類(lèi)中使用字符數組保存字符串,如下就是,因為有“final”修飾符,所以可以知道string對象是不可變的。
private final char value[];
StringBuilder與StringBuffer都繼承自AbstractStringBuilder類(lèi),在A(yíng)bstractStringBuilder中也是使用字符數組保存字符串,如下就是,可知這兩種對象都是可變的。
char[] value;
、谑欠穸嗑(xiàn)程安全
String中的對象是不可變的,也就可以理解為常量,顯然線(xiàn)程安全。
AbstractStringBuilder是StringBuilder與StringBuffer的公共父類(lèi),定義了一些字符串的基本操作,如expandCapacity、append、、indexOf等公共方法。
StringBuffer對方法加了同步鎖或者對調用的方法加了同步鎖,所以是線(xiàn)程安全的?慈缦略创a:
public synchronized StringBuffer reverse() { super.reverse(); return this; } public int indexOf(String str) { return indexOf(str, 0); //存在 public synchronized int indexOf(String str, int fromIndex) 方法 }
StringBuilder并沒(méi)有對方法進(jìn)行加同步鎖,所以是非線(xiàn)程安全的。
、跾tringBuilder與StringBuffer共同點(diǎn)
StringBuilder與StringBuffer有公共父類(lèi)AbstractStringBuilder(抽象類(lèi))。
抽象類(lèi)與接口的其中一個(gè)區別是:抽象類(lèi)中可以定義一些子類(lèi)的公共方法,子類(lèi)只需要增加新的功能,不需要重復寫(xiě)已經(jīng)存在的方法;而接口中只是對方法的申明和常量的定義。
StringBuilder、StringBuffer的方法都會(huì )調用AbstractStringBuilder中的公共方法,如super.append(...)。只是StringBuffer會(huì )在方法上加synchronized關(guān)鍵字,進(jìn)行同步。
最后,如果程序不是多線(xiàn)程的,那么使用StringBuilder效率高于StringBuffer。
6. 數組和鏈表的區別
二者都屬于一種數據結構
從邏輯結構來(lái)看:
、 數組必須事先定義固定的長(cháng)度(元素個(gè)數),不能適應數據動(dòng)態(tài)地增減的情況。當數據增加時(shí),可能超出原先定義的元素個(gè)數;當數據減少時(shí),造成內存浪費;數組可以根據下標直接存取。
、 鏈表動(dòng)態(tài)地進(jìn)行存儲分配,可以適應數據動(dòng)態(tài)地增減的情況,且可以方便地插入、刪除數據項。(數組中插入、刪除數據項時(shí),需要移動(dòng)其它數據項,非常繁瑣)鏈表必須根據next指針找到下一個(gè)元素。
從內存存儲來(lái)看:
、(靜態(tài))數組從棧中分配空間,對于程序員方便快速,但是自由度小。
、阪湵韽亩阎蟹峙淇臻g,自由度大但是申請管理比較麻煩。
從上面的比較可以看出,如果需要快速訪(fǎng)問(wèn)數據,很少或不插入和刪除元素,就應該用數組;相反,如果需要經(jīng)常插入和刪除元素就需要用鏈表數據結構了。
7. ArrayList和LinkedList的區別
、貯rrayList是實(shí)現了基于動(dòng)態(tài)數組的數據結構,LinkedList基于鏈表的數據結構。
、趯τ陔S機訪(fǎng)問(wèn)get和set,ArrayList覺(jué)得優(yōu)于LinkedList,因為L(cháng)inkedList要移動(dòng)指針。
、蹖τ谛略龊蛣h除操作add和remove,LinedList比較占優(yōu)勢,因為ArrayList要移動(dòng)數據。
《JAVA程序設計》期末考試試題 9
一、選擇題:(每題3分,共20題)
1. 下面關(guān)于類(lèi)的說(shuō)法錯誤的一項是( )。
A、類(lèi)屬于Java語(yǔ)言中的復合數據類(lèi)型 中的基本結構單位
C、類(lèi)是同種對象的集合和抽象
2. 如下所示代碼:
public class Test05_01{ }
private float a;
public static void m ( ){ }
D、類(lèi)就是對象 B、對象是Java語(yǔ)言
如何使成員變量a被方法m( )訪(fǎng)問(wèn)( )。
A、將private float a改為public float a
B、將private float a改為static float a
C、將private float a改為protected float a
D、將private float a改為float a
3. 下面關(guān)于類(lèi)的說(shuō)法有誤的一項是( )。
A、類(lèi)就是對象 抽象
C、類(lèi)屬于Java語(yǔ)言中的復合數據類(lèi)型 中的基本結構單位
D、對象是Java語(yǔ)言
B、類(lèi)是同種對象的集合和
關(guān)于Java面向對象的考試題。
4. 下列哪種類(lèi)成員修飾符修飾的變量只能在本類(lèi)中被訪(fǎng)問(wèn)( )。
A、protected
B、default
C、private
D、public
5. 下面關(guān)于方法的說(shuō)法不正確的一項是( )。
A、類(lèi)的私有方法不能被其他類(lèi)直接訪(fǎng)問(wèn)。
B、Java中的構造方法名必須和類(lèi)名相同。
C、方法體是對方法的實(shí)現,包括變量聲明和合法語(yǔ)句。
D、如果一個(gè)類(lèi)定義了構造方法,也可以用該類(lèi)的默認構造方法。
6. 下列程序的運行結果是( )。
public class Test05_02 extends x{ }
B、編譯錯誤
D、運行成功,但不輸出
int ab(){ }
public static void main(String[] args) { }
Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;
System.out.println(a);
A、10 C、11
關(guān)于Java面向對象的考試題。
7. 下面關(guān)于構造方法的描述有誤的一項是( )。
A、構造方法必須要有返回類(lèi)型的聲明。
B、構造方法和類(lèi)中的方法很相似:有訪(fǎng)問(wèn)修飾符、方法名、參數列表、方法體。
C、構造方法當成是一個(gè)特殊的方法,這個(gè)方法的作用就是用來(lái)產(chǎn)生一個(gè)類(lèi)的實(shí)例。
D、構造方法的方法名必須和類(lèi)名完全相同。
8. 下列關(guān)于對象的說(shuō)法錯誤的一項是( )。
A、對象成員是指一個(gè)對象所擁有的屬性或可以調用的方法。
B、由類(lèi)生成對象,稱(chēng)為類(lèi)的`實(shí)例化過(guò)程,一個(gè)實(shí)例可以是多個(gè)對象。
C、在創(chuàng )建類(lèi)的對象時(shí),需要使用Java的new關(guān)鍵字。
D、在Java中要引用對象的屬性和方法,需要使用“.”操作符來(lái)實(shí)現。
9. 類(lèi)的方法可以不包含下面哪一項( )。
A、方法的參數 C、方法的名稱(chēng)
B、方法的主體 D、方法的返回值類(lèi)型
10. 下面關(guān)于變量說(shuō)法錯誤的一項是( )。
A、對于成員變量,我們可以不需要手動(dòng)的顯式初始化,因為系統在創(chuàng )建一個(gè)新的對象的時(shí)候,會(huì )給這些成員變量賦一個(gè)初值。
B、對于引用變量,它的默認初值是null而非相應的引用類(lèi)型對象,也就是說(shuō),它并不是指向任何對象的首地址。
關(guān)于Java面向對象的考試題。
C、系統會(huì )對全局(成員)變量指定默認的值,也會(huì )對局部變量賦值。
D、局部變量在使用之前,必須對其進(jìn)行顯式初始化。
11. 下面的各種數據類(lèi)型的默認初始化值表示錯誤的一項是( )。
A、int是0
B、float 是0.0
C、char 是‘u0000’
D、boolean是false
12. 下面哪一項不是Java的訪(fǎng)問(wèn)控制符( )。
A、public
B、private
C、void
D、protected
13. Java語(yǔ)言類(lèi)間的繼承關(guān)系和接口間的繼承關(guān)系分別是( )。
A、單繼承、不能繼承
C、多重繼承、單繼承
B、多重繼承、不能繼承
D、單繼承、多重繼承
14. 如果局部變量和成員變量同名,如何在局部變量作用域內引用成
員變量( )。
A、不影響,系統可以自己區分
B、不能引用,必須改名,使它們的名稱(chēng)不相同
C、在成員變量前加this,使用this訪(fǎng)問(wèn)該成員變量
D、在成員變量前加super,使用super訪(fǎng)問(wèn)該成員變量
15. 下列關(guān)于內部類(lèi)說(shuō)法錯誤的一項是( )。
A、內部類(lèi)可用private或protected修飾符修飾
B、內部類(lèi)不能有自己的成員方法和成員變量
C、除static內部類(lèi)外,不能在類(lèi)內聲明static成員
D、內部類(lèi)可以作為其他類(lèi)的成員,而且可訪(fǎng)問(wèn)它所在的類(lèi)的成員
16. 定義外部類(lèi)時(shí)不能用到的關(guān)鍵字是( )。
A、public
B、abstract
C、protected
D、final
17. 下面說(shuō)法不正確的一項是( )。
A、abstract和final能同時(shí)修飾一個(gè)類(lèi)
B、抽象類(lèi)既可以做父類(lèi),也可以做子類(lèi)
C、聲明為final類(lèi)型的方法不能在其子類(lèi)中重新定義
D、抽象類(lèi)中可以沒(méi)有抽象方法,有抽象方法的類(lèi)一定是抽象類(lèi)或接口
18. 有一個(gè)類(lèi)B,下面為其構造方法的聲明,正確的是( )。
A、void b(int x) {} C、B(int x) {}
B、void B(int x) {}
D、b(int x) {}
19. 區分類(lèi)中重載方法的依據是( )。
A、不同的形參名稱(chēng)
B、返回值的類(lèi)型不同
D、訪(fǎng)問(wèn)權限不同
C、形參列表的類(lèi)型和順序
20. 下面說(shuō)法錯誤的一項是( )。
A、在Java中,為了節省創(chuàng )建對象的時(shí)間和空間,對于一些常用的方法,會(huì )將它在內存中緩存起來(lái)。
B、在JDK中針對各種基本數據類(lèi)型分別定義相應的引用類(lèi)型,稱(chēng)之為封裝類(lèi)(Wrapper Classes)。
C、JDK5.0中,引入了自動(dòng)裝箱/拆箱功能,可以讓我們方便的在簡(jiǎn)單類(lèi)型和對應的封裝類(lèi)型數據之間轉換。
【《JAVA程序設計》期末考試試題】相關(guān)文章:
sun認證:java程序設計考試試題07-25
大學(xué)java期末考試試題08-18
2017年java期末考試試題10-20
2016年java期末考試試題及答案10-11
java試題及答案07-04
2017java期末考試參考試題07-31