1、數(shù)據(jù)庫(kù)
表a和表b具有完全相同的結(jié)構(gòu),主鍵為indexid。寫出一個(gè)sql語(yǔ)句把表b中不存在而表a中存在的數(shù)據(jù)插入到表b中。
2、javascript部分
頁(yè)面中有一個(gè)名稱都為unitprice的type=text對(duì)象。要求輸入的數(shù)據(jù)不能為空,寫一個(gè)函數(shù)實(shí)現(xiàn)該功能,如果為空時(shí)給出提示。
3、JSP部分
①session中存儲(chǔ)一個(gè)String變量,變量名稱為studentname,寫出在jsp中如何得到這個(gè)session變量的值的語(yǔ)句。
②在jsp中引用使用來(lái)引用javabean.
Ⅰscope的值有哪些,這些值的區(qū)別是什么?
Ⅱ不同的jsp頁(yè)面中引用javabean時(shí),id能否相同,如果能相同,對(duì)scope的值有什么要求?
4、JAVA部分
①輸入一個(gè)維數(shù),輸出以下形式的矩陣和數(shù)列,以維數(shù)n=4為例:
0000
0111
0122
0123
②寫出下面這段程序的運(yùn)行結(jié)果
int a=2,b=3,c=1
a+=–b+c;
c-=b+a++;
System.out.println(“a=”+a+”,b=”+b+”,c=”+c);
5、有一個(gè)Vector對(duì)象,其中每一個(gè)元素都是一個(gè)String對(duì)象,請(qǐng)用for循環(huán)或while循環(huán)輸出Vector中的元素,要求格式為:”第i個(gè)元素為:aaa”
6、有一個(gè)HashMap其中key為String對(duì)象,value為Integer對(duì)象,寫一個(gè)方法打印出此Map中的所有鍵值 對(duì)形如 key–value
7、有一個(gè)String str=”001,A001;002,A002;003,A003″的串,寫一個(gè)方法,把此串存入列 一個(gè)HashMap或Hashtable中,說(shuō)明:如001為key,A001則為value。
8、面向?qū)ο蟾拍睿?/strong>
①面向?qū)ο蠡咎卣?/p>
②什么叫多態(tài)和重載,它們有什么區(qū)別?
③用你自己的話描述你理解的j2ee的本質(zhì)特征是什么?
第一題: 寫一個(gè)方法,實(shí)現(xiàn)刪除鏈表中某個(gè)節(jié)點(diǎn)的操作(其他條件自己假設(shè),補(bǔ)充)
public void ()
{
if(front>=rear)
{
s[front] =0;
front–;
System.out.println(“ successful”);
}
else
{
System.out.println(“the link is empty ,can’t ”);
}
}
第二題: 寫一個(gè)方法,實(shí)現(xiàn)堆棧的入棧操作 (其他條件自己假設(shè),補(bǔ)充)
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(” ”);
}
}
第三題: 使用任意排序算法,寫一個(gè)排序示例程序
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;
}
}
第四題:
編寫一個(gè)servlet,把servlet源碼和此servlet在服務(wù)器上的配置文件web.xml作為附件發(fā)送到指定的郵箱
servlet的功能要求:記錄訪問(wèn)該servlet的客戶端的ip和訪問(wèn)時(shí)間,把記錄寫入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地址
第五題
數(shù)據(jù)庫(kù)中有兩個(gè)表tableA和tableB,他們都有一個(gè)int型的字段id,請(qǐng)寫出一個(gè)sql語(yǔ)句,實(shí)現(xiàn)查詢id在tableA中有,而tableB中沒(méi)有的記錄
例如tableA中有如下記錄
—————————-
tableA.id tableA.name
3 Mary
4 Jack
5 Lily
—————————-
tableB.id
3
5
查詢的結(jié)果應(yīng)該是
—————————-
tableA.id tableA.name
4 Jack
select *
from tableA
where not exists
(select *
from tableB
where tableA.id=tableB.id)
第六題 簡(jiǎn)述jsp和servlet的聯(lián)系
Java Servlet是JSP技術(shù)的基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。現(xiàn)在許多Web服務(wù)器都支持Servlet,即使不直接支持Servlet的Web服務(wù)器,也可以通過(guò)附件的應(yīng)用服務(wù)器和模塊來(lái)支持Servlet,這得益于Java的跨平臺(tái)特性。另外,由于Servlet內(nèi)部以線程方式提供提供服務(wù),不必對(duì)于每個(gè)請(qǐng)求都啟動(dòng)一個(gè)進(jìn)程,并且利用多線程機(jī)制可以同時(shí)為多個(gè)請(qǐng)求服務(wù),因此Servlet的效率非常高。
第七題 什么是sql注入漏洞,采用什么方法來(lái)堵住sql注入漏洞
隨著B/S模式應(yīng)用開發(fā)的發(fā)展,使用這種模式編寫應(yīng)用程序的程序員也越來(lái)越多。但是由于這個(gè)行業(yè)的入門門檻不高,程序員的水平及經(jīng)驗(yàn)也參差不齊,相當(dāng)大一部分程序員在編寫代碼的時(shí)候,沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。用戶可以提交一段數(shù)據(jù)庫(kù)查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL Injection,即SQL注入
第八題:簡(jiǎn)述你對(duì)xml的認(rèn)識(shí),舉例說(shuō)明xml能干什么,應(yīng)該怎么做
XML是Extensible Markup Language的縮寫,意思是可擴(kuò)展置標(biāo)語(yǔ)言沒(méi)有于置標(biāo)電子文檔,使起數(shù)據(jù)具有結(jié)構(gòu)化的置標(biāo)語(yǔ)言。在我目前淺顯的認(rèn)識(shí)里:,
XML 是用來(lái)傳遞數(shù)據(jù)的 ,
XML 讓這些數(shù)據(jù)有了結(jié)構(gòu) — 一個(gè)樹型結(jié)構(gòu) ,
xml 有全套的操作這種結(jié)構(gòu)的方法
xml 規(guī)范(或者說(shuō)的實(shí)際點(diǎn),xml parser)幫你確定你創(chuàng)建的字符串是合法的
xml 規(guī)范(或者說(shuō)的實(shí)際點(diǎn),xml parser)中有辦法驗(yàn)證這個(gè)合法性
對(duì)于XML能用來(lái)做什么,我覺得XML可以用來(lái)下面幾個(gè)方面
1:有利于開發(fā)靈活的web應(yīng)用軟件
使用XML來(lái)描述數(shù)據(jù),可以使數(shù)據(jù)具有同意的組織結(jié)構(gòu),其他應(yīng)用軟件,對(duì)象,中間層和服務(wù)器都可以對(duì)使用XML描述的數(shù)據(jù)做進(jìn)一步的處理。并可以提交到瀏覽器中讓讀者閱讀
2:可以輕松的實(shí)現(xiàn)數(shù)據(jù)在web上發(fā)布
因?yàn)閄ML本身是純文本格式的,它可以不做任何修改就和HTML文檔一樣在網(wǎng)絡(luò)中傳輸。
3:有利于信息的集成
因?yàn)槭褂肵ML,可以把不同來(lái)源的結(jié)構(gòu)化數(shù)據(jù)很容易地組織到一起。應(yīng)用軟件可以在中間層的服務(wù)器上對(duì)來(lái)自于后段數(shù)據(jù)庫(kù)和其他的數(shù)據(jù)進(jìn)行集成。最后,數(shù)據(jù)以XML格式發(fā)送到客戶端或者是在其他服務(wù)器做進(jìn)一步處理。
4:可以使用豐富的樣式來(lái)顯示數(shù)據(jù)
XML采用結(jié)構(gòu)化的方式來(lái)組織數(shù)據(jù),描述的是數(shù)據(jù)本身,不涉及到數(shù)據(jù)的表現(xiàn)形式。通常來(lái)說(shuō),使用CSS和 XSL以及XSLT為數(shù)據(jù)的顯示提供分布的機(jī)制,也就是說(shuō)數(shù)據(jù)的顯示方式可以根據(jù)客戶的要求制定。
5:可大大增強(qiáng)服務(wù)器的可伸縮性
XML將數(shù)據(jù)本身和數(shù)據(jù)的顯示完全分離,從而可以在結(jié)構(gòu)化的數(shù)據(jù)中嵌套數(shù)據(jù)的顯示方式描述。這樣,能盡可能地減少客戶端與服務(wù)器之間的數(shù)據(jù)交換,減少服務(wù)器的工作量才能大大提高服務(wù)器的性能。
6:采用統(tǒng)一的XML文檔格式來(lái)描述多種應(yīng)用的數(shù)據(jù)
7:支持本地?cái)?shù)據(jù)處理
因?yàn)閄ML文檔中的數(shù)據(jù)格式是統(tǒng)一的,當(dāng)客戶受到數(shù)據(jù)后,便可以使用客戶自己的應(yīng)用軟件來(lái)解析數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步的編輯和處理。
8:可以使搜索變得更加簡(jiǎn)單
[java程序員面試題及答案]