JAVA面试题集编程篇文档格式.docx
《JAVA面试题集编程篇文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA面试题集编程篇文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
try{
ss=newServerSocket(10000);
while(true){
socket=ss.accept();
StringRemoteIP=socket.getInetAddress().getHostAddress();
StringRemotePort="
:
"
+socket.getLocalPort();
System.out.println("
Aclientcomein!
IP:
+RemoteIP+RemotePort);
in=newBufferedReader(new
JAVA面试题集(编程篇)整理byrensn2006-6-32
InputStreamReader(socket.getInputStream()));
Stringline=in.readLine();
Cleintsendis:
+line);
out=newPrintWriter(socket.getOutputStream(),true);
out.println("
YourMessageReceived!
);
out.close();
in.close();
socket.close();
}catch(IOExceptione){
wrong"
publicstaticvoidmain(String[]args){
newServer();
Client端程序:
publicclassClient{
Socketsocket;
BufferedReaderin;
PrintWriterout;
publicClient(){
TrytoConnectto127.0.0.1:
10000"
socket=newSocket("
127.0.0.1"
10000);
TheServerConnected!
PleaseentersomeCharacter:
BufferedReaderline=newBufferedReader(new
InputStreamReader(System.in));
out.println(line.readLine());
in=newBufferedReader(newInputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
}catch(IOExceptione){
Wrong"
newClient();
JAVA面试题集(编程篇)整理byrensn2006-6-33
3、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?
如在COLLECTION框架中,实现比较要实现什么样的接口?
用插入法进行排序代码如下
importjava.util.*;
classInsertSort{
ArrayListal;
publicInsertSort(intnum,intmod){
al=newArrayList(num);
Randomrand=newRandom();
TheArrayL{
al.add(newInteger(Math.abs(rand.nextInt())%mod+1));
al["
+i+"
]="
+al.get(i));
publicvoidSortIt(){
IntegertempInt;
intMaxSize=1;
for(inti=1;
i<
al.size();
i++){
tempInt=(Integer)al.remove(i);
if(tempInt.intValue()>
=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
}else{
for(intj=0;
j<
MaxSize;
j++){
if(((Integer)al.get(j)).intValue()>
=tempInt.intValue()){
al.add(j,tempInt);
break;
TheArrayListSortAfter:
for(inti=0;
InsertSortis=newInsertSort(10,100);
is.SortIt();
JAVA面试题集(编程篇)整理byrensn2006-6-34
JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection框架中实现比较要实现Comparable接口和Comparator接口
4、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,
如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
答:
代码如下:
classSplitString{
StringSplitStr;
intSplitByte;
publicSplitString(Stringstr,intbytes){
SplitStr=str;
SplitByte=bytes;
TheStringis:
′"
+SplitStr+"
′;
SplitBytes="
+SplitByte);
publicvoidSplitIt(){
intloopCount;
loopCount=(SplitStr.length()%SplitByte==0)?
(SplitStr.length()/SplitByte):
(SplitStr.length()/SplitByte+1);
WillSplitinto"
+loopCount);
for(inti=1;
=loopCount;
i++){
if(i==loopCount){
System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
SplitStringss=newSplitString("
test中dd文dsaf中男大3443n中国43中国0ewldfls=103"
4);
ss.SplitIt();
5、Servlet的基本架构?
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//somestatements
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
6、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.
程序如下:
packagehello.ant;
JAVA面试题集(编程篇)整理byrensn2006-6-35
importjava.sql.*;
publicclassjdbc{
StringdbUrl="
jdbc:
oracle:
thin:
@127.0.0.1:
1521:
orcl"
;
StringtheUser="
admin"
StringthePw="
manager"
Connectionc=null;
Statementconn;
ResultSetrs=null;
publicjdbc(){
Class.forName("
oracle.jdbc.driver.OracleDriver"
).newInstance();
c=DriverManager.getConnection(dbUrl,theUser,thePw);
conn=c.createStatement();
}catch(Exceptione){
e.printStackTrace();
publicbooleanexecuteUpdate(Stringsql){
conn.executeUpdate(sql);
returntrue;
}catch(SQLExceptione){
returnfalse;
publicResultSetexecuteQuery(Stringsql){
rs=null;
rs=conn.executeQuery(sql);
catch(SQLExceptione){
returnrs;
publicvoidclose(){
conn.close();
c.close();
}catch(Exceptione){
publicstaticvoidmain(String[]args)
{
JAVA面试题集(编程篇)整理byrensn2006-6-36
ResultSetrs;
jdbcconn=newjdbc();
rs=conn.executeQuery("
select*fromtest"
try{
while(rs.next()){
System.out.println(rs.getString("
id"
));
name"
7、在ORACLE大数据量下的分页解决方法。
一般用截取ID方法,还有是三层嵌套方法。
一种分页方法
<
%
inti=1;
intnumPages=14;
Stringpages=request.getParameter("
page"
);
intcurrentPage=1;
currentPage=(pages==null)?
(1):
{Integer.parseInt(pages)}
sql="
selectcount(*)fromtables"
ResultSetrs=DBLink.executeQuery(sql);
while(rs.next())
i=rs.getInt
(1);
intintPageCount=1;
intPageCount=(i%numPages==0)?
(i/numPages):
(i/numPages+1);
intnextPage;
intupPage;
nextPage=currentPage+1;
if(nextPage>
=intPageCount)
nextPage=intPageCount;
upPage=currentPage-1;
if(upPage<
=1)
upPage=1;
rs.close();
select*fromtables"
rs=DBLink.executeQuery(sql);
i=0;
while((i<
numPages*(currentPage-1))&
&
rs.next()){
i++;
%>
//输出内容
//输出翻页连接
合计:
%=currentPage%>
/<
%=intPageCount%>
ahref="
List.jsp?
page=1"
>
第一页<
/a>
a
JAVA面试题集(编程篇)整理byrensn2006-6-3
7
href="
page=<
%=upPage%>
上一页<
for(intj=1;
=intPageCount;
j++){
if(currentPage!
=j){
list.jsp?
%=j%>
[<
]<
}else{
out.println(j);
%=nextPage%>
下一页<
最后页
8、用jdom解析xml文件时如何解决中文问题?
如何解析?
看如下代码,用编码方式加以解决
publicclassDOMTest{
privateStringinFile="
c:
\people.xml"
privateStringoutFile="
publicstaticvoidmain(Stringargs[]){
newDOMTest();
publicDOMTest(){
javax.xml.parsers.DocumentBuilderbuilder=
javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
org.w3c.dom.Documentdoc=builder.newDocument();
org.w3c.dom.Elementroot=doc.createElement("
老师"
org.w3c.dom.Elementwang=doc.createElement("
王"
org.w3c.dom.Elementliu=doc.createElement("
刘"
wang.appendChild(doc.createTextNode("
我是王老师"
root.appendChild(wang);
doc.appendChild(root);
javax.xml.transform.Transformertransformer=
javax.xml.transform.TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"
gb2312"
transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,"
yes"
transformer.transform(newjavax.xml.transform.dom.DOMSource(doc),
newjavax.xml.transform.stream.StreamResult(outFile));
System.out.println(e.getMessage());
JAVA面试题集(编程篇)整理byrensn2006-6-38
9、编程用JAVA解析XML的方式.
用SAX方式解析XML,XML文件如下:
?
xmlversion="
1.0"
encoding="
person>
name>
王小明<
/name>
college>
信息学院<
/college>
telephone>
6258113<
/telephone>
notes>
男,1955年生,博士,95年调入海南大学<
/notes>
/person>
事件回调类SAXHandler.java
importjava.util.Hashtable;
importorg.xml.sax.*;
publicclassSAXHandlerextendsHandlerBase{
privateHashtabletable=newHashtable();
privateStringcurrentElement=null;
privateStringcurrentValue=null;
publicvoidsetTable(Hashtabletable){
this.table=table;
publicHashtablegetTable(){
returntable;
publicvoidstartElement(Stringtag,AttributeListattrs)throwsSAXException{
currentElement=tag;
publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{
currentValue=newString(ch,start,length);
publicvoidendElement(Stringname)throwsSAXException{
if(currentElement.equals(name))
table.put(currentElement,currentValue);
JSP内容显示源码,SaxXml.jsp:
%@pageerrorPage="
ErrPage.jsp"
contentType="
text/html;
charset=GB2312"
%>
%@pageimport="
java.io.*"
java.util.Hashtable"
org.w3c.dom.*"
org.xml.sax.*"
javax.xml.parsers