- 相關(guān)推薦
Java面試題
1、什么是存儲過(guò)程和如何編寫(xiě)
1、注冊Jdbc驅動(dòng)程序的三種方式
1、用JDBC如何調用存儲過(guò)程
1、JDBC中的preparedStatement相比Statement的好處
1. 寫(xiě)一個(gè)用jdbc連接并訪(fǎng)問(wèn)oracle數據的程序代碼
2、Class.forName的作用?為什么要用?
答:調用該訪(fǎng)問(wèn)返回一個(gè)以字符串指定類(lèi)名的類(lèi)的對象。
3、大數據量下的分頁(yè)解決方法。
4、用 JDBC 查詢(xún)學(xué)生成績(jì)單, 把主要代碼寫(xiě)出來(lái).
5、這段代碼有什么不足之處?
try {
Connection conn = ...;
Statement stmt = ...;
ResultSet rs = stmt.executeQuery("select * from table1");
while(rs.next()) {
}
} catch(Exception ex) {
}
36、說(shuō)出數據連接池的工作機制是什么?
J2EE服務(wù)器啟動(dòng)時(shí)會(huì )建立一定數量的池連接,并一直維持不少于此數目的池連接?蛻(hù)端程序需要連接時(shí),池驅動(dòng)程序會(huì )返回一個(gè)未使用的池連接并將其表記為忙。如果當前沒(méi)有空閑連接,池驅動(dòng)程序就新建一定數量的連接,新建連接的數量有配置參數決定。當使用的池連接調用完成后,池驅動(dòng)程序將此連接表記為空閑,其他調用就可以使用這個(gè)連接。
4、為什么要用 ORM? 和 JDBC 有何不一樣?
5. XML部分
1、xml有哪些解析技術(shù)?區別是什么?
答:有DOM,SAX,STAX等
DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問(wèn)題是由DOM的樹(shù)結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個(gè)文檔裝入內存,適合對XML的隨機訪(fǎng)問(wèn)SAX:不現于DOM,SAX是事件驅動(dòng)型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個(gè)文件。當遇到像文件開(kāi)頭,文檔結束,或者標簽開(kāi)頭與標簽結束時(shí),它會(huì )觸發(fā)一個(gè)事件,用戶(hù)通過(guò)在其回調事件中寫(xiě)入處理代碼來(lái)處理XML文件,適合對XML的順序訪(fǎng)問(wèn)
STAX:Streaming ApI for XML (StAX)
講解這些區別是不需要特別去比較,就像說(shuō)傳智播客與其他培訓機構的區別時(shí),我們只需說(shuō)清楚傳智播客有什么特點(diǎn)和優(yōu)點(diǎn)就行了,這就已經(jīng)間接回答了彼此的區別。
2、你在項目中用到了xml技術(shù)的哪些方面?如何實(shí)現的?
答:用到了數據存貯,信息配置兩方面。在做數據交換平臺時(shí),將不能數據源的數據組裝成XML文件,然后將XML文件壓縮打包加密后通過(guò)網(wǎng)絡(luò )傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時(shí),利用XML可以很方便的進(jìn)行,軟件的各種配置參數都存貯在XML文件中。
3、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析?
答:看如下代碼,用編碼方式加以解決
package test;
import java.io.*;
public class DOMTest
{
private String inFile = "c:\\people.xml"
private String outFile = "c:\\people.xml"
public static void main(String args[])
{
new DOMTest();
}
public DOMTest()
{
try
{
javax.xml.parsers.DocumentBuilder builder =
javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Document doc = builder.newDocument();
org.w3c.dom.Element root = doc.createElement("老師");
org.w3c.dom.Element wang = doc.createElement("王");
org.w3c.dom.Element liu = doc.createElement("劉");
wang.appendChild(doc.createTextNode("我是王老師"));
root.appendChild(wang);
doc.appendChild(root);
javax.xml.transform.Transformer transformer =
javax.xml.transform.TransformerFactory.newInstance().newTransformer();
transformer.setOutputproperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312");
transformer.setOutputproperty(javax.xml.transform.OutputKeys.INDENT, "yes");
transformer.transform(new javax.xml.transform.dom.DOMSource(doc),
new
javax.xml.transform.stream.StreamResult(outFile));
}
catch (Exception e)
{
System.out.println (e.getMessage());
}
}
}
4、編程用JAVA解析XML的方式.
答:用SAX方式解析XML,XML文件如下:
王小明
信息學(xué)院
6258113
男,1955年生,博士,95年調入海南大學(xué)
事件回調類(lèi)SAXHandler.java
import java.io.*;
import java.util.Hashtable;
import org.xml.sax.*;
public class SAXHandler extends HandlerBase
{
private Hashtable table = new Hashtable();
private String currentElement = null;
private String currentValue = null;
public void setTable(Hashtable table)
{
this.table = table;
}
public Hashtable getTable()
{
return table;
}
public void startElement(String tag, AttributeList attrs)
throws SAXException
{
currentElement = tag;
}
public void characters(char[] ch, int start, int length)
throws SAXException
{
currentValue = new String(ch, start, length);
}
public void endElement(String name) throws SAXException
{
if (currentElement.equals(name))
table.put(currentElement, currentValue);
}
}
JSp內容顯示源碼,SaxXml.jsp:
<%@ page errorpage=Errpage.jsp
contentType=text/html;charset=GB2312 %>