﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-dream-in-fly-随笔分类-网站收集</title><link>http://www.blogjava.net/dreaminfly/category/144.html</link><description>路上...</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:19:01 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:19:01 GMT</pubDate><ttl>60</ttl><item><title>应聘Java笔试时可能出现问题及其答案</title><link>http://www.blogjava.net/dreaminfly/archive/2005/03/19/2241.html</link><dc:creator>小毅</dc:creator><author>小毅</author><pubDate>Sat, 19 Mar 2005 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/dreaminfly/archive/2005/03/19/2241.html</guid><wfw:comment>http://www.blogjava.net/dreaminfly/comments/2241.html</wfw:comment><comments>http://www.blogjava.net/dreaminfly/archive/2005/03/19/2241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreaminfly/comments/commentRss/2241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreaminfly/services/trackbacks/2241.html</trackback:ping><description><![CDATA[<FONT color=#0000ff size=2>过几天要去东星软件笔试程序员，要求挺高的 网上找了篇笔试的文章</FONT><BR><BR><FONT color=#0000ff size=2>前段时间因为要参加一个笔试，在准备期间在网上找到了两条关于笔试题目的文章，其中一篇为&lt;&lt;有感:应聘Java笔试时可能出现问题&gt;&gt;，还有一篇忘了名字，读后深受启发。<BR>??????? 在寻找这些答案的过程中，我将相关答案记录下来，就形成了以下这些东西。需要说明的是以下答案肯定有很多不完整甚至错误的地方，需要各位来更正与完善它，千万不要扔我的鸡蛋啊。<BR>?????? 希望本文能够给即将奔赴笔试考场的同仁些许帮助，更希望更多的人加入到收集整理笔试题与完善答案的这些工作中来，为大家更好的获得工作机会做一点贡献。<BR>?????? 在此感谢前面两文的作者的对笔试题目的收集与整理。<BR>?????? 如有任何意见与建议请通过QQ:6045306,Mail:huijunzi@21cn.com与我联系。 </FONT>
<P><FONT color=#0000ff size=2>Java基础方面:</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、作用域public,private,protected,以及不写时的区别<BR></STRONG><STRONG>答：</STRONG>区别如下：<BR>作用域?????????? 当前类?????? 同一package? 子孙类?????? 其他package<BR>public??????????? √????????????? √????????????????? √???????????? √<BR>protected??????? √????????????? √????????????????? √???????????? ×<BR>friendly????????? √????????????? √?????????????????? ×??????????? ×<BR>private?????????? √????????????? ×?????????????????? ×??????????? ×<BR>不写时默认为friendly</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、ArrayList和Vector的区别,HashMap和Hashtable的区别<BR>答：</STRONG>就ArrayList与Vector主要从二方面来说.<BR>一.同步性:Vector是线程安全的，也就是说是同步的，而ArrayList是线程序不安全的，不是同步的<BR>二.数据增长:当需要增长时,Vector默认增长为原来一培，而ArrayList却是原来的一半<BR>就HashMap与HashTable主要从三方面来说。<BR>一.历史原因:Hashtable是基于陈旧的Dictionary类的，HashMap是Java 1.2引进的Map接口的一个实现<BR>二.同步性:Hashtable是线程安全的，也就是说是同步的，而HashMap是线程序不安全的，不是同步的<BR>三.值：只有HashMap可以让你将空值作为一个表的条目的key或value</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、char型变量中能不能存贮一个中文汉字?为什么?<BR>答：</STRONG>是能够定义成为一个中文的，因为java中以unicode编码，一个char占16个字节，所以放一个中文是没问题的</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?<BR>答：</STRONG>多线程有两种实现方法，分别是继承Thread类与实现Runnable接口<BR>同步的实现方面有两种，分别是synchronized,wait与notify</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?<BR>答:</STRONG>父类：<BR>package test;<BR>public class? FatherClass<BR>{<BR>??? public FatherClass()<BR>?{<BR>??System.out.println("FatherClass Create");<BR>?}<BR>}<BR>子类:<BR>package test;<BR>import test.FatherClass;<BR>public class? ChildClass extends FatherClass<BR>{<BR>?public ChildClass()<BR>?{<BR>??System.out.println("ChildClass Create");<BR>?}<BR>?public static void main(String[] args) <BR>?{<BR>??FatherClass fc = new FatherClass();<BR>??ChildClass cc = new ChildClass();<BR>?}<BR>}<BR>输出结果：<BR>C:\&gt;java test.ChildClass<BR>FatherClass Create<BR>FatherClass Create<BR>ChildClass Create</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>6、内部类的实现方式?<BR>答：</STRONG>示例代码如下：<BR>package test;<BR>public class? OuterClass<BR>{<BR>?private class InterClass<BR>?{<BR>??public InterClass()<BR>??{<BR>???System.out.println("InterClass Create");<BR>??}<BR>?}<BR>?public OuterClass()<BR>?{<BR>??InterClass ic = new InterClass();<BR>??System.out.println("OuterClass Create");<BR>?}<BR>?public static void main(String[] args) <BR>?{<BR>??OuterClass oc = new OuterClass();<BR>?}<BR>}<BR>输出结果:<BR>C:\&gt;java test/OuterClass<BR>InterClass Create<BR>OuterClass Create<BR>再一个例题：<BR>public class OuterClass { <BR>? private double d1 = 1.0; <BR>??? //insert code here <BR>} <BR>You need to insert an inner class declaration at line 3. Which two inner class declarations are </FONT></FONT></P>
<P><FONT color=#0000ff size=2>valid?(Choose two.) <BR>A. class InnerOne{<BR>???? public static double methoda() {return d1;}<BR>?? } <BR>B. public class InnerOne{<BR>???? static double methoda() {return d1;}<BR>?? } <BR>C. private class InnerOne{<BR>???? double methoda() {return d1;}<BR>?? } <BR>D. static class InnerOne{<BR>???? protected double methoda() {return d1;}<BR>?? } <BR>E. abstract class InnerOne{<BR>???? public abstract double methoda();<BR>?? } <BR>说明如下：<BR>一.静态内部类可以有静态成员，而非静态内部类则不能有静态成员。 故 A、B 错<BR>二.静态内部类的非静态成员可以访问外部类的静态变量，而不可访问外部类的非静态变量；return d1 出错。 </FONT></P>
<P><FONT color=#0000ff size=2>故 D 错<BR>三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确<BR>四.答案为C、E</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>7、垃圾回收机制,如何优化程序?<BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>8、float型float f=3.4是否正确?<BR>答:</STRONG>不正确。精度不准确,应该用强制类型转换，如下所示：float f=(float)3.4</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>9、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? <BR>答：</STRONG>Collection FrameWork如下：<BR>Collection<BR>├List<BR>│├LinkedList<BR>│├ArrayList<BR>│└Vector<BR>│　└Stack<BR>└Set<BR>Map<BR>├Hashtable<BR>├HashMap<BR>└WeakHashMap<BR>Collection是最基本的集合接口，一个Collection代表一组Object，即Collection的元素（Elements）<BR>Map提供key到value的映射</FONT></FONT></P>
<P><STRONG><FONT color=#0000ff size=2>10、Java中异常处理机制，事件机制？</FONT></STRONG></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>11、JAVA中的多形与继承？<BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>12、抽象类与接口？<BR>答：</STRONG>抽象类与接口都用于抽象，但是抽象类(JAVA中)可以有自己的部分实现，而接口则完全是一个标识(同时有多重继承的功能)。 </FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>13、Java 的通信编程，编程题(或问答)，用JAVA SOCKET编程，读服务器几个字符，再写入本地显示？ <BR>答:</STRONG>Server端程序:<BR>package test;<BR>import java.net.*;<BR>import java.io.*;</FONT></FONT></P>
<P><FONT color=#0000ff size=2>public class Server<BR>{<BR>?private ServerSocket ss;<BR>?private Socket socket;<BR>?private BufferedReader in;<BR>?private PrintWriter out;<BR>?public Server()<BR>?{<BR>??try<BR>??{<BR>???ss=new ServerSocket(10000);<BR>???while(true)<BR>???{<BR>????socket = ss.accept();<BR>????String RemoteIP = socket.getInetAddress().getHostAddress();<BR>????String RemotePort = ":"+socket.getLocalPort();<BR>????System.out.println("A client come in!IP:"+RemoteIP+RemotePort);<BR>????in = new BufferedReader(new </FONT></P>
<P><FONT color=#0000ff size=2>InputStreamReader(socket.getInputStream()));<BR>????String line = in.readLine();<BR>????System.out.println("Cleint send is :" + line);<BR>????out = new PrintWriter(socket.getOutputStream(),true);<BR>????out.println("Your Message Received!");<BR>????out.close();<BR>????in.close();<BR>????socket.close();<BR>???}<BR>??}catch (IOException e)<BR>??{<BR>???out.println("wrong");<BR>??}<BR>?}<BR>?public static void main(String[] args)<BR>?{<BR>??new Server();<BR>?}<BR>};<BR>Client端程序:<BR>package test;<BR>import java.io.*;<BR>import java.net.*;</FONT></P>
<P><FONT color=#0000ff size=2>public class Client<BR>{<BR>?Socket socket;<BR>?BufferedReader in;<BR>?PrintWriter out;<BR>?public Client()<BR>?{<BR>??try<BR>??{<BR>???System.out.println("Try to Connect to 127.0.0.1:10000");<BR>???socket = new Socket("127.0.0.1",10000);<BR>???System.out.println("The Server Connected!");<BR>???System.out.println("Please enter some Character:");<BR>???BufferedReader line = new BufferedReader(new </FONT></P>
<P><FONT color=#0000ff size=2>InputStreamReader(System.in));<BR>???out = new PrintWriter(socket.getOutputStream(),true);<BR>???out.println(line.readLine());<BR>???in = new BufferedReader(new InputStreamReader(socket.getInputStream()));<BR>???System.out.println(in.readLine());<BR>???out.close();<BR>???in.close();<BR>???socket.close();<BR>??}catch(IOException e)<BR>??{<BR>???out.println("Wrong");<BR>??}<BR>?}<BR>?public static void main(String[] args)<BR>?{<BR>??new Client();<BR>?}<BR>};</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>14、用JAVA实现一种排序，JAVA类实现序列化的方法(二种)？ 如在COLLECTION框架中，实现比较要实现什么样的接口？<BR>答:</STRONG>用插入法进行排序代码如下<BR>package test;<BR>import java.util.*;<BR>class? InsertSort<BR>{<BR>?ArrayList al;<BR>?public InsertSort(int num,int mod)<BR>?{<BR>??al = new ArrayList(num);<BR>??Random rand = new Random();<BR>??System.out.println("The ArrayList Sort Before:");<BR>??for (int i=0;i<NUM ;i++ )<BR>??{<BR>???al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));<BR>???System.out.println("al["+i+"]="+al.get(i));<BR>??}<BR>?}<BR>?public void SortIt()<BR>?{<BR>??Integer tempInt;<BR>??int MaxSize=1;<BR>??for(int i=1;i<AL.SIZE();I++)<BR>??{<BR>?????? tempInt = (Integer)al.remove(i);<BR>????if(tempInt.intValue()&gt;=((Integer)al.get(MaxSize-1)).intValue())<BR>????{<BR>?????al.add(MaxSize,tempInt);<BR>?????MaxSize++;<BR>?????System.out.println(al.toString());<BR>????} else {<BR>?????for (int j=0;j<MAXSIZE )<BR ;j++>?????{<BR>??????if </FONT></FONT></P>
<P><FONT color=#0000ff size=2>(((Integer)al.get(j)).intValue()&gt;=tempInt.intValue())<BR>??????{<BR>???????al.add(j,tempInt);<BR>???????MaxSize++;<BR>???????System.out.println(al.toString());<BR>???????break;<BR>??????}<BR>?????}<BR>????}<BR>??}<BR>??System.out.println("The ArrayList Sort After:");<BR>??for(int i=0;i<AL.SIZE();I++)<BR>??{<BR>???System.out.println("al["+i+"]="+al.get(i));<BR>??}<BR>?}<BR>?public static void main(String[] args) <BR>?{<BR>??InsertSort is = new InsertSort(10,100);<BR>??is.SortIt();<BR>?}<BR>}<BR>JAVA类实现序例化的方法是实现java.io.Serializable接口<BR>Collection框架中实现比较要实现Comparable 接口和 Comparator 接口</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>15、编程：编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串。 但是要保证汉字不被截半个，如“我ABC”4，应该截为“我AB”，输入“我ABC汉DEF”，6，应该输出为“我ABC”而不是“我ABC+汉的半个”。 <BR>答：</STRONG>代码如下：<BR>package test;</FONT></FONT></P>
<P><FONT color=#0000ff size=2>class? SplitString<BR>{<BR>?String SplitStr;<BR>?int SplitByte;<BR>?public SplitString(String str,int bytes)<BR>?{<BR>??SplitStr=str;<BR>??SplitByte=bytes;<BR>??System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);<BR>?}<BR>?public void SplitIt()<BR>?{<BR>??int loopCount;<BR>??</FONT></P>
<P><FONT color=#0000ff size=2>loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split</FONT></P>
<P><FONT color=#0000ff size=2>Byte+1);<BR>??System.out.println("Will Split into "+loopCount);<BR>??for (int i=1;i&lt;=loopCount ;i++ )<BR>??{<BR>???if (i==loopCount){<BR>????</FONT></P>
<P><FONT color=#0000ff size=2>System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));<BR>???} else {<BR>????</FONT></P>
<P><FONT color=#0000ff size=2>System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));<BR>???}<BR>??}<BR>?}<BR>?public static void main(String[] args) <BR>?{<BR>??SplitString ss = new SplitString("test中dd文dsaf中男大3443n中国43中国人</FONT></P>
<P><FONT color=#0000ff size=2>0ewldfls=103",4);<BR>??ss.SplitIt();<BR>?}<BR>}</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>16、JAVA多线程编程。 用JAVA写一个多线程程序，如写四个线程，二个加1，二个对一个变量减一，输出。 <BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>17、STRING与STRINGBUFFER的区别。 <BR>答：</STRONG>STRING的长度是不可变的，STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作，特别是内容要修改时，那么使用StringBuffer，如果最后需要String，那么使用StringBuffer的toString()方法</FONT></FONT></P>
<P><FONT color=#0000ff size=2>Jsp方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、jsp有哪些内置对象?作用分别是什么?<BR>答:</STRONG>JSP共有以下9种基本内置组件（可与ASP的6种内部组件相对应）： <BR>　request 用户端请求，此请求会包含来自GET/POST请求的参数 <BR>?? response 网页传回用户端的回应 <BR>?? pageContext 网页的属性是在这里管理 <BR>?? session 与请求有关的会话期 <BR>?? application servlet 正在执行的内容 <BR>?? out 用来传送回应的输出<BR>?? config servlet的构架部件 <BR>?? page JSP网页本身 <BR>?? exception 针对错误网页，未捕捉的例外 </FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、jsp有哪些动作?作用分别是什么?<BR>答:</STRONG>JSP共有以下6种基本动作<BR>?? jsp:include：在页面被请求的时候引入一个文件。 <BR>?? jsp:useBean：寻找或者实例化一个JavaBean。 <BR>?? jsp:setProperty：设置JavaBean的属性。 <BR>?? jsp:getProperty：输出某个JavaBean的属性。 <BR>?? jsp:forward：把请求转到一个新的页面。 <BR>?? jsp:plugin：根据浏览器类型为Java插件生成OBJECT或EMBED标记</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、JSP中动态INCLUDE与静态INCLUDE的区别？ <BR>答：</STRONG>动态INCLUDE用jsp:include动作实现<BR>?? <?XML:NAMESPACE PREFIX = JSP /><JSP:INCLUDE page="included.jsp" flush="true"></JSP:INCLUDE>它总是会检查所含文件中的变化，适合用于包含动态页面，并且可以带参数<BR>?? 静态INCLUDE用include伪码实现,定不会检查所含文件的变化，适用于包含静态页面<BR>?? <%@ include file="included.htm" %></FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、两种跳转方式分别是什么?有什么区别?<BR>答：</STRONG>有两种，分别为：<BR>? </FONT></FONT><JSP:INCLUDE page="included.jsp" flush="true"><BR><FONT color=#0000ff size=2>? <JSP:FORWARD page="nextpage.jsp"></JSP:FORWARD><BR>? 前者页面不会转向include所指的页面，只是显示该页的结果，主页面还是原来的页面。执行完后还会回来，相当于函数调用。并且可以带参数.后者完全转向新页面，不会再回来。相当于go to 语句。</FONT></P>
<P><FONT color=#0000ff size=2>Servlet方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、说一说Servlet的生命周期?<BR>答:</STRONG>servlet有良好的生存期的定义，包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 </FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、Servlet版本间(忘了问的是哪两个版本了)的不同?<BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、JAVA SERVLET API中forward() 与redirect()的区别？<BR>答:</STRONG>前者仅是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；后者则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。所以，前者更加高效，在前者可以满足需要时，尽量使用forward()方法，并且，这样也有助于隐藏实际的链接。在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用sendRedirect()方法。 </FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、Servlet的基本架构<BR></STRONG>public class ServletName extends HttpServlet {<BR>? public void doPost(HttpServletRequest request, HttpServletResponse response) throws<BR>????? ServletException, IOException? {<BR>????? }<BR>? public void doGet(HttpServletRequest request, HttpServletResponse response) throws<BR>????? ServletException, IOException? {<BR>????? }<BR>}</FONT></FONT></P>
<P><FONT color=#0000ff size=2>Jdbc、Jdo方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.<BR>答:</STRONG>程序如下：<BR>package hello.ant;<BR>import java.sql.*;<BR>public class? jdbc<BR>{<BR>?String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";<BR>?String theUser="admin";<BR>?String thePw="manager";<BR>?Connection c=null;<BR>?Statement conn;<BR>?ResultSet rs=null;<BR>?public jdbc() <BR>?{<BR>??try{<BR>??? Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <BR>????????? c = DriverManager.getConnection(dbUrl,theUser,thePw);<BR>??? conn=c.createStatement();<BR>??}catch(Exception e){<BR>???e.printStackTrace();<BR>??}<BR>?}<BR>?public boolean executeUpdate(String sql)<BR>?{<BR>???try<BR>???{<BR>?????conn.executeUpdate(sql);<BR>?????return true;<BR>???}<BR>???catch (SQLException e)<BR>???{<BR>?????e.printStackTrace();<BR>?????return false;<BR>???}<BR>?}<BR>?public ResultSet executeQuery(String sql)<BR>?{<BR>???rs=null;<BR>???try<BR>???{<BR>?????rs=conn.executeQuery(sql);<BR>???}<BR>???catch (SQLException e)<BR>???{<BR>?????e.printStackTrace();<BR>???}<BR>???return rs;<BR>?}<BR>?public void close()<BR>?{<BR>???try<BR>???{<BR>?????conn.close();<BR>?????c.close();<BR>???}<BR>???catch (Exception e)<BR>???{<BR>?????e.printStackTrace();<BR>???}<BR>?}<BR>?public static void main(String[] args)<BR>?{<BR>??ResultSet rs;<BR>??jdbc conn = new jdbc();<BR>??rs=conn.executeQuery("select * from test");<BR>??try{<BR>??while (rs.next())<BR>??{<BR>???System.out.println(rs.getString("id"));<BR>???System.out.println(rs.getString("name"));<BR>??}<BR>??}catch(Exception e)<BR>??{<BR>???e.printStackTrace();<BR>??}<BR>?}<BR>}</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、Class.forName的作用?为什么要用?<BR>答：</STRONG>调用该访问返回一个以字符串指定类名的类的对象。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、Jdo是什么?<BR>答:</STRONG>JDO是Java对象持久化的新的规范，为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储，因此对开发人员来说，存储数据对象完全不需要额外的代码（如JDBC API的使用）。这些繁琐的例行工作已经转移到JDO产品提供商身上，使开发人员解脱出来，从而集中时间和精力在业务逻辑上。另外，JDO很灵活，因为它可以在任何数据底层上运行。JDBC只是面向关系数据库（RDBMS)JDO更通用，提供到任何数据底层的存储功能，比如关系数据库、文件、XML以及对象数据库（ODBMS）等等，使得应用可移植性更强。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、在ORACLE大数据量下的分页解决方法。一般用截取ID方法，还有是三层嵌套方法。 <BR>答:</STRONG>一种分页方法<BR><%<BR>? int i=1;<BR>? int numPages=14;<BR>? String pages = request.getParameter("page") ;<BR>? int currentPage = 1;<BR>? currentPage=(pages==null)?(1):{Integer.parseInt(pages)}<BR>? sql = "select count(*) from tables";<BR>? ResultSet rs = DBLink.executeQuery(sql) ;<BR>? while(rs.next()) i = rs.getInt(1) ;<BR>? int intPageCount=1;<BR>? intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);<BR>? int nextPage ;<BR>? int upPage;<BR>? nextPage = currentPage+1;<BR>? if (nextPage>=intPageCount) nextPage=intPageCount;<BR>? upPage = currentPage-1;<BR>? if (upPage<=1) upPage=1;<BR>? rs.close();<BR>? sql="select * from tables";<BR>? rs=DBLink.executeQuery(sql);<BR>? i=0;<BR>? while((i<numPages*(currentPage-1))&&rs.next()){i++;}<BR>%><BR>//输出内容<BR>//输出翻页连接<BR>合计:<%=currentPage%>/<%=intPageCount%></FONT></FONT><A href="http://blog.csdn.net/zlsunnan/archive/2004/08/22/List.jsp?page=1"><FONT color=#0000ff size=2>第一页</FONT></A><A < P><FONT color=#0000ff size=2> </FONT>
<P><FONT color=#0000ff size=2>href="List.jsp?page=<%=upPage%>"&gt;上一页</FONT></A><BR><%<BR>? for(int j=1;j<=intPageCount;j++){<BR>? if(currentPage!=j){<BR>%><BR><FONT color=#0000ff size=2>? </FONT><A href="http://blog.csdn.net/zlsunnan/archive/2004/08/22/list.jsp?page=<%=j%>"><FONT color=#0000ff size=2>[<%=j%>]</FONT></A><FONT color=#0000ff size=2> <BR><%<BR>? }else{ <BR>? out.println(j);<BR>? }<BR>? }<BR>%><BR></FONT><A href="http://blog.csdn.net/zlsunnan/archive/2004/08/22/List.jsp?page=<%=nextPage%>"><FONT color=#0000ff size=2>下一页</FONT></A><A href="http://blog.csdn.net/zlsunnan/archive/2004/08/22/List.jsp?page=<%=intPageCount%>"><FONT color=#0000ff size=2>最后页</FONT></P>
<P><FONT color=#0000ff size=2></FONT></A></P>
<P><BR><FONT color=#0000ff size=2>Xml方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、xml有哪些解析技术?区别是什么?<BR>答:</STRONG>有DOM,SAX,STAX等<BR>DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的，这种结构占用的内存较多，而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件，不需要一次全部装载整个文件。当遇到像文件开头，文档结束，或者标签开头与标签结束时，它会触发一个事件，用户通过在其回调事件中写入处理代码来处理XML文件，适合对XML的顺序访问<BR>STAX:Streaming API for XML (StAX)</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、你在项目中用到了xml技术的哪些方面?如何实现的?<BR>答:</STRONG>用到了数据存贮，信息配置两方面。在做数据交换平台时，将不能数据源的数据组装成XML文件，然后将XML文件压缩打包加密后通过网络传送给接收者，接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时，利用XML可以很方便的进行，软件的各种配置参数都存贮在XML文件中。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、用jdom解析xml文件时如何解决中文问题?如何解析?<BR>答:</STRONG>看如下代码,用编码方式加以解决<BR>package test;<BR>import java.io.*;<BR>public class DOMTest<BR>{<BR>?private String inFile = "c:\\people.xml";<BR>?private String outFile = "c:\\people.xml";?<BR>?public static void main(String args[])<BR>?{<BR>??? ?new DOMTest();<BR>??? }<BR>?public DOMTest()<BR>?{<BR>??try <BR>???? {?<BR>???? ?javax.xml.parsers.DocumentBuilder builder = <BR>???? ??</FONT></FONT></P>
<P><FONT color=#0000ff size=2>javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();<BR>???? ?org.w3c.dom.Document doc = builder.newDocument();<BR>???? ?org.w3c.dom.Element root = doc.createElement("老师");<BR>???? ?org.w3c.dom.Element wang = doc.createElement("王");<BR>???org.w3c.dom.Element liu = doc.createElement("刘");<BR>???? ?wang.appendChild(doc.createTextNode("我是王老师"));<BR>???? ?root.appendChild(wang);<BR>???? ?doc.appendChild(root);<BR>???? ?javax.xml.transform.Transformer transformer = <BR>???? ??javax.xml.transform.TransformerFactory.newInstance().newTransformer();<BR>???? ?transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); <BR>???? ?transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");?? </FONT></P>
<P><FONT color=#0000ff size=2>? ?<BR>???? ?transformer.transform(new javax.xml.transform.dom.DOMSource(doc),<BR>???? ???????new </FONT></P>
<P><FONT color=#0000ff size=2>javax.xml.transform.stream.StreamResult(outFile));<BR>???? }<BR>???? catch (Exception e) <BR>???? {<BR>???? ?System.out.println (e.getMessage());<BR>???? }<BR>??? }<BR>}</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、编程用JAVA解析XML的方式.<BR>答:</STRONG>用SAX方式解析XML，XML文件如下：<BR><?xml version="1.0" encoding="gb2312"?><BR><PERSON><BR>? <NAME>王小明</NAME> <BR>? <COLLEGE>信息学院</COLLEGE>?? <BR>? <TELEPHONE>6258113</TELEPHONE> <BR>? <NOTES>男,1955年生,博士，95年调入海南大学</NOTES> <BR>?</PERSON> <BR>?事件回调类SAXHandler.java<BR>?import java.io.*; <BR>import java.util.Hashtable; <BR>import org.xml.sax.*; <BR>public class SAXHandler extends HandlerBase <BR>? { <BR>? private Hashtable table = new Hashtable(); <BR>? private String currentElement = null; <BR>? private String currentValue = null; <BR>? public void setTable(Hashtable table) <BR>??? { <BR>??? this.table = table; <BR>??? } <BR>? public Hashtable getTable() <BR>??? { <BR>??? return table; <BR>??? } <BR>? public void startElement(String tag, AttributeList attrs) <BR>? throws SAXException <BR>??? { <BR>??? currentElement = tag; <BR>??? } <BR>? public void characters(char[] ch, int start, int length) <BR>? throws SAXException <BR>??? { <BR>??? currentValue = new String(ch, start, length); <BR>??? } <BR>? public void endElement(String name) throws SAXException <BR>??? { <BR>??? if (currentElement.equals(name)) <BR>????? table.put(currentElement, currentValue); <BR>??? } <BR>? } <BR>JSP内容显示源码,SaxXml.jsp:<BR><BR><BR><BR><BR><BR><%@ page errorPage="ErrPage.jsp" <BR>contentType="text/html;charset=GB2312" %><BR><%@ page import="java.io.*" %><BR><%@ page import="java.util.Hashtable" %><BR><%@ page import="org.w3c.dom.*" %><BR><%@ page import="org.xml.sax.*" %><BR><%@ page import="javax.xml.parsers.SAXParserFactory" %><BR><%@ page import="javax.xml.parsers.SAXParser" %><BR><%@ page import="SAXHandler" %><BR><% <BR>File file = new File("c:\\people.xml"); <BR>FileReader reader = new FileReader(file); <BR>Parser parser; <BR>SAXParserFactory spf = SAXParserFactory.newInstance(); <BR>SAXParser sp = spf.newSAXParser(); <BR>SAXHandler handler = new SAXHandler(); <BR>sp.parse(new InputSource(reader), handler); <BR>Hashtable hashTable = handler.getTable(); <BR>out.println("<TABLE BORDER=2><CAPTION>教师信息表</CAPTION>"); <BR>out.println("<TR><TD>姓名</TD>" + "<TD>" + <BR>? (String)hashTable.get(new String("name")) + "</TD></TR>"); <BR>out.println("<TR><TD>学院</TD>" + "<TD>" + <BR>? (String)hashTable.get(new String("college"))+"</TD></TR>"); <BR>out.println("<TR><TD>电话</TD>" + "<TD>" + <BR>? (String)hashTable.get(new String("telephone")) + "</TD></TR>"); <BR>out.println("<TR><TD>备注</TD>" + "<TD>" + <BR>? (String)hashTable.get(new String("notes")) + "</TD></TR>"); <BR>out.println("</TABLE>"); <BR>%><BR><BR></FONT></FONT></P>
<P><FONT color=#0000ff size=2>EJB方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?<BR>答：</STRONG>规范内容包括Bean提供者，应用程序装配者，EJB容器，EJB配置工具，EJB服务提供者，系统管理员。这里面，EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建，撤消，激活，去活，与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、EJB与JAVA BEAN的区别？ <BR>答:</STRONG>Java Bean 是可复用的组件，对Java Bean并没有严格的规范，理论上讲，任何一个Java类都可以是一个Bean。但通常情况下，由于Java Bean是被容器所创建（如Tomcat)的，所以Java Bean应具有一个无参的构造器，另外，通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件，它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM，即分布式组件。它是基于Java的远程方法调用（RMI）技术的，所以EJB可以被远程访问（跨进程、跨计算机）。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中，EJB客户从不直接访问真正的EJB组件，而是通过其容器访问。EJB容器是EJB组件的代理，EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>3、EJB的基本架构<BR>答:</STRONG>一个EJB包括三个部分:<BR>? Remote Interface 接口的代码<BR>? package Beans;<BR>? import javax.ejb.EJBObject;<BR>? import java.rmi.RemoteException;<BR>? public interface Add extends EJBObject<BR>? {<BR>?? //some method declare <BR>? }<BR>? Home Interface 接口的代码<BR>? package Beans;<BR>? import java.rmi.RemoteException;<BR>? import jaax.ejb.CreateException;<BR>? import javax.ejb.EJBHome;<BR>? public interface AddHome extends EJBHome<BR>? {<BR>??? //some method declare<BR>? }<BR>? EJB类的代码<BR>? package Beans;<BR>? import java.rmi.RemoteException;<BR>? import javax.ejb.SessionBean;<BR>? import javx.ejb.SessionContext;<BR>? public class AddBean Implements SessionBean<BR>? {<BR>??? //some method declare<BR>? }? </FONT></FONT></P>
<P><FONT color=#0000ff size=2>J2EE,MVC方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、MVC的各个部分都有那些技术来实现?如何实现?<BR>答:</STRONG>MVC是Model－View－Controller的简写。"Model" 代表的是应用的业务逻辑（通过JavaBean，EJB组件实现）， "View" 是应用的表示面（由JSP页面产生），"Controller" 是提供应用的处理过程控制（一般是一个Servlet），通过这种设计模型把应用逻辑，处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>2、应用服务器与WEB SERVER的区别？ <BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><BR><FONT color=#0000ff><FONT size=2><STRONG>3、J2EE是什么？ <BR>答:</STRONG>Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中，可按照功能划分为不同的组件，这些组件又可在不同计算机上，并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>4、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。<BR>答：</STRONG>Web Service描述语言WSDL <BR>SOAP即简单对象访问协议(Simple Object Access Protocol)，它是用于交换XML编码信息的轻量级协议。<BR>UDDI 的目的是为电子商务建立标准；UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范，同时也包含一组使企业能将自身提供的Web Service注册，以使别的企业能够发现的访问协议的实现标准。</FONT></FONT></P>
<P><BR><FONT color=#0000ff><FONT size=2><STRONG>5、BS与CS的联系与区别。<BR></STRONG>希望大家补上，谢谢</FONT></FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>6、STRUTS的应用(如STRUTS架构)<BR>答：</STRONG>Struts是采用Java Servlet/JavaServer Pages技术，开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能： <BR>一.包含一个controller servlet，能将用户的请求发送到相应的Action对象。 <BR>二.JSP自由tag库，并且在controller servlet中提供关联支持，帮助开发员创建交互式表单应用。 <BR>三.提供了一系列实用对象：XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。 </FONT></FONT></P>
<P><FONT color=#0000ff size=2>设计模式方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、开发中都用到了那些设计模式?用在什么场合?<BR>答：</STRONG>每个模式都描述了一个在我们的环境中不断出现的问题，然后描述了该问题的解决方案的核心。通过这种方式，你可以无数次地使用那些已有的解决方案，无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。</FONT></FONT></P>
<P><BR><FONT color=#0000ff><FONT size=2><STRONG>2、UML方面<BR>答：</STRONG>标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,</FONT></FONT></P>
<P><FONT color=#0000ff size=2>JavaScript方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、如何校验数字型?<BR></STRONG>var re=/^\d{1,8}$|\.\d{1,2}$/;<BR>var str=document.form1.all(i).value;<BR>var r=str.match(re);<BR>if (r==null)<BR>{<BR>?? sign=-4;<BR>?? break;<BR>}<BR>else{<BR>?? document.form1.all(i).value=parseFloat(str);<BR>}</FONT></FONT></P>
<P><BR><FONT color=#0000ff size=2>CORBA方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、CORBA是什么?用途是什么? <BR>答：</STRONG>CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture)，由对象管理组织 (Object Management Group，缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为：<BR>用不同的程序设计语言书写 <BR>在不同的进程中运行 <BR>为不同的操作系统开发</FONT></FONT></P>
<P><BR><FONT color=#0000ff size=2>LINUX方面</FONT></P>
<P><FONT color=#0000ff><FONT size=2><STRONG>1、LINUX下线程，GDI类的解释。<BR>答：</STRONG>LINUX实现的就是基于核心轻量级进程的"一对一"线程模型，一个线程实体对应一个核心轻量级进程，而线程之间的管理在核外函数库中实现。<BR>GDI类为图像设备编程接口类库。<BR></FONT></FONT></P></JSP:INCLUDE><img src ="http://www.blogjava.net/dreaminfly/aggbug/2241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreaminfly/" target="_blank">小毅</a> 2005-03-19 21:18 <a href="http://www.blogjava.net/dreaminfly/archive/2005/03/19/2241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>武侠论坛</title><link>http://www.blogjava.net/dreaminfly/archive/2005/01/16/350.html</link><dc:creator>小毅</dc:creator><author>小毅</author><pubDate>Sun, 16 Jan 2005 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/dreaminfly/archive/2005/01/16/350.html</guid><wfw:comment>http://www.blogjava.net/dreaminfly/comments/350.html</wfw:comment><comments>http://www.blogjava.net/dreaminfly/archive/2005/01/16/350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreaminfly/comments/commentRss/350.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreaminfly/services/trackbacks/350.html</trackback:ping><description><![CDATA[<a href="http://gd.91.com/bbs/Topic/Topiclist.aspx?URL=0,201,0,0,1,0">http://gd.91.com/bbs/Topic/Topiclist.aspx?URL=0,201,0,0,1,0</a> <img src ="http://www.blogjava.net/dreaminfly/aggbug/350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreaminfly/" target="_blank">小毅</a> 2005-01-16 16:33 <a href="http://www.blogjava.net/dreaminfly/archive/2005/01/16/350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>