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