2017年Java工程師面試題

學識都 人氣:2.41W

Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言。下面本站小編爲大家準備了關於Java工程師面試的題目,歡迎閱讀。

2017年Java工程師面試題

一、問答題(共兩題每題5分)

1、在軟件開發的形式中,有單獨開發和團隊開發,請您分析兩種開發形式的利弊?

2、除了工資還有什麼福利對你具有吸引力?

二、案例分析(共四題每題5分)

1、案例一:項目經理陳經理所在的項目組接到總監分配的一項緊急任務,要求在2天內完成A項目,陳經理馬上召集其下屬工程師小張和小黃進行工作分配並分析項目要點和各個要點的主要做法。時間已經過去了1天半,工程師小張發現,根據陳經理對項目要點的主要做法行不通,但時間已經所剩不多了。

問題一:如果你是小張,你會怎麼做?爲什麼?

問題二:由於項目做法的問題導致項目的進度無法按總監的要求在2天內完成,總監怪罪下來,你認爲這是誰的責任,爲什麼?

2、案例二:工程師小李和工程師小陳分別在同一個項目組負責軟件開發工作,他倆是同時進入公司的,而且被分配在鄰座,因此關係非常好。工程師小李最近發現小陳經常在上班時間做一些與本公司業務無關的工作,並且在一次偶然的機會讓小李發現,小陳的薪資比自己的薪資要高一倍多。

問題一:如果你是小李,你會怎麼做,爲什麼?

問題二:如果你是小陳,你發現做的事情被小李發現了,你會怎麼做,爲什麼?

技術

一、基礎題,共十題每題2分

1、GC是什麼?爲什麼要有GC?

2、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?Byte a=1,b=1,bye c=a+b有什麼錯?Short a=1,b=1,Short c=a+b有什麼錯(答對一個給0.5分)

3、Java有沒有goto?

4、數組有沒有length()這個方法? String有沒有length()這個方法?

5、Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?(答對第一句話即可得滿分,或者意思差不多的即可)

6、List, Set, Map是否繼承自Collection接口?

7、構造器Constructor是否可被override?

8、當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

9、當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的`屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞?(答對第一句即可得滿分)

10、EJB中LocalHome的作用是什麼?

二、程序測試題(共四小題每題5分)

1、談談你對以下程序的看法。

class MyString extends String{

public static int i = 0;

private char[] chars = {‘a’,’b’,’c’};

public MyString(){}

static{

tln( “i = ” + ( i++ ) );

}

public String getString(){

String s = “”;

for( char c : chars ){

s += c;

}

Return s;

}

}

2、請寫出以下程序的輸出。

class B {

private int radius = 10;

public void draw() {

tln(“(), radius = ” + radius);

}

public B() {

tln(“B constructor”);

draw();

}

}

public class A extends B {

private int radius = 1;

public void draw() {

tln(“(), radius = ” + radius);

}

public A(int radius) {

us = radius;

tln(“A constructor”);

}

public static void main(String[] args) {

A a = new A(5);

}

}

3、寫出下列程序運行結果。

public class Test {

static Test st=new Test();

static int x ;

static int y=0 ;

public Test(){

x++;

y++;

}

public Test(int x,int y){

this.x=x;

this.y=y;

}

public static Test getInstance(){ return st ;}

static{

int i=0;

tln(“i=”+i);

}

void test() {

Inner inner2 = new Inner2();

lay();

}

public static void main(String[] args) {

Test test1=nstance();

();

tln(“test1:x=” + test1.x+”;y=”+test1.y);

Test test2=new Test();

();

tln(“test2:x=” + test2.x+”;y=”+test2.y);

Test test3=new Test(0,0);

();

tln(“test3:x=” + test3.x+”;y=”+test3.y);

}

public class Inner {

int a= 1;

void display() { tln(“display: a = ” + a); }

}

public class Inner2 extends Inner {

int a=2;

void display() {tln(“display: a= ” +a); }

}

}

4、談談你對以下JavaScript函數的看法,能否提高效率?如果能請給出需要修改的地方,並講出原因。

function getFormAsString( formName ){

returnString = “”;

formElements = s[formName]ents;

for ( var i = th-1 ; i >= 0; –i ){

returnString = returnString + “&” + escape( formElements[i] ) + “=” + escape( formElements[i]e) ;

}

return returnString;

}

三、編程題(共三題,每題10分)

1、寫一個Singleton的類出來。

2、給你一組字符串如:iu7i8hy4jnb2,讓你編程輸出裏面的數字:7842

3、給你一組字符如{1,3,4,7,2,1,1,5,2},讓你輸出裏面出現次數最多且數值最大的一個,出現幾次

4、編成獲取服務器本地ip地址

四、綜合附加題(共5每題10分)

1、用Ajax寫出客戶端與服務器的簡單異步調用(假設xmlHttp已被創建可以直接調用)

2、在Oracle數據庫中有一表Table1,表中有一字段a,如何刪除表中a字段的重複數據,請使用光標與分組的辦法?

3、現在Oracle 10g中有一表

FLWINR

TCHNUM

TCHINR

TCHNAM

CALMOD

SUBFLWINR

NXTTCHNUM

760

1

C02

分配專業室

Flw1

2

(表名爲Table1,其中關鍵字爲FLWINR+TCHNUM+NXTTCHNUM)第一行是表的所有屬性,第二行是其中的一條記錄,當然假設該表有很多數據。要求把條件”FLWINR=’760′”的查詢結果複製到新表中,該新表結構同Table1,命名爲Table1_COPY。請用一句sql語句寫出來。

4、假設web服務器是Weblogic有以下的ejb代碼及配置文件:

package ;

import teException;

import te;

import .*;

public interface Hello extends EJBObject, Remote {

//this method just get “Hello EJB” from HelloEJB.

public String getHello() throws RemoteException;

}

package ;

import .*;

import te;

import teException;

import .*;

/**

* This interface is extremely simple it declares only

* one create method.

*/

public interface HelloHome extends EJBHome {

public Hello create() throws CreateException, RemoteException;

}

package ;

import .*;

public class HelloEJB implements SessionBean{

public void ejbCreate(){}

public void ejbRemove(){}

public void ejbActivate(){}

public void ejbPassivate(){}

public void setSessionContext(SessionContext ctx){}

public String getHello() {

return new String(“Hello,EJB”);

}

}

Hello

oHome

o

oEJB

Stateless

Container

Hello

Hello

HelloLocal

要求寫一個Java Client中調用HelloBean的類。