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