第一篇:JAVA達(dá)內(nèi)面試題
誠(chéng)信、創(chuàng)新、開(kāi)放、合作
JAVA面試題-CORE JAVA部分
--感謝SD0501班畢業(yè)學(xué)員李曉賓的提供,希望對(duì)面試學(xué)員和在校學(xué)員有所幫助。
1. 在main(String[] args)方法內(nèi)是否可以調(diào)用一個(gè)非靜態(tài)方法?
答案:不能
2. 同一個(gè)文件里是否可以有兩個(gè)public類?
答案:不能
3. 方法名是否可以與構(gòu)造器的名字相同?答案:可以。
4.初始化了一個(gè)沒(méi)有run()方法的線程類,是否會(huì)出錯(cuò)?
答案:不會(huì)。
第一種方法:直接繼承Thread類。
public class Test
{
public static void main(String[] args)
{
ThreadClass t = new ThreadClass();
t.start();
System.out.println(“end”);//輸出“end”
}
}
class ThreadClass extends Thread//Thread類已經(jīng)實(shí)現(xiàn)了空的run()方法。
{
}
第二種方法:實(shí)現(xiàn)Runnable接口
public class Test
{
public static void main(String[] args)
{
ThreadClass t = new ThreadClass();
Thread thread = new Thread(t);
thread.start();
System.out.println(“end”);
}
}
class ThreadClass implements Runnable
{
public void run()//必須有此方法否則編譯報(bào)錯(cuò)。它是Runnable接口中的抽象方法。{
System.out.println(“Threads”);
}
}
4. 局部?jī)?nèi)部類是否可以訪問(wèn)非final變量?
答案:不能訪問(wèn)局部的,可以訪問(wèn)成員變量(全局的)。
class Out
{
private String name = “out.name”;
void print()
{
final String work = “out.local.work”;//若不是final的則不能被Animal 使用.int age=10;
class Animal
//定義一個(gè)局部?jī)?nèi)部類.只能在print()方法中使用.//局部類中不能使用外部的非final的局部變量.全局的可以.{
public void eat()
{
System.out.println(work);//ok
//age=20;error not final
System.out.println(name);//ok.}
}
Animal local = new Animal();
local.eat();
}
}
5. 選擇語(yǔ)句case中,允許使用的值有哪些?答案:int,short,char,byte(都在int范圍之內(nèi),且是整
數(shù))
6. Math,String是不可繼承的。(final類)
Instanceof 后面跟的應(yīng)該是OBJECT。
構(gòu)造器可以是私有的。(private)
=與==意義是完全不同的。一個(gè)是賦值,一個(gè)是等于。
全局變量可以不進(jìn)行初始化,如果使用一個(gè)局部變量,則這個(gè)局部變量要被初始化。
7. 下面都是正確的main方法簽名。
public static void main(String[] args)
public static final void main(String[] args)
static public void main(String[] args)
static public synchronized void main(String[] args)
static public abstract void main(String[] args)//錯(cuò)誤
8. if(-0.0 == 0.0)是相等還是不等?
答案:相等。
10.一個(gè)抽象類是否可以沒(méi)有抽象方法?
答案:可以。
14.數(shù)組,無(wú)論是當(dāng)前的,還是類等級(jí)的,都會(huì)被初始化。
String 是被初始化為 null,不是空字符。
null,““,” “,都是不同的。
“continue”只能在一個(gè)循環(huán)里(如for,do,while),它不能在case語(yǔ)句中出現(xiàn)。
Primitive(int,char,long等)數(shù)組是不能互相賦值的,即使它們本身可以。
一個(gè)Constructor可以拋出任何異常。
初始化塊是按照聲明的順序執(zhí)行的。
所有關(guān)于 NaN(Not a Number)和 non-NaN 的比較,都返回false.這條很重要。
==會(huì)產(chǎn)生編譯錯(cuò)誤,如果兩邊類型不匹配的話。
equals()返回 false 如果對(duì)象類型不同,但不產(chǎn)生 編譯錯(cuò)誤。
15. 16.integer和long 操作 /和% 的話,可能會(huì)拋出ArithmeticException,比如除0。但是 float與
double不會(huì),即使是除以0。
double a=0;a=a/0;則a等于NaN。
18.面向?qū)ο蟮奶卣饔心男┓矫??
答案:最基本特征:封裝,繼承,多態(tài)。
其他特征:抽象關(guān)聯(lián),聚合,組合,內(nèi)聚,耦合24.設(shè)計(jì)4個(gè)線程,其中兩個(gè)線程每次對(duì)j增加1,另外兩個(gè)線程對(duì)j每次減少1。寫出程序。
注:因?yàn)檫@4個(gè)線程共享J,所以線程類要寫到內(nèi)部類中。
加線程:每次對(duì)j加一。
減線程:每次對(duì)j減一。
public class TestThreads
{
private int j=1;
//加線程
private class Inc implements Runnable
{
public void run()
{
for(int i = 0;i < 10;i++)
{
inc();
}
}
}
//減線程
private class Dec implements Runnable
{
public void run()
{
for(int i = 0;i < 10;i++)
{
dec();
}
}
}
//加1
private synchronized void inc()
{
j++;
System.out.println(Thread.currentThread().getName()+“-inc:”+j);
}
//減1
private synchronized void dec()
{
j--;
System.out.println(Thread.currentThread().getName()+“-dec:”+j);
}
//測(cè)試程序
public static void main(String[] args)
{
TestThreads test = new TestThreads();
//創(chuàng)建兩個(gè)線程類
Thread thread = null;
Inc inc = test.new Inc();
Dec dec = test.new Dec();
//啟動(dòng)4個(gè)線程
for(int i = 0;i < 2;i++)
{
thread = new Thread(inc);
thread.start();
thread = new Thread(dec);
thread.start();
}
}
}
25.?dāng)?shù)組轉(zhuǎn)換問(wèn)題。
Object[] object=new Person[2];
Person [] person=new Person [3];
person=(Person [])object;//可以轉(zhuǎn)換
int[] i = new int[2];
long[] l = new int[3];
i =(long[])l;//不可以轉(zhuǎn)換
26.用socket通訊寫出客戶端和服務(wù)器端的通訊,要求客戶發(fā)送數(shù)據(jù)后能夠回顯相同的數(shù)據(jù)。Server.java:源代碼
import java.net.*;
import java.io.*;
classServer
{
public Server()
{
BufferedReader br = null;
PrintWriter pw = null;
try
{
ServerSocket server = new ServerSocket(8888);//建立服務(wù)器端
Socket socket = server.accept();//監(jiān)聽(tīng)客戶端
//得到該連接的輸入流
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));//得到該連接的輸出流
pw = new PrintWriter(socket.getOutputStream(),true);
//先讀后寫
String data = br.readLine();
System.out.println(data);//輸出到控制臺(tái)
pw.println(data);//轉(zhuǎn)發(fā)給客戶端
}catch(Exception e)
{
e.printStackTrace();
}
finally
{try{//關(guān)閉讀寫流br.close();pw.close();}catch(Exception e){}}}public static void main(String[] args){Server server = new Server();}
}
Client.java:源代碼
import java.net.*;
import java.io.*;
classClient
{
public Client()
{
BufferedReader br = null;
PrintWriter pw = null;
try
{
Socket socket = new Socket(“l(fā)ocalhost”,8888);//與服務(wù)器建立連接,服務(wù)器要先啟//得到Socket的輸入與輸出流
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(),true);
//先寫后讀
pw.println(“Client:你好!”);
String data = null;
while(true)
{
data = br.readLine();
if(data!=null)break;
}
System.out.println(data);
}catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
br.close();
pw.close();
}catch(Exception e)
{}
}
}
public static void main(String[] args)
{
Client c = new Client();
}
}
37.sleep()和 wait()有什么區(qū)別?
答案:sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間(休息),把執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù),時(shí)間到了會(huì)繼續(xù)運(yùn)行。調(diào)用sleep不會(huì)釋放對(duì)象鎖。
wait是Object類的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
50.啟動(dòng)一個(gè)線程是用run()還是start()?有什么區(qū)別?
答案:?jiǎn)?dòng)一個(gè)線程是調(diào)用start()方法,這并不意味著線程就會(huì)立即運(yùn)行,只是進(jìn)入了可運(yùn)行狀態(tài)。直接調(diào)用run()方法不會(huì)產(chǎn)生線程,而是把它當(dāng)作普通的方法調(diào)用,馬上執(zhí)行。
73.當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
答案:不能,一個(gè)對(duì)象的synchronized方法只能由一個(gè)線程訪問(wèn)。但其他線程可以同時(shí)訪問(wèn)這個(gè)對(duì)象的非synchronized方法
第二篇:Java試題A
Java測(cè)試題(A卷)
一、單選題(2分/題*20題=40分)
1.下列javaDoc注釋正確的是()
A、/*我愛(ài)北京天安門*/ B、//我愛(ài)北京天安門*/ C、/**我愛(ài)北京天安門*/ D、/*我愛(ài)北京天安門**/ 2.下列說(shuō)法正確的是()
A、JAVA程序的main方法必須寫在類里面 B、JAVA程序中可以有多個(gè)main方法 C、JAVA程序中類名必須與文件名一樣
D、JAVA程序的main方法中如果只有一條語(yǔ)句,可以不用{}(大括號(hào))括起來(lái) 3.下列語(yǔ)句執(zhí)行后,變量a、c的值分別是()。
int x=182;int a,c;c=x/100;a=x%10;A、1,2
B、2,1 C、1.82, 2 D、100,82 4.下面哪個(gè)表達(dá)式可用得到x和y的最大值()?
A、x>y?y:x B、x
a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);A、666 B、667
C、677 D、676 6.下列輸出結(jié)果是()
int a = 2 while(a < 5){ switch(a){ case 0: case 3 : a = a + 2;case 1 : case 2 : a = a + 3;default : a = a + 5;} } System.out.print(a)A、5 B、7
C、10
D、1
27.下面是func(int m,int n)方法的定義,方法調(diào)用func(1,4)的返回結(jié)果是()。
int func(int m,int n){
int sum=0;for(int i=1;i<=4;i+=2){ sum+=i;} return sum;} A、1
B、4
C、5
D、10
8.以下定義一維數(shù)組的語(yǔ)句中,正確的是()
A、int a[5]
B、int a[] = new.int[5];C、int a[];D、int a[] = {1,2,3,4,5};
9.分析選項(xiàng)中關(guān)于Java中this關(guān)鍵字的說(shuō)法正確的是()
A、this關(guān)鍵字是在對(duì)象內(nèi)部指代自身的引用 B、this關(guān)鍵字可以在類中的任何位置使用
C、this關(guān)鍵字和類關(guān)聯(lián),而不是和特定的對(duì)象關(guān)聯(lián) D、同一個(gè)類的不同對(duì)象共用一個(gè)this 10.在Java中,關(guān)于構(gòu)造方法,下列說(shuō)法錯(cuò)誤的是()
A、構(gòu)造方法的名稱必須與類名相同 B、構(gòu)造方法可以帶參數(shù) C、構(gòu)造方法不可以重載 D、構(gòu)造方法絕對(duì)不能有返回值
11.假設(shè)類A有構(gòu)造方法A(int a),則在類A的其它構(gòu)造方法中調(diào)用該構(gòu)造方法的語(yǔ)句為()
A、A(x)
B、this.A(x)C、this(x)//本類的構(gòu)造方法都是使用this關(guān)鍵字來(lái)調(diào)用
法使用的是super 12.下列關(guān)于抽象類的說(shuō)法正確的是()
A、某個(gè)抽象類的父類是抽象的,則這個(gè)子類必須重載父類的所有抽象方法 B、抽象類中必須存在抽象方法 C、絕對(duì)不能用抽象類去創(chuàng)建對(duì)象
D、抽象類可以實(shí)現(xiàn)接口,并且可以只實(shí)現(xiàn)接口的部分接口方法 13.下面代碼段
靜態(tài)的變量只有一個(gè)值,常駐內(nèi)存存在的 class HasStatic{
} 輸出的結(jié)果是: private static int x = 101;public static void main(String[] args){
} HasStatic hs1 = new HasStatic();hs1.x++;102 HasStatic hs2 = new HasStatic();hs2.x++;102 hs1 = new HasStatic();hs1.x++;103 HasStatic.x--;System.out.println(hs1.x + hs2.x);
D、super(x)調(diào)用父類的構(gòu)造方
A、103102 B、204
C、205
D、206
14.下面()不是String類提供的合法的方法。
A、equals(String)//判斷是否內(nèi)容相同 B、trim()//去空格的函數(shù) C、append()D、indexOf()//對(duì)索引進(jìn)行處理
15.在JAVA中,LinkedList類和ArrayList類同屬于集合框架類,下列()選項(xiàng)中的方法是LinkedList類有而ArrayList類沒(méi)有的。A、add(Object o)B、add(int index,Object o)C、remove(Object o)D、removeLast()16.下列哪些說(shuō)法是正確的?
A、IOException必須被捕獲或拋出
B、java語(yǔ)言聲明變量的同時(shí)必須賦值
C、java 語(yǔ)言不允許同時(shí)繼承一個(gè)類并實(shí)現(xiàn)一個(gè)接口
D、垃圾收集可被隨時(shí)強(qiáng)制執(zhí)行 17.關(guān)于線程狀態(tài)的說(shuō)法正確的是()
A、使用new剛創(chuàng)建出來(lái)的線程是就緒狀態(tài) B、調(diào)用start()方法線程立即處于運(yùn)行狀態(tài) C、提倡調(diào)用stop()方法終止線程
D、線程等待IO輸入會(huì)處于線程阻塞狀態(tài) 18.以下代碼: class Message{
String mailmessage;}...Message data;Socket toServer=new Socket(“172.17.96.34”,1001);...ObjectOutputStream out=new ObjectOutputStream(toServer.getOutputStream());out.write(data);
在執(zhí)行上面代碼時(shí)引發(fā)異常NotSerializableException。引發(fā)此異常的可能原因是什么? A.沒(méi)有連上服務(wù)器
B.此消息類(Message)聲明不充分 C.輸出套接字可能被破壞
D.寫出到此套接字,不應(yīng)使用ObjectOutputStream 19.關(guān)于JDBC編程,以下說(shuō)法錯(cuò)誤的是()。
A、使用Class.forName()方法加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序
B、使用DriverManager的getConnection()方法建立與數(shù)據(jù)庫(kù)的連接 C、使用Connection的executeQuery(sql)方法執(zhí)行查詢得到ResultSet對(duì)象 D、用executeUpdate()執(zhí)行更新、刪除語(yǔ)句不會(huì)得到ResultSet對(duì)象
20.下面代碼段, class Dog {
} class Beagle extends Dog{ } 如果類Beagle繼承Dog, 并且Beagle類只有一個(gè)構(gòu)造器,下面哪個(gè)是Beagle類合法的構(gòu)造器? A、Beagle(){ } B、Beagle(){ super();} C、Beagle(){ super(“fido”);}
D、不提供構(gòu)造器,使用默認(rèn)的構(gòu)造器。Dog(String name){ }
二、多選題(錯(cuò)選、漏選不得分,2分/題*10題=20分)
1.下面的說(shuō)法正確的是()。
A、Java 語(yǔ)言是面向?qū)ο蟮摹⒔忉寛?zhí)行的網(wǎng)絡(luò)編程語(yǔ)言。
B、Java 語(yǔ)言具有可移植性,是與平臺(tái)無(wú)關(guān)的編程語(yǔ)言。C、Java 語(yǔ)言可對(duì)內(nèi)存垃圾自動(dòng)收集。
D、Java 語(yǔ)言編寫的程序雖然是“一次編譯,到處運(yùn)行”,但必須要java的運(yùn)行環(huán)境。2.在Java接口中,下列選項(xiàng)中有效的方法聲明是()。(選擇二項(xiàng))
A、public void aMethod();B、void aMethod();C、protected void aMethod();D、private void aMethod();3.定義變量如下:
char c='w';int i=8;long L=15;float f=8.9f;以下賦值語(yǔ)句正確的是()。
A、i=c+i;B、c=c+i;C、L=f+L;D、f=i+L+f;
4.面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征是()。
A、抽象 B、封裝 C、繼承 D、多態(tài)
5.下面關(guān)于類的說(shuō)法正確的是()。
A、類是 Java 語(yǔ)言中的一種復(fù)合數(shù)據(jù)類型。B、類中包含數(shù)據(jù)變量和方法。
C、類是對(duì)所有具有一定共性的對(duì)象的抽象。D、Java 語(yǔ)言的類只支持單繼承。
6.編譯并運(yùn)行下面的程序:
public class A {
} class B extends A { public static void main(String[] args){
} void test(){ } System.out.print(“A”);A a=new B();a.test();
} 以下結(jié)論正確的有().A、子類B定義了與父類A中同名的方法test,java中稱為方法的覆蓋。B、代碼可以編譯運(yùn)行,并輸出結(jié)果:AB。C、代碼可以編譯運(yùn)行,并輸出結(jié)果:A。
D、子類B定義了與父類A中同名的方法test,java中稱為方法的重載。7.下面哪些說(shuō)法正確()?
A、如果某公共的接口被聲明在一個(gè)源文件中,則接口必須與源文件具有相同的名字。B、如果源文件包含import語(yǔ)句,則該語(yǔ)句必須是除空行和注釋行外的第一個(gè)語(yǔ)句行。C、如果某源文件包含package語(yǔ)句,則該語(yǔ)句必須是第一個(gè)非空、非注釋行。D、接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。8.關(guān)于面向?qū)ο蟮恼f(shuō)法正確的是()
A、面向?qū)ο缶幊淌穷悂?lái)描述現(xiàn)實(shí)世界中的實(shí)體 B、有多少個(gè)實(shí)體就要?jiǎng)?chuàng)建多少個(gè)類
C、對(duì)象的行為和屬性被封裝在類中,外界通過(guò)發(fā)送消息來(lái)通知對(duì)象執(zhí)行某個(gè)任務(wù) D、現(xiàn)實(shí)世界中的某些實(shí)體不能用類來(lái)描述 9.下面代碼:
1.class Over { 2.3.4.5.} 6.7.class Over2 extends Over { 8.9.} 哪兩個(gè)選項(xiàng)放在第8行會(huì)導(dǎo)致不能編譯? A、public int doStuff(int x, float y){ return 4;} B、protected int doStuff(int x, float y){return 4;} C、private int doStuff(int x, float y){return 4;} D、String doStuff(int x, float y){ return “4”;} E、int doStuff(float x, int y){ return 4;} // 選擇代碼添加在此處 int doStuff(int a, float b){ } return 7;void test(){
} super.test();System.out.println(“B”);
10.以下關(guān)于布局的說(shuō)法,正確的是()
A、布局管理是為了能自動(dòng)適應(yīng)窗口大小的變化
B、BorderLayout是邊框布局,他將窗口分為上、下、左、右四部分
C、FlowLayout是流布局,這種布局將其中的組件按照加入的先后順序從左向右排列,一行排滿之后就轉(zhuǎn)到下一行繼續(xù)從左至右排列
D、GridLayout是網(wǎng)格布局,它以矩形網(wǎng)格形式對(duì)容器的組件進(jìn)行布置。容器被分成大小相等的矩形,一個(gè)矩形中放置一個(gè)組件
三、填空題(2分/題*5題=20分)1.補(bǔ)充下面代碼的實(shí)現(xiàn)求數(shù)組中元素的最小值。
int[] x={122,33,55,678,-987};int min=_____999_________;for(int i=1;i } System.out.println(“最小值為:”+min); 2.終止循環(huán)使用關(guān)鍵字____break______,結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)使用關(guān)鍵字____continue______。3.子類中調(diào)用父類被重寫的方法需使用關(guān)鍵字__Super,聲明常量使用關(guān)鍵字___final______。4.自定義的異常類通常繼承自______Execption____________類,方法聲明中拋出異常使用關(guān)鍵字____throw______。 5.內(nèi)部類的特點(diǎn)是內(nèi)部類與外部類共享______外部類的成員變量_________;內(nèi)部類中的實(shí)例變量與外部類的實(shí)例變量重名時(shí),內(nèi)部類中通過(guò)“_____________.this.外部類實(shí)例變量名”來(lái)引用外部類實(shí)例變量。if(_x[i] 四、問(wèn)答題(4分/題*5題=20分)1.什么是垃圾,java垃圾回收的工作原理 2.類變量與實(shí)例變量的區(qū)別 3.Vector與TreeSet在存儲(chǔ)結(jié)構(gòu)和存取性能上的區(qū)別 4.IO流分為字節(jié)流和字符流,說(shuō)明他們的區(qū)別,每一類分別說(shuō)出兩個(gè)java類 5.什么是線程安全問(wèn)題?什么情況下容易產(chǎn)生線程安全問(wèn)題?線程安全問(wèn)題如何解決? 五、程序題(5分/題*2題=10分) 1.用循環(huán)輸出九九乘法口訣表 2.編寫TCP服務(wù)器端程序,并且每個(gè)連接啟動(dòng)一個(gè)單獨(dú)的線程來(lái)處理。 學(xué)習(xí)心得 七月之始,我們的達(dá)內(nèi)java班又開(kāi)始正式上課了,從上課第一天到現(xiàn)在,已經(jīng)有一個(gè)月了,在這短暫的一個(gè)月里,我學(xué)到是java的基礎(chǔ)知識(shí),重點(diǎn)是JavaSE。感覺(jué)時(shí)間過(guò)的是非常快的,短短一個(gè)月就這樣被我們給熬過(guò)去了,當(dāng)中既有心酸也有快樂(lè)。 學(xué)習(xí)之初,有著一點(diǎn)點(diǎn)的不適應(yīng),首先是時(shí)間段的不適應(yīng),每天有這規(guī)定的時(shí)間上課,下課,休息。或許是在大學(xué)這個(gè)懶散的環(huán)境下,我們已經(jīng)漸漸的遠(yuǎn)離了規(guī)定與約束,過(guò)分的放縱自己。隨著時(shí)間的一天天過(guò)去,慢慢的,我們開(kāi)始適應(yīng)了這種學(xué)習(xí)的時(shí)間安排以及這樣的學(xué)習(xí)氛圍,從一種自由放縱中擺脫出來(lái),有了所謂的上進(jìn)心,開(kāi)始了各自的Java之路。 在這段時(shí)間里,自己感覺(jué)最明顯的就是打字速度和以前相比有了明顯的提升,此外就是對(duì)一些基本的代碼的理解和運(yùn)用有了一定自己的意識(shí)。這兩點(diǎn)是最明顯的變化。個(gè)人感覺(jué)學(xué)了這些基本知識(shí)之后,對(duì)于Java的認(rèn)識(shí)上的確有了一個(gè)提升,起初對(duì)它的認(rèn)識(shí)感覺(jué)和其他的編程語(yǔ)言應(yīng)該沒(méi)有多大區(qū)別,但是學(xué)完這些這些基本的知識(shí)之后,我的認(rèn)識(shí)是Java很強(qiáng)大,我們需要不斷地去學(xué),更多的是要不斷的去敲,把它練熟,這樣自己在從業(yè)的時(shí)候才會(huì)有底氣,敢于和別人去競(jìng)爭(zhēng)。 雖然我們的課堂是看視頻來(lái)學(xué)習(xí),但是個(gè)人覺(jué)得只要是能學(xué)到知識(shí),這些學(xué)的形式只是一種次要的因素而已,對(duì)于一個(gè)想要學(xué)習(xí)的人來(lái)說(shuō),他每時(shí)每刻都在學(xué)習(xí)者,因?yàn)樗麗?ài)學(xué)習(xí)。有了這一個(gè)月的學(xué)習(xí)經(jīng)歷之后,感覺(jué)自己當(dāng)初選擇達(dá)內(nèi)來(lái)學(xué)習(xí)Java是一個(gè)正確的選擇,我相信我只要有學(xué)習(xí)渴望,達(dá)內(nèi)一定能給我所要學(xué)的。一個(gè)都不愛(ài)學(xué)習(xí)的人,你給他再好的學(xué)習(xí)環(huán)境和最好的學(xué)習(xí)條件,無(wú)亞于對(duì)牛彈琴,無(wú)動(dòng)于衷。結(jié)果還有一個(gè)浪費(fèi)資源,浪費(fèi)精力。 整個(gè)學(xué)習(xí)的時(shí)間是四個(gè)月,對(duì)于余下的三個(gè)月,我拭目以待,相信自己一定能夠在有限的時(shí)間內(nèi)能夠?qū)W好這一門語(yǔ)言,為自己以后多一個(gè)機(jī)會(huì)。 相信,我可以! 畢業(yè)實(shí)習(xí)報(bào)告 一、實(shí)習(xí)目的: 進(jìn)一步了解java開(kāi)發(fā)的相關(guān)知識(shí),掌握java開(kāi)發(fā)的基本技術(shù),豐富java開(kāi)發(fā)的實(shí)戰(zhàn)經(jīng)驗(yàn)。學(xué)習(xí)SQL的基礎(chǔ)知識(shí)及正確的運(yùn)用方法,和有用的相關(guān)技術(shù),提高自己的工作效率。通過(guò)實(shí)習(xí),培養(yǎng)我們綜合運(yùn)用已學(xué)知識(shí)Java語(yǔ)言的面向?qū)ο缶幊棠芰Γ慌囵B(yǎng)我們動(dòng)手能力;培養(yǎng)我們良好編程規(guī)范、編程方法;以便能較全面地理解、掌握和綜合運(yùn)用所學(xué)的知識(shí),提高自身的編程能力;增強(qiáng)自己的團(tuán)隊(duì)協(xié)作意識(shí),了解軟件開(kāi)發(fā)的思考角度和主要流程。為畢業(yè)之后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作,打好一定的基礎(chǔ)。 二、實(shí)習(xí)單位介紹: 北京達(dá)內(nèi)科技有限公司是中國(guó)高端IT培訓(xùn)的領(lǐng)先品牌,致力于培養(yǎng)面向電信和金融領(lǐng)域的 Java、C++、C#/.Net、測(cè)試、嵌入式、PHP等方面的中高端軟件人才,由美國(guó)國(guó)際數(shù)據(jù)集團(tuán)IDG和集富亞洲JAFCO ASIA投資,是國(guó)內(nèi)首家獲得國(guó)際風(fēng)險(xiǎn)投資的IT培訓(xùn)機(jī)構(gòu)。經(jīng)過(guò)9年運(yùn)營(yíng),達(dá)內(nèi)科技實(shí)現(xiàn)了98% 的專業(yè)就業(yè)率,78%的口碑入學(xué)率,學(xué)員平均畢業(yè)薪資3800元/首月平均薪資。目前,達(dá)內(nèi)科技已經(jīng)發(fā)展成為集培訓(xùn)、咨詢、開(kāi)發(fā)、人才服務(wù)于一體的高新技術(shù)集團(tuán)公司,公司下設(shè)達(dá)內(nèi)高端IT培訓(xùn)、達(dá)內(nèi)軟件人才服務(wù)中心、達(dá)內(nèi)軟件研發(fā)中心。 達(dá)內(nèi)科技以中關(guān)村科技園區(qū)為依托,在中國(guó)軟件業(yè)發(fā)達(dá)城市——北京、上海、廣州、深圳、大連、南京、武漢、杭州、西安、蘇州、成都、太原20大城市,建立了近40家培訓(xùn)中心,占地2萬(wàn)平米,年培訓(xùn)1萬(wàn)多名軟件人才。已累計(jì)為IBM、微軟、摩托羅拉、華為、中軟、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、聯(lián)想、神州數(shù)碼、大唐電信、亞信等知名IT企業(yè)培養(yǎng)輸送了7萬(wàn)多名中高級(jí)軟件人才,目前達(dá)內(nèi)全國(guó)擁有600多名員工,年產(chǎn)值近2億元,是中國(guó)領(lǐng)先的中高端軟件人才培訓(xùn)機(jī)構(gòu)。 由于達(dá)內(nèi)科技優(yōu)秀的教學(xué)效果和行業(yè)領(lǐng)先的經(jīng)營(yíng)模式贏得了社會(huì)各界的廣泛贊譽(yù)和好評(píng),近年來(lái)達(dá)內(nèi)榮獲了各界權(quán)威機(jī)構(gòu)的頒獎(jiǎng):達(dá)內(nèi)成為業(yè)界唯一的一家2006、2007、2008、2009連續(xù)4年入選德勤評(píng)選的 “中國(guó)高科技高成長(zhǎng)50強(qiáng)公司”、“亞太地區(qū)高科技高成長(zhǎng)500強(qiáng)公司”,獲得首屆中國(guó)留學(xué)人才歸國(guó)創(chuàng)業(yè)“騰飛”獎(jiǎng)、中關(guān)村管理委員會(huì)指定的“軟件人才培養(yǎng)示范基地”、被《計(jì)算機(jī)世界》評(píng)選的“就業(yè)服務(wù)杰出貢獻(xiàn)獎(jiǎng)”、被《中國(guó)計(jì)算機(jī)報(bào)》評(píng)選的“最具影響力培訓(xùn)機(jī)構(gòu)獎(jiǎng)”、被搜狐評(píng)為“中國(guó)十大教育集團(tuán)”、被騰訊評(píng)為“中國(guó)大學(xué)生心目中最具影響力的IT品牌”、2011年達(dá)內(nèi)CEO韓少云先生當(dāng)選中國(guó)貿(mào)易協(xié)會(huì)專家委員會(huì)第一屆副主任委員等榮譽(yù)。 三、實(shí)習(xí)崗位介紹: 此次實(shí)習(xí)為java實(shí)訓(xùn)班,我們組一共6人,共同完成一個(gè)服裝管理系統(tǒng)。我主要負(fù)責(zé)入庫(kù)管理模塊代碼的編寫和該模塊相關(guān)文檔的撰寫。該模塊主要功能包括:新建入庫(kù)單、刪除入庫(kù)單、查看入庫(kù)單詳細(xì)信息、更新入庫(kù)單、提交入庫(kù)單、查詢?nèi)霂?kù)單。 四、實(shí)習(xí)內(nèi)容及過(guò)程: Mysql數(shù)據(jù)庫(kù) 1)MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)概述 MySQL是最流行的開(kāi)放源碼SQL數(shù)據(jù)庫(kù)管理系統(tǒng),它是由MySQL AB公司開(kāi)發(fā)、發(fā)布并支持的。MySQL AB是由多名MySQL開(kāi)發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開(kāi)放源碼公司,結(jié)合了開(kāi)放源碼價(jià)值取向、方法和成功的商業(yè)模型。 數(shù)據(jù)庫(kù)是數(shù)據(jù)的結(jié)構(gòu)化集合。計(jì)算機(jī)是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫(kù)管理系統(tǒng)在計(jì)算方面扮演著關(guān)鍵的中心角色,或是作為獨(dú)立的實(shí)用工具,或是作為其他應(yīng)用程序的組成部分。 MySQL服務(wù)器還有一套實(shí)用的特性集合,這些特性是通過(guò)與我們用戶的密切合作而開(kāi)發(fā)的。在我們的基準(zhǔn)測(cè)試主頁(yè)上,給出了MySQL服務(wù)器和其他數(shù)據(jù)庫(kù)管理器的比較結(jié)果。 MySQL服務(wù)器最初是為處理大型數(shù)據(jù)庫(kù)而開(kāi)發(fā)的,與已有的解決方案相比,它的速度更快,多年以來(lái),它已成功用于眾多要求很高的生產(chǎn)環(huán)境。盡管MySQL始終在不斷發(fā)展,但目前MySQL服務(wù)器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使的MySQL十分適合于訪問(wèn)Internet上的數(shù)據(jù)庫(kù)。 2)MySQL穩(wěn)定性 每次發(fā)布的MySQL服務(wù)器均是可用的。僅當(dāng)用戶嘗試源自“灰色區(qū)域”的代碼時(shí)才會(huì)出現(xiàn)問(wèn)題。當(dāng)然,新用戶不了解“灰色區(qū)域”是什么。因此,在本節(jié)中,我們介紹了目前已知的這類區(qū)域。本節(jié)所作的介紹主要針對(duì)MySQL服務(wù)器5.0版和更高版本。在最新的版本中,更正了所有已知和通報(bào)的缺陷,但“缺陷”一節(jié)所列的除外,這類缺陷與設(shè)計(jì)有關(guān)。 Java中的常用設(shè)計(jì)模式 1)工廠模式 客戶類和工廠類分開(kāi)。消費(fèi)者任何時(shí)候需要某種產(chǎn)品,只需向工廠請(qǐng)求即可。消費(fèi)者無(wú)須修改就可以接納新產(chǎn)品。缺點(diǎn)是當(dāng)產(chǎn)品修改時(shí),工廠類也要做相應(yīng)的修改。如:如何創(chuàng)建及如何向客戶端提供。 3)工廠方法模式 核心工廠類不再負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一個(gè)抽象工廠角色,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,而不接觸哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化這種細(xì)節(jié)。 控制技術(shù)-Servlet技術(shù) 1)一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類,它被用來(lái)擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過(guò)“請(qǐng)求-響應(yīng)”編程模型來(lái)訪問(wèn)的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來(lái)擴(kuò)展Web服務(wù)器的應(yīng)用程序。Java Servlet技術(shù)為這些應(yīng)用程序定義了一個(gè)特定于HTTP的 servlet類。 javax.servlet和javax.servlet.http包為編寫servlet提供了接口和類。所有的servlet都必須實(shí)現(xiàn)Servlet接口,該接口定義了生命周期方法。 2)一個(gè)servlet的生命周期由部署servlet的容器來(lái)控制。當(dāng)一個(gè)請(qǐng)求映射到一個(gè)servlet時(shí),該容器執(zhí)行下列步驟。 頁(yè)面設(shè)計(jì)-JSP頁(yè)面 1)MVC 模式 為了把表現(xiàn)層presentation從請(qǐng)求處理request processing 和數(shù)據(jù)存儲(chǔ)data storage中分離開(kāi)來(lái),SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器”Model-view-controller 模式。規(guī)范的SERVLET或者分離的JSP文件用于處理請(qǐng)求。當(dāng)請(qǐng)求處理完后,控制權(quán)交給一個(gè)只作為創(chuàng)建輸出作用的JSP頁(yè)。有幾種平臺(tái)都基于服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件 模式(比如Struts 和Spring framework)。 2)JSP技術(shù)的強(qiáng)勢(shì) (1)一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。 (2)系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見(jiàn)的。 (3)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái) 服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 (4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。 3)JSP技術(shù)的弱勢(shì) (1)與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。 (2)Java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了。從另一方面,它還需要硬盤空間來(lái)儲(chǔ)存一系列的.java文件和.class文件,以及對(duì)應(yīng)的版本文件。 五、實(shí)習(xí)總結(jié)及體會(huì) 通過(guò)這一期的實(shí)訓(xùn),雖然倍感折磨,但是收獲卻很大的,學(xué)習(xí)中我不但有了學(xué)習(xí)成果的喜悅,而且自己也日漸成熟,有種說(shuō)不出的喜悅。 當(dāng)我們正式準(zhǔn)備學(xué)習(xí)實(shí)訓(xùn)java編程技術(shù)時(shí),讓我倍感興奮。Java是自己以后想主攻的技術(shù),所以自然也就非常的亢奮。感覺(jué)肩上責(zé)任之重大,那一刻起,我就決心帶領(lǐng)我們小組,奮戰(zhàn)我們的實(shí)訓(xùn)路。當(dāng)然開(kāi)始學(xué)習(xí)后也并非是想象中那樣順利,開(kāi)始的學(xué)習(xí)讓我異常感到學(xué)習(xí)任務(wù)的艱巨,因?yàn)閷W(xué)習(xí)中我們遇到了很多以前未曾遇到的難點(diǎn),有時(shí)難免冥思苦想也無(wú)濟(jì)于事,通過(guò)我們小組的積極努力協(xié)作,同時(shí)請(qǐng)教老師和其他同學(xué),我們順利的化解了一道道的障礙。 這讓我不斷的對(duì)學(xué)習(xí)技術(shù)又有了新的認(rèn)識(shí):學(xué)習(xí)中我們必須邊總結(jié)邊學(xué)習(xí),開(kāi)始階段對(duì)老師交代的任何方法和類都不要放過(guò),不管是否簡(jiǎn)單與否都要樂(lè)于地接受,因?yàn)槔蠋熆隙ㄓ兴牡览?,相信老師走過(guò)的路比我們長(zhǎng),那么其經(jīng)驗(yàn)也就肯定比我們豐富。上課時(shí)一定要專心聽(tīng)講,一個(gè)關(guān)鍵的知識(shí)點(diǎn)聽(tīng)漏了,可能會(huì)使一個(gè)人在課下花很多時(shí)間去消化,這樣也就會(huì)花掉做其他事情的大量時(shí)間,同時(shí)也使得學(xué)習(xí)不能和老師的講的課程同步,以至出現(xiàn)以后就跟不上老師講課的進(jìn)度而掉隊(duì)。所以學(xué)習(xí)中我們寧可勞其筋骨,苦其心志,惡其體膚,也不能掉隊(duì)跟不上學(xué)習(xí)進(jìn)度。 在學(xué)習(xí)的過(guò)程中也體會(huì)到,遇到問(wèn)題也要請(qǐng)教。不然的話自己一個(gè)人去做的話會(huì)花很多的時(shí)間,我在做這個(gè)在線考試的項(xiàng)目中,其中也問(wèn)到過(guò)許多問(wèn)題,通過(guò)同學(xué)的幫助 下解決了,提高了程序的開(kāi)發(fā)進(jìn)程。其他的同學(xué)有問(wèn)題的話我也是給他們盡量解決。我認(rèn)為學(xué)習(xí)知識(shí)的過(guò)程當(dāng)中就應(yīng)該是相互學(xué)習(xí)相互進(jìn)步的。 Java是面在的主流技術(shù)我會(huì)努力將它學(xué)好,現(xiàn)在我缺乏的是堅(jiān)持不懈的精神,周賢軍給了我很大的影響,我會(huì)向他學(xué)習(xí),雖然學(xué)習(xí)java的路還很找,但我會(huì)繼續(xù)走下去。 在這里,我非常感謝實(shí)訓(xùn)的指導(dǎo)老師,在老師的幫助和指導(dǎo)下,我克服了Java學(xué)習(xí)上的一道道難關(guān),課上認(rèn)真聽(tīng)講,摘好必要的筆記,并通過(guò)自己課后的不斷消化學(xué)習(xí),現(xiàn)在自己已經(jīng)基本掌握了java的基礎(chǔ)知識(shí),并等待知識(shí)的進(jìn)一步提升。 實(shí)訓(xùn)即將結(jié)束了,我非常懷念在達(dá)內(nèi)科技的實(shí)訓(xùn),在實(shí)訓(xùn)的這1個(gè)月時(shí)間里,我每一天過(guò)的都市踏實(shí)的,充實(shí)的;我相信,只要我秉持艱苦奮斗,為理想拼搏的精神,盡管在未來(lái)的java路上荊棘叢叢,我一定可以披荊斬刺,度過(guò)重重難關(guān),實(shí)現(xiàn)自己未來(lái)的理想! 姓名:聯(lián)系電話:電子郵件:學(xué)歷:專業(yè):畢業(yè)時(shí)間: Java軟件工程師試題(A卷) (滿分100分,作答時(shí)間為120分鐘) 一、單選題(每題3分,共45分) 1.以下哪個(gè)修飾符可用于定義成員常量?B A.start B.final C.abstract D.No modifier can be used 2.定義一個(gè)Java文件名字為:Sub.java,其代碼為: class Super { public int i=0; public Super(){ } public static void main(){ } } System.out.println((new Super()).i);i = 1; 這段程序的運(yùn)行結(jié)果是: B A.Compile will fail C.Compile success and print 0 3.給出如下代碼: class Test { private int m; public static void fun(){ // some code......} } B.Compile success and print 1D.Compile success and print nothing 如何使成員變量m被函數(shù)fun()直接訪問(wèn)?D A.將private int m改為protected int m c.將private int m改為int m 4.下面代碼段中,執(zhí)行之后i和j的值是什么? C int i = 1; int j; j = i++; A.1,1B.1,2C.2,15.已知如下代碼:A boolean m; if(m == false) System.out.println(“false”); else B.將private int m改為public int m D.將private int m改為static int mD.2,2 System.out.println(“true”); 執(zhí)行結(jié)果是什么? A.Compile will fail C.true B.false D.An error will occur when running 6.下面哪個(gè)語(yǔ)句是創(chuàng)建數(shù)組的錯(cuò)誤語(yǔ)句?C A.float f[][] = new float [6][6]; C.float f[][] = new float [][6]; E.float [][]f = new float [6][]; B.float []f[] = new float [6][6];D.float [][]f = new float [6][6]; 7.給出如下代碼:C String a = new String(“巨匠IT”); String b = new String(“巨匠IT”); 請(qǐng)問(wèn)上面的語(yǔ)句在內(nèi)存中分配了多少個(gè)內(nèi)存區(qū)? A.1B.2C.3D.48.給出如下代碼:D Set set = new HashSet(); set.add(“gjun”); set.add(“pcschoolchina”); set.add(“gjun”); set.add(“it”); Iterator it = set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } 上面的代碼最有可能的輸出結(jié)果是: A.gjun pcschoolchina gjun it C.it gjun pcschoolchina gjun 9.請(qǐng)看下面的代碼段: String a = “gjun”; String b = new String(“gjun”); String c = new String(“gjun”); if(a==b){ System.out.println(“true”); }else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina System.out.println(“false”); } if(a.equals(b)){ System.out.println(“true”); }else{ System.out.println(“false”); } if(c==b){ System.out.println(“true”); }else{ System.out.println(“false”); } 輸出的結(jié)果為:C A.false truetrue B.truefalse true C.false truefalse D.false false true 10.以下哪個(gè)方法用于定義線程的執(zhí)行體?C A.start()B.init()C.run() D.main()E.synchronized() 11.給出url地址為“index?page=3&category=tech”,下面哪個(gè)描述是正確的: A.通過(guò)request.getAttribute(“page”)可以獲取page的值 B.通過(guò)request.getParameter(“page”)可以獲取page的值 C.通過(guò)request.getAttribute(“page&category”)可以獲取page和category的值 D.通過(guò)request.getParameter(“page&category”)可以獲取page和category的值 12.有一個(gè)登錄的表單,其屬性有name=“l(fā)oginForm”, action=“l(fā)oginServlet”, method=“post”,下面哪個(gè)描述是正確的: A.在loginServlet中使用doPost的方法來(lái)處理表單的請(qǐng)求 B.在loginServlet中使用doGet的方法來(lái)返回表單的處理結(jié)果 C.在loginServlet中,先調(diào)用doPost的方法,然后再調(diào)用service的方法來(lái)處理表單的請(qǐng)求 D.在loginServlet中,先調(diào)用doGet的方法,然后再調(diào)用service的方法來(lái)處理表單的請(qǐng)求 13.如果需要從一個(gè)Servlet中傳遞參數(shù)username到結(jié)果的頁(yè)面,下面哪種方式是可行的: A.request.setParameter(“username”, username); B.request.setAttribute(“username”, username); C.response.setParameter(“username”, username); D.request.setAttribute(“username”, username); 14.下列哪個(gè)描述是正確的: A.EJB3.0包含Session Bean, Entity Bean和JMS B.在系統(tǒng)中,我們會(huì)使用Entity Bean來(lái)保存數(shù)據(jù)和處理業(yè)務(wù)流程 C.Session Bean分為有狀態(tài)和無(wú)狀態(tài)兩中,其中有狀態(tài)的性能更高 D.遠(yuǎn)程調(diào)用EJB組件,可以通過(guò)lookup的方式去查找JNDI名稱,獲取代理接口來(lái)調(diào)用 15.關(guān)于JUnit的描述,哪個(gè)是正確的: A.JUnit其實(shí)是一個(gè)main函數(shù) B.JUnit可以應(yīng)用于系統(tǒng)的整體測(cè)試 C.如果要測(cè)試一個(gè)方法的話可以,使用assertEquals來(lái)判定結(jié)果的正確性 D.JUnit中可以的使用@Test來(lái)修飾方法,該方法可以帶參數(shù) 二、多選題(每題3分,共45分) 16.如下哪些字符串是Java中的標(biāo)識(shí)符?AE A.fieldnameB.superC.3number 17.如下哪些是Java中有效的關(guān)鍵字?ACDE A.constB.NULLC.false D.#numberE.$numberD.thisE.native 18.在switch語(yǔ)句中,以下哪些參數(shù)類型是合法的?ABCD A.intB.ByteC.charD.byte 19.下面哪個(gè)賦值語(yǔ)句是合法的?BCD A.float a = 2.0B.double b = 2.0 E.String C.int c = 2D.long d = 2 20.已知如下的命令執(zhí)行java MyTest a b c,請(qǐng)問(wèn)哪個(gè)語(yǔ)句是正確的?CD A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”; C.args[0] = “a”;D.args[1] = “b”; 21.下面代碼執(zhí)行后的輸出是什么?ADC for(int i=0;i<3;i++){ } for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i); A.0 and 0 F.1 and 2 b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1 22.Java中如下哪個(gè)修飾符是正確的?ABE A.privateB.publicC.default 23.已知如下類的說(shuō)明: public class Test { } private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected 如下哪個(gè)代碼可以加入到下劃線中?AD A.t.f = 0;B.this.n = 1; 24.已知如下類定義: class Base { } public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3; // member methods } 如下哪句可以正確地加入子類中?CD A.private void fun(int n){} C.protected void fun(int n){} B.void fun(int n){} D.public void fun(int n){} 25.下面哪個(gè)方法可用于定義新線程類?AD A.implement the Runnable interface B.add a run()method in the class C.create an instance of ThreadD.extend the Thread class 26.下面哪個(gè)對(duì)象是JSP中內(nèi)置對(duì)象? A.contextB.request C.exceptionD.application 27.現(xiàn)在有一個(gè)登錄頁(yè)面login.jsp,提交到/LoginServlet來(lái)處理,下面哪些描述是正確的。 A.通過(guò)request.getParameter(“username”)獲取到login.jsp中的用戶名值 B.通過(guò)request.getAttribute(“username”)獲取到login.jsp中的用戶名值 C.可以在LoginSerlvet中的doPost方法中處理請(qǐng)求 D.可以在LoginSerlvet中的service方法中處理請(qǐng)求 28.在LoginServlet處理完成后,跳轉(zhuǎn)到要去到index.jsp頁(yè)面,下面那些描述是正確的。 A.response.sendRedirect(“index.jsp”); B.response.forward(“index.jsp”); C.request.getRequestDispatcher(“index.jsp”).forward(request, response); D.request.sendRedirect(“index.jsp”); 29.在Struts2.0中,Action接口默認(rèn)的result值有: A.SUCCESSB.FAILUREC.LOGIND.ERROR E.OUTPUT 30.在Hibernate3.0中,假設(shè)現(xiàn)在有個(gè)Student的對(duì)象,下面那些HQL的寫法是正確的: A.select * from StudentB.from Student C.select s from Student sD.select s from Student s where id>10 三、填空題(每題5分,共10分) 31.補(bǔ)充完整Test類的定義,使其能計(jì)算下面的數(shù)列值: F(1)= 1(n=1) F(2)= 2(n=2) F(n)= F(n-1)*n(n>3) 如: 當(dāng)n=5時(shí),f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1 結(jié)果f(5)= 1*1*3*4*5 = 60 public class Test { public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3)); } } 32.請(qǐng)看TestAnimal類的代碼: public class TestAnimal{ public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①② Dog b1 =③ Cat b2 =④ ⑤ }⑥} interface Animal { } class Dog implements Animal{ } class Cat implements Animal{ } public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run(); 請(qǐng)補(bǔ)充完整上面的代碼,使其運(yùn)行的時(shí)候得到如下結(jié)果: A dog is running now A cat is running now watching house catching mouse第三篇:達(dá)內(nèi)Java學(xué)習(xí)心得-第一個(gè)月
第四篇:達(dá)內(nèi)java暑期實(shí)訓(xùn)報(bào)告
第五篇:Java軟件工程師試題