- 相關(guān)推薦
java實(shí)習(xí)生面試技巧三篇
篇一:實(shí)習(xí)生java面試題集及詳細(xì)答案
1.Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。
Java語(yǔ)言提供了八種基本類型:
六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型)
字節(jié)型byte 8位 短整型short 16位 整型int 32位
長(zhǎng)整型long 64位 單精度f(wàn)loat 32位 雙精度double 64位
一種字符類型
字符型char 8位
還有一種布爾型
布爾型:boolean 8位 可存儲(chǔ)"True"和"false"。
String本身就是一個(gè)對(duì)象而不是基本數(shù)據(jù)類型,String的變量名是對(duì)String類的引用。
2.字符串的操作:
寫(xiě)一個(gè)方法,實(shí)現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
寫(xiě)一個(gè)方法,實(shí)現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。 String s = "bbbwlirbbb";
s.replaceAll("wlirbbb","hhtccc");
3.數(shù)據(jù)類型之間的轉(zhuǎn)換
如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)
使用Integer.parseInt()和Double.parseDouble()方法。
如何將數(shù)字轉(zhuǎn)換為字符
class my
{
int a=12;
Label label=new Label();
label.setText(String.valueOf(a));
}
如何取小數(shù)點(diǎn)前兩位,并四舍五入。
System.out.println("四舍五入取整:(3.856)="
+ new BigDecimal(i).setScale(2, BigDecimal.ROUND_HALF_UP));
4.日期和時(shí)間
如何取得年月日,小時(shí)分秒
Date dat=new Date();
dat.getYear(); dat.getMonth(); dat.getDay(); dat.getHours(); dat.getMinutes(); dat.getSeconds();
如何取得從1970年到現(xiàn)在的毫秒數(shù)
long now=dat.getTime();
如何獲取某個(gè)日期是當(dāng)月的最后一天
DateFormate df=DateFormate.getInstance();df.Format(dat);
如何格式化日期
DateFormate df=DateFormate.getInstance();
df.Format(dat);
5.數(shù)組和集合
數(shù)組與集合的區(qū)別:一:數(shù)組聲明了它容納的元素的類型,而集合不聲明。這是由于集合以object形式來(lái)存儲(chǔ)它們的元素。二:一個(gè)數(shù)組實(shí)例具有固定的大小,不能伸縮。集合則可根據(jù)需要?jiǎng)討B(tài)改變大小。三:數(shù)組是一種可讀/可寫(xiě)數(shù)據(jù)結(jié)構(gòu)沒(méi)有辦法創(chuàng)建一個(gè)只讀數(shù)組。然而可以使用集合提供的ReadOnly方 只讀方式來(lái)使用集合。該方法將返回一個(gè)集合的只讀版本。
6.文件和目錄(I/O)操作
如何列出某個(gè)目錄下的所有文件
如何列出某個(gè)目錄下的所有子目錄
判斷一個(gè)文件或目錄是否存在
如何讀寫(xiě)文件
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class FileOpreate {
public static void main(String [] args)
{
FileOpreate fo=new FileOpreate();
try
{
//文件的寫(xiě)入
/*String[] testStr=new String[50];
for(int i=0;i<testStr.length;i++)
{
testStr[i]="我的測(cè)試數(shù)據(jù)00"+i;
}
fo.writeFile("D:\","test.txt",testStr);
*/
//文件的寫(xiě)入
/*String str="測(cè)試";
fo.writeFile("D:\","test001.txt",str);*/
//創(chuàng)建或者刪除文件
/*if(fo.createAndDeleteFile("D:\","test001.txt"))
{
fo.createAndDeleteFile("D:\","test002.txt");
}*/
//創(chuàng)建或者刪除文件夾
/*fo.createAndDeleteFolder("D:\","2009-07-06");*/
//輸出一個(gè)文件內(nèi)的文件名稱
/*fo.readFolderByFile("D:\");*/
//判斷一個(gè)文件是否是空的
/*fo.fileIsNull("D:\","test002.txt");*/
//讀取全部的文件內(nèi)容
/*fo.readAllFile("D:\","test.txt");*/
//一行一行讀取文件內(nèi)容
fo.readLineFile("D:\","test.txt");
}
catch(Exception e)
{
e.printStackTrace();
}
}
7.Java多態(tài)的實(shí)現(xiàn)(繼承、重載、覆蓋)
多態(tài)可分為:
1)編譯多態(tài):主要是體現(xiàn)在重載,系統(tǒng)在編譯時(shí)就能確定調(diào)用重載函數(shù)的哪個(gè)版本。
2)運(yùn)行多態(tài):主要體現(xiàn)在OO設(shè)計(jì)的繼承性上,子類的對(duì)象也是父類的對(duì)象,即上溯造型,所以子類對(duì)象可以作為父類對(duì)象使用,父類的對(duì)象變量可以指向子類對(duì)象。因此通過(guò)一個(gè)父類發(fā)出的方法調(diào)用可能執(zhí)行的是方法在父類中的實(shí)現(xiàn),也可能是某個(gè)子類中的實(shí)現(xiàn),它是由運(yùn)行時(shí)刻具體的對(duì)象類型決定的。
8.編碼轉(zhuǎn)換,怎樣實(shí)現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String str = new String("字符串".getBytes("GB2312"),"ISO-8859-1");
9.使用StringBuffer類與String類進(jìn)行字符串連接時(shí)有何區(qū)別?
JAVA平臺(tái)提供了兩個(gè)類:String和StringBuffer,它們可以儲(chǔ)存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)。這個(gè)String類提供了數(shù)值不可改變的字符串。而這個(gè)StringBuffer類提供的字符串進(jìn)行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來(lái)動(dòng)態(tài)構(gòu)造字符數(shù)據(jù)。
10.談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。 finally是異常處理語(yǔ)句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
11.String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?
兩個(gè),一個(gè)是string s,另一個(gè)是”xyz”。
12.Java有沒(méi)有g(shù)oto?
goto是java中的保留字,現(xiàn)在沒(méi)有在java中使用。
13.數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?
數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個(gè)方法。
14.Overload和Override的區(qū)別。
override(重寫(xiě))
1)方法名、參數(shù)、返回值相同。
2)子類方法不能縮小父類方法的訪問(wèn)權(quán)限。
3)子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。
4)存在于父類和子類之間。
5)方法被定義為final不能被重寫(xiě)。
overload(重載)
1)參數(shù)類型、個(gè)數(shù)、順序至少有一個(gè)不相同。
2)不能重載只有返回值不同的方法名。
3)存在于父類和子類、同類中。
15.abstract class和interface有什么區(qū)別?
Interface只能有成員常量,只能是方法的聲明;
而abstract class可以有成員變量,可以聲明普通方法和抽象方法。
聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過(guò)實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒(méi)有一個(gè)有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來(lái)決定某對(duì)象的類是否實(shí)現(xiàn)了接口。
16.是否可以繼承String類?
String類是final類故不可以繼承。
17.面向?qū)ο蟮奶卣饔心男┓矫?
1)抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問(wèn)題,而只是選擇其中的一部分,暫時(shí)不用部分細(xì)節(jié)。抽象包括兩個(gè)方面,一是過(guò)程抽象,二是數(shù)據(jù)抽象。
2)繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過(guò)程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。
派生類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
3)封裝:封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只能通過(guò)已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對(duì)象,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪問(wèn)其他對(duì)象。
4) 多態(tài)性:多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢(shì),很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題。
18.int 和 Integer 有什么區(qū)別?
Java 提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。
Int是java的原始數(shù)據(jù)類型,
Integer是java為int提供的封裝類。
Java為每個(gè)原始類型提供了封裝類。
原始類型封裝類booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
引用類型和原始類型的行為完全不同,并且它們具有不同的語(yǔ)義。引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問(wèn)題,這種類型以哪種類型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),當(dāng)引用類型和原始類型用作某個(gè)類的實(shí)例數(shù)據(jù)時(shí)所指定的缺省值。對(duì)象引用實(shí)例變量的缺省值為 null,而原始類型實(shí)例變量的缺省值與它們的類型有關(guān)。
19.作用域public,private,protected,以及不寫(xiě)時(shí)的區(qū)別?
20.用java寫(xiě)一個(gè)冒泡排序。
/**
* 對(duì)int數(shù)組進(jìn)行升序排序
*
* @param intVal:要排序的數(shù)組
* @param asc:值為true,表示升序排序;傳入值為false,表示降序排序
* @return 返回排序后的int數(shù)組
*/
public static int[] intArraySort(int [] intVal,boolean asc){
int [] vals=intVal;
int temp;
if(vals.length>0){
if(asc==true){
for(int i=0;i<=vals.length-2;i++){
for(int j=0;j<vals.length-i-1;j++){
if(vals[j]>vals[j+1]){
//升序排列
篇二:java實(shí)習(xí)生試題
JAVA測(cè)試題
答案寫(xiě)答題紙上
一、選擇題:
1. 以下定義一維數(shù)組的語(yǔ)句中,正確的是: C
A. int a[5]
B. int a[]=new [5];
C. int a[];
int a=new int[5];
D. int a[]={1,2,3,4,5};
2. 假定一個(gè)類的構(gòu)造方法為 “ A(int aa, int bb) { a=aa; b=aa*bb; } ”,則執(zhí)行“ A x = new A(4,5); ” 語(yǔ)句后,x.a 和x.b的值分別是:C
A. 4 和5 B. 5和4 C .4和20 D. 20和5
3. 對(duì)于任意一個(gè)類,用戶所能定義的構(gòu)造方法的個(gè)數(shù)至多為 D
A.0個(gè) B.1個(gè) C.2個(gè) D.任意個(gè)
4. 假設(shè)類A有構(gòu)造方法A(int a),則在類A的其他構(gòu)造方法中調(diào)用該構(gòu)造方法的語(yǔ)句格式應(yīng)為 D
A. A(x)
B. this. A(x)
C. this(x)
D. super(x)
5.關(guān)于實(shí)例方法和類方法,以下描述正確的是:B
A. 實(shí)例方法只能訪問(wèn)實(shí)例變量
B. 類方法既可以訪問(wèn)類變量,也可以訪問(wèn)實(shí)例變量
C. 類方法只能通過(guò)類名來(lái)調(diào)用
D. 實(shí)例方法只能通過(guò)對(duì)象來(lái)調(diào)用
6.接口是Java面向?qū)ο蟮膶?shí)現(xiàn)機(jī)制之一,以下說(shuō)法正確的是:B
A. Java支持多重繼承,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;
B. Java只支持單重繼承,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;
C. Java只支持單重繼承,一個(gè)類只可以實(shí)現(xiàn)一個(gè)接口;
D. Java支持多重繼承,但一個(gè)類只可以實(shí)現(xiàn)一個(gè)接口。
7. 關(guān)于接口的定義和實(shí)現(xiàn),以下描述正確的是: A
A. 接口定義中的方法都只有定義沒(méi)有實(shí)現(xiàn)
B. 接口定義中的變量都必須寫(xiě)明final和static
C. 如果一個(gè)接口由多個(gè)類來(lái)實(shí)現(xiàn),則這些類在實(shí)現(xiàn)該接口中的方法時(shí)應(yīng)采用統(tǒng)一的代碼
D. 如果一個(gè)類實(shí)現(xiàn)一個(gè)接口,則必須實(shí)現(xiàn)該接口中的所有方法,但方法未必聲明為public.
8. 在 Java的異常處理語(yǔ)句try-catch-final 中,以下描述正確的是:
A. try后面是可能產(chǎn)生異常的代碼,catch后面是捕獲到某種異常對(duì)象時(shí)進(jìn)行處理的代碼,final后面是沒(méi)有捕獲到異常時(shí)要執(zhí)行的代碼
B. try后面是可能產(chǎn)生異常的代碼,catch后面是捕獲到某種異常對(duì)象時(shí)進(jìn)行處理的代碼,final后面是無(wú)論是否捕獲到異常都必須執(zhí)行的代碼
C. catch 語(yǔ)句和final語(yǔ)句都可以缺省
D. catch 語(yǔ)句用來(lái)處理程序運(yùn)行時(shí)的非致命性錯(cuò)誤,而final語(yǔ)句用來(lái)處理程序運(yùn)行時(shí)的致命性錯(cuò)誤
9下列關(guān)于繼承的說(shuō)法哪個(gè)是正確的? A
A.子類只繼承父類public方法和屬性;
B.子類繼承父類的非私有屬性和方法;
C.子類只繼承父類的方法,而不繼承父類的屬性;’
D.子類將繼承父類的所有的屬性和方法。
10.下列關(guān)于抽象類的說(shuō)法四個(gè)是正確的?
A.某個(gè)抽象類的父類是抽象類,則達(dá)個(gè)子類必須里載父類的所有抽象方法;
B.接口和抽象類是同一回事;
C.絕對(duì)不能用抽象類去創(chuàng)建對(duì)象;
D.抽象類中不可以有非抽象方法。
二、問(wèn)答題
1:談?wù)刦inal, finally, finalize的區(qū)別。
2:Overload和Override的區(qū)別。
3:abstract class和interface有什么區(qū)別?
4:sleep() 和 wait() 有什么區(qū)別?
5:jsp有哪些內(nèi)置對(duì)象?作用分別是什么?
6:jsp有哪些動(dòng)作?作用分別是什么?
7:JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
8:SERVLET 中forward() 與redirect()的區(qū)別?
三、編程題:
1:編程題: 寫(xiě)一個(gè)Singleton出來(lái)。
2:寫(xiě)一段程序用遞歸計(jì)算n!
3:寫(xiě)一段程序?qū)崿F(xiàn)給一個(gè)字符串按字符的反排列打印顯示。
篇三:java工程師筆試題(包含實(shí)習(xí)生、高級(jí)工程師)
筆試題
1.abstract class和interface的區(qū)別?
2.try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
3.int 和 Integer 有什么區(qū)別?
4.說(shuō)出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性?
5.描述一下JVM加載class文件的原理機(jī)制?
6.STRING與STRINGBUFFER的區(qū)別?
7.List、Map、Set三個(gè)接口,存取元素時(shí),各有什么特點(diǎn)?
8.談?wù)刦inal, finally, finalize的區(qū)別
9.sleep() 和 wait() 有什么區(qū)別?
10.GC是什么? 為什么要有GC?
11.jsp:include,jsp:forward兩種跳轉(zhuǎn)方式分別是什么?有什么區(qū)別?
12.簡(jiǎn)述JSP的內(nèi)置對(duì)象及方法。
13.Servlet的基本架構(gòu)?
14.getServletContext()和getServletConfig()的意思
15.filter 的作用是什么?主要實(shí)現(xiàn)什么方法?request 和 response全稱是什么?
16.JS中的三種彈出式消息提醒(警告窗口、確認(rèn)窗口、信息輸入窗口)的命令是什么?
17.談?wù)刯avascript數(shù)組排序方法sort()的使用,重點(diǎn)介紹sort()參數(shù)的使用及其內(nèi)部機(jī)制
18.結(jié)合text這段結(jié)構(gòu),談?wù)刬nnerHTML outerHTML innerText之間的區(qū)別。
19.如何獲取表單select域的選擇部分的文本?
20.在JavaScript中定時(shí)調(diào)用函數(shù) foo() 如何寫(xiě)?
21.hibernate和jdbc有什么區(qū)別
22.描述使用JDBC連接數(shù)據(jù)庫(kù)的過(guò)程
23.簡(jiǎn)述JDBC連接池的實(shí)現(xiàn)方法
24.Jdo是什么?
25.Class.forName的作用?為什么要用?
26.請(qǐng)教一個(gè)面試中遇到的SQL語(yǔ)句的查詢問(wèn)題
表中有A B C三列,用SQL語(yǔ)句實(shí)現(xiàn):當(dāng)A列大于B列時(shí)選擇A列否則選擇B列,當(dāng)B列大于C列時(shí)選擇B列否則選擇C列。
27.一個(gè)日期判斷的sql語(yǔ)句?
請(qǐng)取出tb_send表中日期(SendTime字段)為當(dāng)天的所有記錄?(SendTime字段為datetime型,包含日期與時(shí)間)
28.用一條SQL語(yǔ)句 查詢出每門課都大于80分的學(xué)生姓名
name kecheng fenshu
張三 語(yǔ)文 81
張三 數(shù)學(xué) 75
李四 語(yǔ)文 76
李四 數(shù)學(xué) 90
王五 語(yǔ)文 81
王五 數(shù)學(xué) 100
王五 英語(yǔ) 90
29.復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a 新表名:b)
30.拷貝表(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b)
31.原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
為了便于閱讀,查詢此表后的結(jié)果顯式如下(及格分?jǐn)?shù)為60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
寫(xiě)出此查詢語(yǔ)句
篇四:JAVA實(shí)習(xí)生問(wèn)題
JAVA實(shí)習(xí)生問(wèn)題:
1.我班只招三人。 2.實(shí)習(xí)從現(xiàn)在開(kāi)始,至于結(jié)束,暫時(shí)沒(méi)有時(shí)間限制,因?yàn)楣卷?xiàng)目較多,缺乏人手,項(xiàng)目周期長(zhǎng)。 聽(tīng)他們說(shuō)他們現(xiàn)在接了一個(gè)安徽省的云平臺(tái)項(xiàng)目,這個(gè)就夠他們忙的了。 如果最后你們能夠成長(zhǎng)起來(lái),并且愿意留下來(lái),他們也很高興,也就相當(dāng)于培養(yǎng)自己的員工。
3.工作內(nèi)容:項(xiàng)目組帶著做項(xiàng)目。 相當(dāng)于一邊學(xué)習(xí)一邊動(dòng)手做。 所以興趣很重要,如果很有興趣,具有一定的分析問(wèn)題解決問(wèn)題的能力,遇到問(wèn)題,則是自己積極想辦法解決,而且覺(jué)得很有成就感,在有興趣的前提下,跟著項(xiàng)目組做項(xiàng)目也是學(xué)的最快的;但是如果興趣并不是很大,那么就變成了壓力、痛苦和無(wú)聊。
4.此次公司招實(shí)習(xí)生,對(duì)基礎(chǔ)沒(méi)什么要求(只要學(xué)過(guò)java就行),重要的是興趣。 如果動(dòng)手能力、自學(xué)能力較強(qiáng),具有較強(qiáng)的分析問(wèn)題、解決問(wèn)題的能力,即使基礎(chǔ)不是很好,也應(yīng)該問(wèn)題不大。 有興趣,遇到問(wèn)題就不會(huì)覺(jué)得難,而是自己積極的想辦法去解決。
5.對(duì)于女生來(lái)說(shuō),需要考慮的更多一些,比如安全問(wèn)題,畢竟是在校外實(shí)習(xí)。 這些問(wèn)題你們自己要考慮到,也都是要讓你們自己負(fù)責(zé)的。要慎重,自己考慮清楚。
6.公司招實(shí)習(xí)生的目的是幫著項(xiàng)目組做項(xiàng)目。 不是很想干的,最好別去。
7.工作有兩個(gè)方向,軟件開(kāi)發(fā)or系統(tǒng)集成,方向自己選,看你們對(duì)哪一塊感興趣。 如果基礎(chǔ)好一點(diǎn),項(xiàng)目組就帶著你們做;如果基礎(chǔ)薄弱,不光帶著做,還會(huì)有培訓(xùn)。 實(shí)際上帶著做項(xiàng)目,是學(xué)的最快的,但是前提是有興趣。 至于具體做什么,要看是什么項(xiàng)目,是項(xiàng)目中的哪一部分。
篇五:Java項(xiàng)目經(jīng)理的面試經(jīng)驗(yàn)之談
最近我們公司要招的人比較多,每天都要面上兩三個(gè)人,從剛實(shí)習(xí)完的到工作了幾年的都有。
我是個(gè)不愛(ài)照搬考題面試的人,就喜歡直接聊到哪算哪,一般過(guò)程是這樣的:
1、先介紹下過(guò)去做過(guò)的項(xiàng)目,負(fù)責(zé)哪些模塊。
這塊一般會(huì)被當(dāng)成開(kāi)場(chǎng)白,因?yàn)榉悍航榻B一下以后通常還會(huì)深入探討細(xì)節(jié)。不過(guò)有一個(gè)人例外,他直接在這個(gè)階段就打動(dòng)我了。
他當(dāng)時(shí)除了介紹他的項(xiàng)目和模塊是干嘛的,還拿張紙給我畫(huà)了他們的代碼業(yè)務(wù)流程圖,從哪個(gè)模塊調(diào)用哪個(gè)模塊,哪個(gè)系統(tǒng)調(diào)用哪個(gè)系統(tǒng),先做什么再做什么,還包括了如果哪步出問(wèn)題,他們是怎么處理的,有條有理,思維嚴(yán)謹(jǐn),雖然沒(méi)有涉及什么高級(jí)技術(shù),我當(dāng)時(shí)就下定決心這個(gè)人要了。后來(lái)入職的半個(gè)月也充分證明了這是我最正確的選擇之一,他總能提前干完還一直纏著問(wèn)還有沒(méi)有活干了,比很多老員工效率要高。
2、介紹完畢,我通常會(huì)先就對(duì)方的項(xiàng)目介紹問(wèn)清楚項(xiàng)目的來(lái)龍去脈,這個(gè)項(xiàng)目是些什么人在用,有哪些角色,每種角色能干什么事情。
這個(gè)階段就有人被淘汰了,有的人表達(dá)得結(jié)結(jié)巴巴,不懂如何描述,或者前后不連貫,想到哪算哪,最后對(duì)他的項(xiàng)目干嘛用的還是一頭霧水。感覺(jué)就是個(gè)照貓畫(huà)虎干死活的,我肯定這樣的人和產(chǎn)品需求人員溝通一定會(huì)出大問(wèn)題,誤會(huì)和返工少不了,因?yàn)樗麤](méi)法表達(dá)清楚他做的項(xiàng)目的業(yè)務(wù)。
3、開(kāi)始就他用過(guò)的主流框架問(wèn)些細(xì)節(jié)。
一般先問(wèn)持久層,不外乎是hibernate mybatis或者jdbc,用jdbc的,先來(lái)解釋下他們是怎么開(kāi)啟事務(wù)的,統(tǒng)一配好就不管了呢,還是會(huì)按需調(diào)整事務(wù)的特性。工作幾年的我一般不再問(wèn)事務(wù)有什么意義,一年以下的我會(huì)問(wèn)事務(wù)有什么用,沒(méi)有會(huì)怎么樣。結(jié)果令我很意外,那些做了半年多項(xiàng)目的實(shí)習(xí)生們,只有一個(gè)人答對(duì)了,事務(wù)能保證一致性,出錯(cuò)會(huì)回滾,其他人都是些什么能讓條理更清晰啊,性能更好啊......少年們,事務(wù)對(duì)于使用數(shù)據(jù)庫(kù)的意義就像鹽對(duì)于炒菜一樣重要好不好,做為一個(gè)做了大半年增刪改查項(xiàng)目的人,請(qǐng)不要老拿:我們就是做功能的,原理不清楚來(lái)應(yīng)付。弄懂事務(wù)的意義10分鐘就可以了吧。
當(dāng)然也有人記得那個(gè)經(jīng)典的銀行轉(zhuǎn)帳的例子來(lái)講事務(wù)的作用,我很刁難地問(wèn)了一個(gè):如果出帳的帳戶和入帳的帳戶不在一個(gè)數(shù)據(jù)庫(kù)里怎么辦?然后就沒(méi)有然后了
然后我會(huì)問(wèn)的一般還有,事務(wù)開(kāi)啟了,有什么辦法在事務(wù)過(guò)程中,出了異常也不回滾數(shù)據(jù)庫(kù)操作。這個(gè)問(wèn)題答不上來(lái)也沒(méi)關(guān)系,因?yàn)樾枰@么干的時(shí)候不多,在分布式系統(tǒng)里可能會(huì)有這種需要。我主要是觀察對(duì)方的反應(yīng),我最欣賞不知道的反應(yīng)是立即請(qǐng)教怎么樣能做到,最討厭的反應(yīng)是說(shuō)不會(huì)有這種需要的,臉上帶著
一副懂這有什么用的不屑。
hibernate可問(wèn)的問(wèn)題還挺多的,但我不會(huì)問(wèn)些什么save和saveOrUpdate有什么區(qū)別,我覺(jué)得這真是八股,一共就兩方法,一個(gè)保存不了換一個(gè)試試就解決了,百度都不需要。我更想問(wèn),怎么樣在代碼中動(dòng)態(tài)控制延時(shí)加載的效果,怎么樣用hibernate實(shí)現(xiàn)只查一張表的部分字段而不是整個(gè)表get出來(lái),這些對(duì)開(kāi)發(fā)質(zhì)量更有實(shí)在意義。
其他的問(wèn)題也不一一描述了。
4、三大框架的高級(jí)用法我不會(huì)怎么問(wèn),我不需要你深入研究透這個(gè)框架,當(dāng)然如果你真的研究透了絕對(duì)加分。我更希望你用得清晰,用得明明白白,而不只是“別人這么用的我也就這么照抄了”。
比如對(duì)于初級(jí)開(kāi)發(fā)人員我有個(gè)喜歡問(wèn)的很簡(jiǎn)單的問(wèn)題是,你從你的控制層,調(diào)service層的一個(gè)保存數(shù)據(jù)的方法時(shí),service一般會(huì)返回什么類型的值。有的人回答boolean,有的人回答String,boolean的我會(huì)追問(wèn)那如何獲得保存后的數(shù)據(jù)庫(kù)記錄主鍵,String的會(huì)追問(wèn)保存失敗以后應(yīng)該返回什么。這個(gè)問(wèn)題確實(shí)太簡(jiǎn)單了,做法很多,但是我想看的是對(duì)方的思考方式是否有條理,合理,而不是逮著什么方便就怎么寫(xiě)。有的新手會(huì)對(duì)著自己的代碼想,這樣寫(xiě)好嗎,換個(gè)寫(xiě)法是不是更優(yōu)雅合理,有的人卻是能實(shí)現(xiàn)就行了,讓他想想其中的道理時(shí),就真的一頭霧水。
這個(gè)問(wèn)題我最討厭的回答是:太久了,已經(jīng)忘了。這你都能忘你還能記得什么!你的項(xiàng)目真的是你做的么?
最喜歡的回答:我們封裝了一個(gè)返回結(jié)果的基本類,里面有一些處理結(jié)果標(biāo)識(shí)和通用的異常定義,不同的方法會(huì)返回不同的子類,子類中定義了調(diào)用端所需的各種信息對(duì)象DTO。沒(méi)有人類似這么答過(guò),我自己YY而已。
5、接下來(lái)是知識(shí)廣度,從緩存到集群到分布式調(diào)用,nosql,MQ隊(duì)列,maven、svn,看他們對(duì)這些技術(shù)了解多少,也許因?yàn)轫?xiàng)目經(jīng)歷所限,你沒(méi)機(jī)會(huì)用過(guò)這些技術(shù),但是隨便上一些技術(shù)網(wǎng)站,都能了解到現(xiàn)在流行什么,這些技術(shù)是為了解決什么問(wèn)題存在的,你看這些技術(shù)也說(shuō)明你注意到了一些問(wèn)題的存在。視野開(kāi)闊的人,說(shuō)明他的求知欲強(qiáng)。也許應(yīng)聘者很多關(guān)于各種技術(shù)的回答是錯(cuò)的,但是我能看出來(lái)他是想過(guò)還是沒(méi)想過(guò),是有自己的一套認(rèn)知還是胡說(shuō)八道。你說(shuō)錯(cuò)沒(méi)關(guān)系,我們團(tuán)隊(duì)里有懂的人,他以后會(huì)給你把觀點(diǎn)改正過(guò)來(lái),但是想都沒(méi)想過(guò),差距就顯而易見(jiàn)。
我隔壁辦公室的一個(gè)項(xiàng)目經(jīng)理招人的時(shí)候和我最大的差別就在這,他要那些盡可能答得正確的,懂得多的,有經(jīng)驗(yàn)的,因?yàn)樗麄儓F(tuán)隊(duì)沒(méi)有架構(gòu)師,全靠程序員的知識(shí)準(zhǔn)確性保證質(zhì)量,他得依賴招來(lái)的人的知識(shí)準(zhǔn)確度。我不缺解決問(wèn)題的人,尤其不缺依靠搜索引擎就能解決問(wèn)題的人,我只要你能夠思考問(wèn)題就行。
接下來(lái)說(shuō)說(shuō)我對(duì)各層次的人的印象,我這里是杭州。
新手:在公司呆過(guò)半年以上,做過(guò)一兩個(gè)簡(jiǎn)單項(xiàng)目。
這類有好多都是只會(huì)簡(jiǎn)單增刪改查,框架細(xì)節(jié)不知,java基礎(chǔ)的集合也了解甚少,只會(huì)用用最常見(jiàn)的兩三個(gè),甚至有一半以上說(shuō)不清request和session的區(qū)別,還有事務(wù)的作用。
工作兩三年的:分化嚴(yán)重,有的思維很清晰,知道自己的發(fā)展瓶頸,渴望有更好的項(xiàng)目鍛煉。有的日復(fù)一日,年復(fù)一年,毫無(wú)進(jìn)步,就是一只井底之蛙,熟練地用著自己的三板斧,稍微變化一下跳出熟悉的條條框框,就迷茫了。
研究生:這個(gè)有點(diǎn)特別,我一共遇到兩個(gè),差別截然相反,他們都還沒(méi)畢業(yè),一個(gè)對(duì)互聯(lián)網(wǎng)大型分布式系統(tǒng)已經(jīng)很了解,看得出來(lái)不但有項(xiàng)目經(jīng)驗(yàn)還基礎(chǔ)扎實(shí),抵得上工作兩三年的人,而且有好機(jī)會(huì),在大公司實(shí)習(xí)過(guò),并且表現(xiàn)不錯(cuò),還想有更好的選擇。另一個(gè)就停留在很初級(jí)的階段,只能做最簡(jiǎn)單的增刪改查,還是在讀研途中報(bào)的培訓(xùn)學(xué)的,雖然就培訓(xùn)生的水準(zhǔn)來(lái)說(shuō),他學(xué)得相當(dāng)不錯(cuò),原理常識(shí)也基本都懂得,只可惜自我定位不對(duì),要價(jià)高得離譜,放棄。
老手:一般三五年以上,有的也是日復(fù)一日年復(fù)一年,還不如要一兩年的。有的就懂得相當(dāng)多,興趣已經(jīng)從如何實(shí)現(xiàn)需求有所轉(zhuǎn)移,比如如何管理技術(shù)團(tuán)隊(duì),如何提高開(kāi)發(fā)效率,提高代碼質(zhì)量。
最后我得補(bǔ)充,我的面試方式不一定具有通用參考價(jià)值,面試官都是各具個(gè)性的,有時(shí)我眼中欣賞的東西換個(gè)地方不一定會(huì)被欣賞,我不喜歡的可能有人會(huì)喜歡,最重要的,還是自身技術(shù)過(guò)硬,眼界開(kāi)闊,思維表達(dá)清晰吧。
最后的最后我得說(shuō):我們公司招聘已經(jīng)滿員了,不用求報(bào)名。
【java實(shí)習(xí)生面試技巧】相關(guān)文章:
實(shí)習(xí)生面試技巧11-04
大學(xué)實(shí)習(xí)生面試技巧有哪些09-25
java面試簡(jiǎn)答試題09-25
面試的技巧02-10
面試的技巧09-25
java線程面試試題09-25
java面試自我介紹10-17
java面試的自我介紹04-09
Java面試問(wèn)題及答案09-26