天天看點

java程式員面試題_JAVA程式員面試題

2015-06-24 06:30:01

閱讀( 88 )

1、資料庫

表a和表b具有完全相同的結構,主鍵為indexid。寫出一個sql語句把表b中不存在而表a中存在的資料插入到表b中。

2、javascript部分

頁面中有一個名稱都為unitprice的type=text對象。要求輸入的資料不能為空,寫一個函數實作該功能,如果為空時給出提示。

3、JSP部分

①session中存儲一個String變量,變量名稱為studentname,寫出在jsp中如何得到這個session變量的值的語句。

②在jsp中引用使用來引用javabean.

Ⅰscope的值有哪些,這些值的差別是什麼?

Ⅱ不同的jsp頁面中引用javabean時,id能否相同,如果能相同,對scope的值有什麼要求?

4、JAVA部分

①輸入一個維數,輸出以下形式的矩陣和數列,以維數n=4為例:

0000

0111

0122

0123

②寫出下面這段程式的運作結果

int   a=2,b=3,c=1

a+=–b+c;

c-=b+a++;

System.out.println(“a=”+a+”,b=”+b+”,c=”+c);

5、有一個Vector對象,其中每一個元素都是一個String對象,請用for循環或while循環輸出Vector中的元素,要求格式為:”第i個元素為:aaa”

6、有一個HashMap其中key為String對象,value為Integer對象,寫一個方法列印出此Map中的所有鍵值   對形如   key–value

7、有一個String   str=”001,A001;002,A002;003,A003″的串,寫一個方法,把此串存入列   一個HashMap或Hashtable中,說明:如001為key,A001則為value。

8、面向對象概念:

①面向對象基本特征

②什麼叫多态和重載,它們有什麼差別?

③用你自己的話描述你了解的j2ee的本質特征是什麼?

第一題:  寫一個方法,實作删除連結清單中某個節點的操作(其他條件自己假設,補充)

public void delete()

{

if(front>=rear)

{

s[front] =0;

front–;

System.out.println(“\ndelete successful”);

}

else

{

System.out.println(“the link is empty ,can’t delete”);

}

}

第二題:  寫一個方法,實作堆棧的入棧操作 (其他條件自己假設,補充)

public class stack{

private int[] s;

int top,bottom;

public stack(int size){

s = new int[size];

top = size-1;

bottom = size-1;

System.out.println(“Size of the stack is:”+size);

}

public boolean isEmpty()

{

if(top==s.length-1)

return true;

else

return false;

}

public void push(int n)

{

if(top<0)

{

System.out.println(“The stack is full now,you can’t push your data!”);

return;

}

else

{

s[top] = n;

top–;

return ;

}

}

public void pop()

{

if(top>=s.length-1)

{

System.out.println(“The stack is empty,Can’t pop now!”);

return;

}

else

{

top++;

}

}

public void print()

{

System.out.println(“State of the stack:”);

for(int i=s.length-1;i>top;i–)

{

System.out.print(s[i]+”  ”);

}

}

public static void main(String[] a)

{

stack st = new stack(5);

System.out.println(“List of the action to the stack:”);

System.out.println(“push(3):”);

st.push(3);

st.print();

System.out.println(”  ”);

System.out.println(“push(6)”);

st.push(6);

st.print();

System.out.println(”  ”);

System.out.println(“push(10)”);

st.push(10);

st.print();

System.out.println(”  ”);

System.out.println(“pop()”);

st.pop();

st.print();

System.out.println(”  ”);

}

}

第三題: 使用任意排序算法,寫一個排序示例程式

import java.io.*;

class SelectionSort{

public static void main(String[] args){

int[] a={4,54,8,7,6,98,42,};

sort(a);

for(int i=0;i

System.out.print(a[i]+”   “);

}

System.out.println(“”);

}

static void sort(int[] data){

int next, indexOfNext=0,n;

for (next=0;next

{

indexOfNext=min(data,next,(data.length)-1);

swap(data,indexOfNext,next);

}

}

static int min(int[] data,int start,int end){

int indexOfMin=start;

for (int i=start+1;i<=end;i++)

if(data[i]

indexOfMin=i;

return indexOfMin;

}

static void swap(int[] data,int first,int second){

int temp;

temp=data[first];

data[first]=data[second];

data[second]=temp;

}

}

第四題:

編寫一個servlet,把servlet源碼和此servlet在伺服器上的配置檔案web.xml作為附件發送到指定的郵箱

servlet的功能要求:記錄通路該servlet的用戶端的ip和通路時間,把記錄寫入client_ip.log檔案。 client_ip.log裡的格式大緻如下:

9:36 2005-4-8 192.168.0.1

9:36 2005-4-8 127.0.0.1

擷取客戶的IP位址

第五題

資料庫中有兩個表tableA和tableB,他們都有一個int型的字段id,請寫出一個sql語句,實作查詢id在tableA中有,而tableB中沒有的記錄

例如tableA中有如下記錄

—————————-

tableA.id tableA.name

3  Mary

4  Jack

5  Lily

—————————-

tableB.id

3

5

查詢的結果應該是

—————————-

tableA.id tableA.name

4  Jack

select *

from tableA

where not exists

(select *

from tableB

where tableA.id=tableB.id)

第六題   簡述jsp和servlet的聯系

Java Servlet是JSP技術的基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。現在許多Web伺服器都支援Servlet,即使不直接支援Servlet的Web伺服器,也可以通過附件的應用伺服器和子產品來支援Servlet,這得益于Java的跨平台特性。另外,由于Servlet内部以線程方式提供提供服務,不必對于每個請求都啟動一個程序,并且利用多線程機制可以同時為多個請求服務,是以Servlet的效率非常高。

第七題   什麼是sql注入漏洞,采用什麼方法來堵住sql注入漏洞

随着B/S模式應用開發的發展,使用這種模式編寫應用程式的程式員也越來越多。但是由于這個行業的入門門檻不高,程式員的水準及經驗也參差不齊,相當大一部分程式員在編寫代碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隐患。使用者可以送出一段資料庫查詢代碼,根據程式傳回的結果,獲得某些他想得知的資料,這就是所謂的SQL Injection,即SQL注入

第八題:簡述你對xml的認識,舉例說明xml能幹什麼,應該怎麼做

XML是Extensible Markup Language的縮寫,意思是可擴充置智語言沒有于置标電子文檔,使起資料具有結構化的置智語言。在我目前淺顯的認識裡:,

XML 是用來傳遞資料的 ,

XML 讓這些資料有了結構 — 一個樹型結構  ,

xml 有全套的操作這種結構的方法

xml 規範(或者說的實際點,xml parser)幫你确定你建立的字元串是合法的

xml 規範(或者說的實際點,xml parser)中有辦法驗證這個合法性

對于XML能用來做什麼,我覺得XML可以用來下面幾個方面

1:有利于開發靈活的web應用軟體

使用XML來描述資料,可以使資料具有同意的組織結構,其他應用軟體,對象,中間層和伺服器都可以對使用XML描述的資料做進一步的處理。并可以送出到浏覽器中讓讀者閱讀

2:可以輕松的實作資料在web上釋出

因為XML本身是純文字格式的,它可以不做任何修改就和HTML文檔一樣在網絡中傳輸。

3:有利于資訊的內建

因為使用XML,可以把不同來源的結構化資料很容易地組織到一起。應用軟體可以在中間層的伺服器上對來自于後段資料庫和其他的資料進行內建。最後,資料以XML格式發送到用戶端或者是在其他伺服器做進一步處理。

4:可以使用豐富的樣式來顯示資料

XML采用結構化的方式來組織資料,描述的是資料本身,不涉及到資料的表現形式。通常來說,使用CSS和 XSL以及XSLT為資料的顯示提供分布的機制,也就是說資料的顯示方式可以根據客戶的要求制定。

5:可大大增強伺服器的可伸縮性

XML将資料本身和資料的顯示完全分離,進而可以在結構化的資料中嵌套資料的顯示方式描述。這樣,能盡可能地減少用戶端與伺服器之間的資料交換,減少伺服器的工作量才能大大提高伺服器的性能。

6:采用統一的XML文檔格式來描述多種應用的資料

7:支援本地資料處理

因為XML文檔中的資料格式是統一的,當客戶受到資料後,便可以使用客戶自己的應用軟體來解析資料,并對資料進行進一步的編輯和處理。

8:可以使搜尋變得更加簡單和富有成效

采用統一的XML辨別來組織來自不同資料庫的資料,就可以在不了解資料庫資料組織形式的情況下進行資料的檢索。

9:可以實作資料的獨立更新

10:開放式的标準

雖然XML的初衷是為了使具有不同結構的資料檔案采用統一的XML格式 在Internet上傳輸,

第九題

介紹你做的一個項目,包括實作了什麼功能,通過什麼方法來實作(算法,邏輯結構…),怎麼來保證它的安全和健壯性等.

(如果沒有項目經驗,可假設你要做一個OA系統,描述一下你怎麼來實作它)

選做

第十題:

如何察看linux目前系統正在運作什麼服務?

第十一題:

linux系統的使用者帳号儲存在那一個或哪幾個檔案裡?

第十二題

簡述MVC是什麼

MVC是 Model-View-Controller 的簡稱,也就是 模型-視圖-控制器

MVC用來處理驗證、流程控制和更新應用程式的狀态等問題。

Model(模型)

模型包含應用程式的核心功能。模型封裝了應用程式的狀态。有時它包含的唯一功能就是狀态。它對視圖或控制器一無所知。

View(視圖)

視圖提供模型的表示。它是應用程式的外觀。視圖可以通路模型的讀方法,但不能通路寫方法。此外,它對控制器一無所知。當更改模型時,視圖應得到通知。

Controller(控制器)

控制器對使用者的輸入作出反應。它建立并設定模型。

1、資料庫

表a和表b具有完全相同的結構,主鍵為indexid。寫出一個sql語句把表b中不存在而表a中存在的資料插入到表b中。

2、javascript部分

頁面中有一個名稱都為unitprice的type=text對象。要求輸入的資料不能為空,寫一個函數實作該功能,如果為空時給出提示。

3、JSP部分

①session中存儲一個String變量,變量名稱為studentname,寫出在jsp中如何得到這個session變量的值的語句。

②在jsp中引用使用來引用javabean.

Ⅰscope的值有哪些,這些值的差別是什麼?

Ⅱ不同的jsp頁面中引用javabean時,id能否相同,如果能相同,對scope的值有什麼要求?

4、JAVA部分

①輸入一個維數,輸出以下形式的矩陣和數列,以維數n=4為例:

0000

0111

0122

0123

②寫出下面這段程式的運作結果

int   a=2,b=3,c=1

a+=–b+c;

c-=b+a++;

System.out.println(“a=”+a+”,b=”+b+”,c=”+c);

5、有一個Vector對象,其中每一個元素都是一個String對象,請用for循環或while循環輸出Vector中的元素,要求格式為:”第i個元素為:aaa”

6、有一個HashMap其中key為String對象,value為Integer對象,寫一個方法列印出此Map中的所有鍵值   對形如   key–value

7、有一個String   str=”001,A001;002,A002;003,A003″的串,寫一個方法,把此串存入列   一個HashMap或Hashtable中,說明:如001為key,A001則為value。

8、面向對象概念:

①面向對象基本特征

②什麼叫多态和重載,它們有什麼差別?

③用你自己的話描述你了解的j2ee的本質特征是什麼?

第一題:  寫一個方法,實作删除連結清單中某個節點的操作(其他條件自己假設,補充)

public void delete()

{

if(front>=rear)

{

s[front] =0;

front–;

System.out.println(“\ndelete successful”);

}

else

{

System.out.println(“the link is empty ,can’t delete”);

}

}

第二題:  寫一個方法,實作堆棧的入棧操作 (其他條件自己假設,補充)

public class stack{

private int[] s;

int top,bottom;

public stack(int size){

s = new int[size];

top = size-1;

bottom = size-1;

System.out.println(“Size of the stack is:”+size);

}

public boolean isEmpty()

{

if(top==s.length-1)

return true;

else

return false;

}

public void push(int n)

{

if(top<0)

{

System.out.println(“The stack is full now,you can’t push your data!”);

return;

}

else

{

s[top] = n;

top–;

return ;

}

}

public void pop()

{

if(top>=s.length-1)

{

System.out.println(“The stack is empty,Can’t pop now!”);

return;

}

else

{

top++;

}

}

public void print()

{

System.out.println(“State of the stack:”);

for(int i=s.length-1;i>top;i–)

{

System.out.print(s[i]+”  ”);

}

}

public static void main(String[] a)

{

stack st = new stack(5);

System.out.println(“List of the action to the stack:”);

System.out.println(“push(3):”);

st.push(3);

st.print();

System.out.println(”  ”);

System.out.println(“push(6)”);

st.push(6);

st.print();

System.out.println(”  ”);

System.out.println(“push(10)”);

st.push(10);

st.print();

System.out.println(”  ”);

System.out.println(“pop()”);

st.pop();

st.print();

System.out.println(”  ”);

}

}

第三題: 使用任意排序算法,寫一個排序示例程式

import java.io.*;

class SelectionSort{

public static void main(String[] args){

int[] a={4,54,8,7,6,98,42,};

sort(a);

for(int i=0;i

System.out.print(a[i]+”   “);

}

System.out.println(“”);

}

static void sort(int[] data){

int next, indexOfNext=0,n;

for (next=0;next

{

indexOfNext=min(data,next,(data.length)-1);

swap(data,indexOfNext,next);

}

}

static int min(int[] data,int start,int end){

int indexOfMin=start;

for (int i=start+1;i<=end;i++)

if(data[i]

indexOfMin=i;

return indexOfMin;

}

static void swap(int[] data,int first,int second){

int temp;

temp=data[first];

data[first]=data[second];

data[second]=temp;

}

}

第四題:

編寫一個servlet,把servlet源碼和此servlet在伺服器上的配置檔案web.xml作為附件發送到指定的郵箱

servlet的功能要求:記錄通路該servlet的用戶端的ip和通路時間,把記錄寫入client_ip.log檔案。 client_ip.log裡的格式大緻如下:

9:36 2005-4-8 192.168.0.1

9:36 2005-4-8 127.0.0.1

擷取客戶的IP位址

第五題

資料庫中有兩個表tableA和tableB,他們都有一個int型的字段id,請寫出一個sql語句,實作查詢id在tableA中有,而tableB中沒有的記錄

例如tableA中有如下記錄

—————————-

tableA.id tableA.name

3  Mary

4  Jack

5  Lily

—————————-

tableB.id

3

5

查詢的結果應該是

—————————-

tableA.id tableA.name

4  Jack

select *

from tableA

where not exists

(select *

from tableB

where tableA.id=tableB.id)

第六題   簡述jsp和servlet的聯系

Java Servlet是JSP技術的基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。現在許多Web伺服器都支援Servlet,即使不直接支援Servlet的Web伺服器,也可以通過附件的應用伺服器和子產品來支援Servlet,這得益于Java的跨平台特性。另外,由于Servlet内部以線程方式提供提供服務,不必對于每個請求都啟動一個程序,并且利用多線程機制可以同時為多個請求服務,是以Servlet的效率非常高。

第七題   什麼是sql注入漏洞,采用什麼方法來堵住sql注入漏洞

随着B/S模式應用開發的發展,使用這種模式編寫應用程式的程式員也越來越多。但是由于這個行業的入門門檻不高,程式員的水準及經驗也參差不齊,相當大一部分程式員在編寫代碼的時候,沒有對使用者輸入資料的合法性進行判斷,使應用程式存在安全隐患。使用者可以送出一段資料庫查詢代碼,根據程式傳回的結果,獲得某些他想得知的資料,這就是所謂的SQL Injection,即SQL注入

第八題:簡述你對xml的認識,舉例說明xml能幹什麼,應該怎麼做

XML是Extensible Markup Language的縮寫,意思是可擴充置智語言沒有于置标電子文檔,使起資料具有結構化的置智語言。在我目前淺顯的認識裡:,

XML 是用來傳遞資料的 ,

XML 讓這些資料有了結構 — 一個樹型結構  ,

xml 有全套的操作這種結構的方法

xml 規範(或者說的實際點,xml parser)幫你确定你建立的字元串是合法的

xml 規範(或者說的實際點,xml parser)中有辦法驗證這個合法性

對于XML能用來做什麼,我覺得XML可以用來下面幾個方面

1:有利于開發靈活的web應用軟體

使用XML來描述資料,可以使資料具有同意的組織結構,其他應用軟體,對象,中間層和伺服器都可以對使用XML描述的資料做進一步的處理。并可以送出到浏覽器中讓讀者閱讀

2:可以輕松的實作資料在web上釋出

因為XML本身是純文字格式的,它可以不做任何修改就和HTML文檔一樣在網絡中傳輸。

3:有利于資訊的內建

因為使用XML,可以把不同來源的結構化資料很容易地組織到一起。應用軟體可以在中間層的伺服器上對來自于後段資料庫和其他的資料進行內建。最後,資料以XML格式發送到用戶端或者是在其他伺服器做進一步處理。

4:可以使用豐富的樣式來顯示資料

XML采用結構化的方式來組織資料,描述的是資料本身,不涉及到資料的表現形式。通常來說,使用CSS和 XSL以及XSLT為資料的顯示提供分布的機制,也就是說資料的顯示方式可以根據客戶的要求制定。

5:可大大增強伺服器的可伸縮性

XML将資料本身和資料的顯示完全分離,進而可以在結構化的資料中嵌套資料的顯示方式描述。這樣,能盡可能地減少用戶端與伺服器之間的資料交換,減少伺服器的工作量才能大大提高伺服器的性能。

6:采用統一的XML文檔格式來描述多種應用的資料

7:支援本地資料處理

因為XML文檔中的資料格式是統一的,當客戶受到資料後,便可以使用客戶自己的應用軟體來解析資料,并對資料進行進一步的編輯和處理。

8:可以使搜尋變得更加簡單和富有成效

采用統一的XML辨別來組織來自不同資料庫的資料,就可以在不了解資料庫資料組織形式的情況下進行資料的檢索。

9:可以實作資料的獨立更新

10:開放式的标準

雖然XML的初衷是為了使具有不同結構的資料檔案采用統一的XML格式 在Internet上傳輸,

第九題

介紹你做的一個項目,包括實作了什麼功能,通過什麼方法來實作(算法,邏輯結構…),怎麼來保證它的安全和健壯性等.

(如果沒有項目經驗,可假設你要做一個OA系統,描述一下你怎麼來實作它)

選做

第十題:

如何察看linux目前系統正在運作什麼服務?

第十一題:

linux系統的使用者帳号儲存在那一個或哪幾個檔案裡?

第十二題

簡述MVC是什麼

MVC是 Model-View-Controller 的簡稱,也就是 模型-視圖-控制器

MVC用來處理驗證、流程控制和更新應用程式的狀态等問題。

Model(模型)

模型包含應用程式的核心功能。模型封裝了應用程式的狀态。有時它包含的唯一功能就是狀态。它對視圖或控制器一無所知。

View(視圖)

視圖提供模型的表示。它是應用程式的外觀。視圖可以通路模型的讀方法,但不能通路寫方法。此外,它對控制器一無所知。當更改模型時,視圖應得到通知。

Controller(控制器)

控制器對使用者的輸入作出反應。它建立并設定模型。

分享給朋友:

親~ 如果您有更好的答案 可在評論區發表您獨到的見解。

您想檢視更多的資訊:

面試題