﻿<?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-&lt;font color="red"&gt;JRen&lt;/font&gt;&lt;font color="lightgreen"&gt;大鹏一曰同风起，扶摇直上九万里&lt;/font&gt;-随笔分类-Knowledge</title><link>http://www.blogjava.net/liaojiyong/category/11446.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 05 Jun 2007 07:09:30 GMT</lastBuildDate><pubDate>Tue, 05 Jun 2007 07:09:30 GMT</pubDate><ttl>60</ttl><item><title>Hashtable和HashMap类的区别</title><link>http://www.blogjava.net/liaojiyong/archive/2007/06/05/122081.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Tue, 05 Jun 2007 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2007/06/05/122081.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/122081.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2007/06/05/122081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/122081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/122081.html</trackback:ping><description><![CDATA[<p>最重要的不同是Hashtable的方法是同步的，而HashMap的方法不是。这就意味着，虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable，但你必须同样地为一个HashMap提供外同步。<br>一个方便的方法就是利用Collections类的静态的synchronizedMap()方法，它创建一个线程安全的Map对象，并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时，你不能切断Hashtable中的同步（比如在一个单线程的应用程序中），而且同步增加了很多处理费用。<br>第二点不同是，只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key，但任意数量的条目可以是空的value。这就是说，如果在表中没有发现搜索键，或者如果发现了搜索键，但它是一个空的值，那么get()将返回null。如果有必要，用containKey()方法来区别这两种情况。<br><br>一些资料建议，当需要同步时，用Hashtable，反之用HashMap。但是，因为在需要时，HashMap可以被同步，HashMap的功能比Hashtable的功能更多，而且它不是基于一个陈旧的类的，所以有人认为，在各种情况下，HashMap都优先于Hashtable。<br><br>关于Properties<br>有时侯，你可能想用一个hashtable来映射key的字符串到value的字符串。DOS、Windows和Unix中的环境字符串就有一些例子，如key的字符串PATH被映射到value的字符串C:\WINDOWS;C:\WINDOWS\SYSTEM。Hashtables是表示这些的一个简单的方法，但Java提供了另外一种方法。<br><br>Java.util.Properties类是Hashtable的一个子类，设计用于String&nbsp;keys和values。Properties对象的用法同Hashtable的用法相象，但是类增加了两个节省时间的方法，你应该知道。<br><br>Store()方法把一个Properties对象的内容以一种可读的形式保存到一个文件中。Load()方法正好相反，用来读取文件，并设定Properties对象来包含keys和values。<br><br>注意，因为Properties扩展了Hashtable，你可以用超类的put()方法来添加不是String对象的keys和values。这是不可取的。另外，如果你将store()用于一个不包含String对象的Properties对象，store()将失败。作为put()和get()的替代，你应该用setProperty()和getProperty()，它们用String参数。<br><br><br></p>
<p>下面再转一篇关于两个类的区别，比较简单的过一下</p>
<div><font color=#333333><strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>的应用非常广泛，HashMap是新框架中用来代替<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>的类，也就是说建议使用HashMap，不要使用<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>。</font></div>
<div>&nbsp;<font color=#333333>这里简单分析他们的区别。&nbsp;<br>1.<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>的方法是<font color=#0080ff>同步</font>的，HashMap<font color=#0080ff>未经同步</font>，所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。（最主要的区别）<br><br>2.<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong><font color=#0080ff>不允许null值</font>(key和value都不可以),<font color=#0080ff>HashMap允许null值(key和value都可以，只容许有一个null值的key，可以有多个null值的value</font>)。<br><br>3.<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>有一个contains(Object&nbsp;value)，功能和containsValue(Object&nbsp;value)功能一样。<br><br>4.<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>使用Enumeration，HashMap使用Iterator。<br><br>以上只是表面的不同，它们的实现也有很大的不同。<br><br>5.<strong style="COLOR: black; BACKGROUND-COLOR: #ffff66">HashTable</strong>中hash数组默认大小是11，增加的方式是&nbsp;old*2+1。HashMap中hash数组的默认大小是16，而且一定是2的指数。<br><br>6.哈希值的使用不同，<strong style="COLOR: black">HashTable</strong>直接使用对象的hashCode，代码是这样的：<br>int&nbsp;hash&nbsp;=&nbsp;key.hashCode();<br>int&nbsp;index&nbsp;=&nbsp;(hash&nbsp;&amp;&nbsp;0x7FFFFFFF)&nbsp;%&nbsp;tab.length;<br>而HashMap重新计算hash值，而且用<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">与</strong>代替求模：<br>int&nbsp;hash&nbsp;=&nbsp;hash(k);<br>int&nbsp;i&nbsp;=&nbsp;indexFor(hash,&nbsp;table.length);<br></font></div>
<div>
<table width=680 border=0>
    <tbody>
        <tr>
            <td width=403><font color=#333333 size=2>static&nbsp;int&nbsp;hash(Object&nbsp;x)&nbsp;{<br>　　&nbsp;int&nbsp;h&nbsp;=&nbsp;x.hashCode();<br><br>　　&nbsp;h&nbsp;+=&nbsp;~(h&nbsp;&lt;&lt;&nbsp;9);<br>　　&nbsp;h&nbsp;^=&nbsp;(h&nbsp;&gt;&gt;&gt;&nbsp;14);<br>　　&nbsp;h&nbsp;+=&nbsp;(h&nbsp;&lt;&lt;&nbsp;4);<br>　　&nbsp;h&nbsp;^=&nbsp;(h&nbsp;&gt;&gt;&gt;&nbsp;10);<br>　　&nbsp;return&nbsp;h;<br>}<br>static&nbsp;int&nbsp;indexFor(int&nbsp;h,&nbsp;int&nbsp;length)&nbsp;{<br>　　&nbsp;return&nbsp;h&nbsp;&amp;&nbsp;(length-1);<br>}<br>以上只是一些比较突出的区别，当然他们的实现上还是有很多不同的，比如<br>HashMap对null的操作。</font></td>
        </tr>
    </tbody>
</table>
</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/122081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2007-06-05 10:57 <a href="http://www.blogjava.net/liaojiyong/archive/2007/06/05/122081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>精华贴：JAVA相关基础知识 (转)</title><link>http://www.blogjava.net/liaojiyong/archive/2006/06/09/51644.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 09 Jun 2006 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/06/09/51644.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/51644.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/06/09/51644.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/51644.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/51644.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA				相关基础知识														 												1				、面向对象的特征有哪些方面								1.				抽象：								抽象就是忽略一个主题中与当前目标无关的那些方面，以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题，而只是选择其中的一部分，暂时不用部分细节。抽象包括两...&nbsp;&nbsp;<a href='http://www.blogjava.net/liaojiyong/archive/2006/06/09/51644.html'>阅读全文</a><img src ="http://www.blogjava.net/liaojiyong/aggbug/51644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-06-09 11:21 <a href="http://www.blogjava.net/liaojiyong/archive/2006/06/09/51644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微软笔试面试题集锦（转）</title><link>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47850.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 24 May 2006 09:08:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47850.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/47850.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/47850.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/47850.html</trackback:ping><description><![CDATA[
		<div id="header">
				<font size="2">一．最基本题型（说明：此类题型比较简单） <br /><br />1． 1到100有多少个9 <br /><br />2． 连续整数之和为1000的共有几组 <br /><br />3. U2合唱团在17分钟内得赶到演唱会场，途中必需跨过一座桥，四个人从桥的 <br />同一端出发，你得帮助他们到达另一端，天色很暗，而他们只有一只手电筒。 <br />一次同时最多可以有两人一起过桥，而过桥的时候必须持有手电筒，所以就 <br />得有人把手电筒带来带去，来回桥两端。手电筒是不能用丢的方式来传递的。 <br />四个人的步行速度各不同，若两人同行则以较慢者的速度为准。 Bono需花1 <br />分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥 Larry需花10分钟过桥 <br />他们要如何在17分钟内过桥呢？(这是Micrsoft征聘人员时问的问题，你必须 <br />在五分钟内答出来才可能获得聘用)。 <br /><br />4．   说有一份遗产3500元一个女人的老公留下来的，如果这个女人生的是儿子那么 <br />她将分到她儿子的一半，如果是女儿，他将分得她女儿的2倍,如果这个女人生 <br />了一对，一男一女，问各得多少遗产？ <br /><br />5． 老师d的物理测验答案在教室里丢失了，今天那个教室上了5堂课，老师d上了3 <br />堂，有可能是a、b、c三个同学盗窃 <br />已知：  1、a上了两堂课 <br />        2、b上了三堂课 <br />        3、c上了四堂课 <br />        4、a、b、c每个人都上了老师d的两堂课 <br />        5、五堂课中，三个人到堂的组合各不相同 <br />        6、老师d的课中有一堂，三个人中到了两个，事后证明不是那两个人偷得 <br />问？是谁偷得 <br /><br />6． a b c d e <br />           * f <br />__________________ <br />＝g g g g g g <br />问，a b c d e f g各是什么数字（不重复） <br /><br />7． a进行一次C和D之间往返旅行，希望在整个旅行中能够达到60km/h的平均速度， <br />但是当他从C到达D的时候发现平均速度只有30km/h，问a应当怎么做才能够使 <br />这次往返旅行的平局速度到达60km/h <br /><br />8． 烧一根不均匀的绳，从头烧到尾总共需要1个小时。现在有若干条材质相同的 <br />绳子，问如何用烧绳的方法来计时一个小时十五分钟呢？ <br /><br />9． 你有一桶果冻，其中有黄色、绿色、红色三种，闭上眼睛抓取同种颜色的两个。 <br />抓取多少个就可以确定你肯定有两个同一颜色的果冻？ <br /><br />10． 如果你有无穷多的水，一个3公升的提捅，一个5公升的提捅，两只提捅形状上 <br />下都不均匀，问你如何才能准确称出4公升的水？ <br /><br />11． 一个岔路口分别通向诚实国和说谎国。来了两个人，已知一个是诚实国的，另 <br />一个是说谎国的。诚实国永远说实话，说谎国永远说谎话。现在你要去说谎国， <br />但不知道应该走哪条路，需要问这两个人。请问应该怎么问？ <br /><br />12． 12个球一个天平，现知道只有一个和其它的重量不同，问怎样称才能用三次就 <br />找到那个球。13个呢？ <br /><br />13．在9个点上画10条直线，要求每条直线上至少有三个点？ <br /><br />14．在一天的24小时之中，时钟的时针、分针和秒针完全重合在一起的时候有 <br />几次？都分别是什么时间？你怎样算出来的？ <br /><br />二．没有答案型（说明：这些题显然不是考你智力。而考的是你的反应能力。 这种题大多数没有答案，但是要看你的反应喽！） <br /><br />1．为什么下水道的盖子是圆的？ <br /><br />2．中国有多少辆汽车？ <br /><br />3．将汽车钥匙插入车门，向哪个方向旋转就可以打开车锁？ <br /><br />4．如果你要去掉中国的34个省（含自治区、直辖市和港澳特区及台湾省）中的 <br />任何一个，你会去掉哪一个，为什么？ <br /><br />5．多少个加油站才能满足中国的所有汽车？ <br /><br />6．想象你站在镜子前，请问，为什么镜子中的影象可以颠倒左右，却不能颠倒上下？ <br /><br />7．为什么在任何旅馆里，你打开热水，热水都会瞬间倾泻而出？ <br /><br />8．你怎样将Excel的用法解释给你的奶奶听？ <br /><br />9．你怎样重新改进和设计一个ATM银行自动取款机？ <br /><br />10．如果你不得不重新学习一种新的计算机语言，你打算怎样着手来开始？ <br /><br />11．如果你的生涯规划中打算在5年内受到奖励，那获取该项奖励的动机是什么？ <br />观众是谁？ <br /><br />12．如果微软告诉你，我们打算投资五百万美元来启动你的投资计划，你将开始什 <br />么样商业计划？为什么？ <br />13．如果你能够将全世界的电脑厂商集合在一个办公室里，然后告诉他们将被强迫 <br />做一件事，那件事将是什么？ <br /><br />三．难题（说明：这类题有一定难度，如果得不到答案，也不能说明什么。 如果你想到了解题思路，那么答案马上就能出来。如果想不到思路， 那么......就别想解出来了。） <br /><br />1．你让工人为你工作7天，回报是一根金条，这个金条平分成相连的7段， <br />你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断， <br />你如何给你的工人付费？ <br /><br />2．有一辆火车以每小时15公里的速度离开北京直奔广州，同时另一辆火车 <br />每小时20公里的速度从广州开往北京。如果有一只鸟，以30公里每小时的速 <br />度和两辆火车同时启动，从北京出发，碰到另一辆车后就向相反的方向返回 <br />去飞，就这样依次在两辆火车之间来回地飞，直到两辆火车相遇。请问，这 <br />只鸟共飞行了多长的距离？ <br /><br />3．你有四个装药丸的罐子，每个药丸都有一定的重量，被污染的药丸是没被 <br />污染的药丸的重量+1。只称量一次，如何判断哪个罐子的药被污染了？ <br /><br />4．门外三个开关分别对应室内三盏灯，线路良好，在门外控制开关时候不能 <br />看到室内灯的情况，现在只允许进门一次，确定开关和灯的对应关系？ <br /><br />5．人民币为什么只有1、2、5、10的面值？ <br /><br />6．你有两个罐子以及50个红色弹球和50个蓝色弹球，随机选出一个罐子， <br />随机选出一个弹球放入罐子，怎么给出红色弹球最大的选中机会？在你的计 <br />划里，得到红球的几率是多少？ <br /><br />四．超难题（说明：如果你是第一次看到这种题，并且以前从来没有见过类 <br />似的题型，并且能够在半个小时之内做出答案。只能说明你的智力超常......） <br /><br />第一题  五个海盗抢到了100颗宝石，每一颗都一样大小和价值连城。 <br />他们决定这么分： <br />抽签决定自己的号码（1、2、3、4、5） <br />首先，由1号提出分配方案，然后大家表决，当且仅当超过半数的人同意时， <br />按照他的方案进行分配，否则将被扔进大海喂鲨鱼如果1号死后，再由2号提 <br />出分配方案，然后剩下的4人进行表决，当且仅当超过半数的人同意时，按照 <br />他的方案进行分配，否则将被扔入大海喂鲨鱼 <br />依此类推 <br />条件：每个海盗都是很聪明的人，都能很理智地做出判断，从而做出选择。 <br />问题：第一个海盗提出怎样的分配方案才能使自己的收益最大化？ <br /><br />第二题 . 一道关于飞机加油的问题，已知： <br />每个飞机只有一个油箱， 飞机之间可以相互加油（注意是相互，没有加油机） 一箱油可供一架飞机绕地球飞半圈， <br /><br />问题： 为使至少一架飞机绕地球一圈回到起飞时的飞机场，至少需要出动几架飞机？ <br />（所有飞机从同一机场起飞，而且必须安全返回机场，不允许中途降落，中间 <br />没有飞机场） <br /><br />五．主观题（说明：在以后的工作过程中，我们可定会犯这样那样的错误。 既然错误已经酿成，损失在所难免，我们只能想办法把损失减少到最小。 如果能巧妙地回答出这些问题，再发生错误的情况下。能让客户有最少的抱 <br />怨，公司有最少的损失。） <br /><br />1．某手机厂家由于设计失误，有可能造成电池寿命比原来设计的寿命短一半 （不是冲放电时间），解决方案就是免费更换电池或给50元购买该厂家新手机 的折换券。请给所有已购买的用户写信告诉解决方案。 <br /><br />2．一高层领导在参观某博物馆时，向博物馆馆员小王要了一块明代的城砖作 为纪念，按国家规定，任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导，将城砖取回。 <br /><br />3．营业员小姐由于工作失误，将2万元的笔记本电脑以1.2万元错卖给李先生， <br />王小姐的经理怎么写信给李先生试图将钱要回来？ <br /><br />六.算法题（说明：这些题就不是什么花样了，考的是你的基础知识怎么样。 再聪明而没有实学的人都将会被这些题所淘汰。） <br /><br />1．链表和数组的区别在哪里？ <br /><br />2．编写实现链表排序的一种算法。说明为什么你会选择用这样的方法？ <br /><br />3．编写实现数组排序的一种算法。说明为什么你会选择用这样的方法？ <br /><br />4．编写能直接实现strstr()函数功能的代码。 <br /><br />5．编写反转字符串的程序，要求优化速度、优化空间。 <br /><br />6．在链表里如何发现循环链接？ <br /><br />7．给出洗牌的一个算法，并将洗好的牌存储在一个整形数组里。 <br /><br />8．写一个函数，检查字符是否是整数，如果是，返回其整数值。 <br />（或者：怎样只用4行代码编写出一个从字符串到长整形的函数？） <br /><br />9．给出一个函数来输出一个字符串的所有排列。 <br /><br />10．请编写实现malloc()内存分配函数功能一样的代码。 <br /><br />11．给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串 <br />B的前几个字节重叠。 <br /><br />12．怎样编写一个程序，把一个有序整数数组放到二叉树中？ <br /><br />13．怎样从顶部开始逐层打印二叉树结点数据？请编程。 <br /><br />14．怎样把一个链表掉个顺序（也就是反序，注意链表的边界条件并考虑空链表）？ <br /><br />七．几个微软技术支持中心电话面试的题目 <br /><br />1.如果只想让程序有一个实例运行，不能运行两个。象winnamp一样， 只能开一个窗口，怎么作？ <br /><br />2.如何截取键盘的响应，让所有的'a'变成'b'？ <br /><br />3.apartment在com中有什么用？为什么要引入这个？ <br /><br />4.存储过程是什么，有什么用，什么优点？ <br /><br />5.template有什么特点，什么时候用？ <br /><br />6.好像最好要了解win32sdk底层的知识。比如消息响应的过程等等。 <br /><br />7.对.net的理解，对web service的理解，对三层结构的理解 <br /><br />8.两层的负载平衡与三层结构的负载平衡有什么差别，优点 <br /><br />9.windows DNA结构的特点，优点。 </font>
		</div>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/47850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-05-24 17:08 <a href="http://www.blogjava.net/liaojiyong/archive/2006/05/24/47850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java面试题集(转)</title><link>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47777.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 24 May 2006 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47777.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/47777.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/47777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/47777.html</trackback:ping><description><![CDATA[
		<p>基础知识： <br />1.C++或Java中的异常处理机制的简单原理和应用。 </p>
		<p>当JAVA程序违反了JAVA的语义规则时，JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查，程序员可以创建自己的异常，并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。 </p>
		<p>2. Java的接口和C++的虚类的相同和不同处。 </p>
		<p>由于Java不支持多继承，而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性，现有的单继承机制就不能满足要求。与继承相比，接口有更高的灵活性，因为接口中没有任何实现代码。当一个类实现了接口以后，该类要实现接口里面所有的方法和属性，并且接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。 </p>
		<p>3. 垃圾回收的优点和原理。并考虑2种回收机制。 </p>
		<p>Java语言中一个显著的特点就是引入了垃圾回收机制，使c++程序员最头疼的内存管理的问题迎刃而解，它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制，Java中的对象不再有“作用域”的概念，只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露，有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行，不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收，程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收，增量垃圾回收。 </p>
		<p>4. 请说出你所知道的线程同步的方法。 </p>
		<p>wait():使一个线程处于等待状态，并且释放所持有的对象的lock。 </p>
		<p>sleep():使一个正在运行的线程处于睡眠状态，是一个静态方法，调用此方法要捕捉InterruptedException异常。 </p>
		<p>notify():唤醒一个处于等待状态的线程，注意的是在调用此方法的时候，并不能确切的唤醒某一个等待状态的线程，而是由JVM确定唤醒哪个线程，而且不是按优先级。 </p>
		<p>Allnotity():唤醒所有处入等待状态的线程，注意并不是给所有唤醒线程一个对象的锁，而是让它们竞争。 </p>
		<p>5. 请讲一讲析构函数和虚函数的用法和作用。 </p>
		<p>6. Error与Exception有什么区别？ </p>
		<p>Error表示系统级的错误和程序不必处理的异常， </p>
		<p>Exception表示需要捕捉或者需要程序进行处理的异常。 </p>
		<p>7. 在java中一个类被声明为final类型，表示了什么意思？ </p>
		<p>表示该类不能被继承，是顶级类。 </p>
		<p>8. 描述一下你最常用的编程风格。 </p>
		<p>9. heap和stack有什么区别。 </p>
		<p>栈是一种线形集合，其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 </p>
		<p>堆是栈的一个组成元素 </p>
		<p>10. 如果系统要使用超大整数（超过long长度范围），请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算）。 </p>
		<p>public class BigInt() </p>
		<p>{ </p>
		<p>int[] ArrOne = new ArrOne[1000]; </p>
		<p>String intString=""; </p>
		<p>public int[] Arr(String s) </p>
		<p>{ </p>
		<p>intString = s; </p>
		<p>for(int i=0;i&lt;ArrOne.leght;i++) </p>
		<p>{ </p>
		<p>11. 如果要设计一个图形系统，请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现 </p>
		<p>12，谈谈final, finally, finalize的区别。 </p>
		<p>　　final?修饰符（关键字）如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为 abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为final的方法也同样只能使用，不能重载。 </p>
		<p>　　finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch 子句就会执行，然后控制就会进入 finally 块（如果有的话）。 </p>
		<p>　　finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的，因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 </p>
		<p>13，Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)? </p>
		<p>　　匿名的内部类是没有名字的内部类。不能extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现。 </p>
		<p> </p>
		<p>14，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。 </p>
		<p>　　Nested Class （一般是C++的说法），Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.ASP?id=704&amp;page=1 </p>
		<p>　　注： 静态内部类（Inner Class）意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象 </p>
		<p>第四，&amp;和&amp;&amp;的区别。 </p>
		<p>　　&amp;是位运算符。&amp;&amp;是布尔逻辑运算符。 </p>
		<p>15，HashMap和Hashtable的区别。 </p>
		<p> </p>
		<p>　　都属于Map接口的类，实现了将惟一键映射到特定的值上。 </p>
		<p> </p>
		<p>　　HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 </p>
		<p>　　Hashtable 类似于 HashMap，但是不允许 null 键和 null 值。它也比 HashMap 慢，因为它是同步的。 </p>
		<p>16，Collection 和 Collections的区别。 </p>
		<p>　　Collections是个java.util下的类，它包含有各种有关集合操作的静态方法。 </p>
		<p>　　Collection是个java.util下的接口，它是各种集合结构的父接口。 </p>
		<p>17，什么时候用assert。 </p>
		<p>　　断言是一个包含布尔表达式的语句，在执行这个语句时假定该表达式为 true。如果表达式计算为 false，那么系统会报告一个 Assertionerror。它用于调试目的： </p>
		<p>assert(a &gt; 0); // throws an Assertionerror if a &lt;= 0 </p>
		<p>断言可以有两种形式： </p>
		<p>assert Expression1 ; </p>
		<p>assert Expression1 : Expression2 ; </p>
		<p>　　Expression1 应该总是产生一个布尔值。 </p>
		<p>　　Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。 </p>
		<p>　　断言在默认情况下是禁用的。要在编译时启用断言，需要使用 source 1.4 标记： </p>
		<p>　　javac -source 1.4 Test.java </p>
		<p>　　要在运行时启用断言，可使用 -enableassertions 或者 -ea 标记。 </p>
		<p>　　要在运行时选择禁用断言，可使用 -da 或者 -disableassertions 标记。 </p>
		<p>　　要系统类中启用断言，可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。 </p>
		<p>　　可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过，断言不应该用于验证传递给公有方法的参数，因为不管是否启用了断言，公有方法都必须检查其参数。不过，既可以在公有方法中，也可以在非公有方法中利用断言测试后置条件。另外，断言不应该以任何方式改变程序的状态。 </p>
		<p>18，GC是什么? 为什么要有GC? (基础)。 </p>
		<p>　　GC是垃圾收集器。Java 程序员不用担心内存管理，因为垃圾收集器会自动进行管理。要请求垃圾收集，可以调用下面的方法之一： </p>
		<p>System.gc() </p>
		<p>Runtime.getRuntime().gc() </p>
		<p>19，String s = new String("xyz");创建了几个String Object? </p>
		<p>　　两个对象，一个是“xyx”,一个是指向“xyx”的引用对象s。 </p>
		<p>20，Math.round(11.5)等於多少? Math.round(-11.5)等於多少? </p>
		<p>　　Math.round(11.5)返回（long）12，Math.round(-11.5)返回（long）-11; </p>
		<p>21，short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? </p>
		<p>　　short s1 = 1; s1 = s1 + 1;有错，s1是short型，s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。 </p>
		<p>22，sleep() 和 wait() 有什么区别? 搞线程的最爱 </p>
		<p>　　sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后，线程不一定立即恢复执行。这是因为在那个时刻，其它线程可能正在运行而且没有被调度为放弃执行，除非(a)“醒来”的线程具有更高的优先级 (b)正在运行的线程因为其它原因而阻塞。 </p>
		<p>　　wait()是线程交互时，如果线程对一个同步对象x 发出一个wait()调用，该线程会暂停执行，被调对象进入等待状态，直到被唤醒或等待时间到。 </p>
		<p>23，Java有没有goto? </p>
		<p>　　Goto?java中的保留字，现在没有在java中使用。 </p>
		<p> </p>
		<p>24，数组有没有length()这个方法? String有没有length()这个方法？ </p>
		<p>　　数组没有length()这个方法，有length的属性。 </p>
		<p>　　String有有length()这个方法。 </p>
		<p>25，Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? </p>
		<p>　　方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现，重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数，我们说该方法被重写 (Overriding)。子类的对象使用这个方法时，将调用子类中的定义，对它而言，父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法，它们或有不同的参数个数或有不同的参数类型，则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 </p>
		<p>26，Set里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? </p>
		<p>　　Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。 </p>
		<p>　　equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值。</p>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/47777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-05-24 11:00 <a href="http://www.blogjava.net/liaojiyong/archive/2006/05/24/47777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在网上看到华为java的面试题 （转）</title><link>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47768.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Wed, 24 May 2006 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47768.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/47768.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/05/24/47768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/47768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/47768.html</trackback:ping><description><![CDATA[JAVA方面<br />1 面向对象的特征有哪些方面   
<p>2 String是最基本的数据类型吗?</p><p>3 int 和 Integer 有什么区别</p><p>4 String 和StringBuffer的区别</p><p>5 运行时异常与一般异常有何异同？<br />异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。</p><p>6 说出一些常用的类，包,接口，请各举5个</p><p>7 说出ArrayList,Vector, LinkedList的存储性能和特性<br />ArrayList和Vector都是使用数组方式存储数据，此数组元素数大于实际存储的数据以便增加和插入元素，它们都允许直接按序号索引元素，但是插入元素要涉及数组元素移动等内存操作，所以索引数据快而插入数据慢，Vector由于使用了synchronized方法（线程安全），通常性能上较ArrayList差，而LinkedList使用双向链表实现存储，按序号索引数据需要进行前向或后向遍历，但是插入数据时只需要记录本项的前后项即可，所以插入速度较快。<br />8设计4个线程，其中两个线程每次对j增加1，另外两个线程对j每次减少1。写出程序。<br />以下程序使用内部类实现线程，对j增减的时候没有考虑顺序问题。<br />public class ThreadTest1{<br />    private int j;<br />    public static void main(String args[]){<br />        ThreadTest1 tt=new ThreadTest1();<br />        Inc inc=tt.new Inc();<br />        Dec dec=tt.new Dec();<br />        for(int i=0;i&lt;2;i++){<br />            Thread t=new Thread(inc);<br />            t.start();<br />            t=new Thread(dec);<br />            t.start();<br />        }<br />    }<br />    private synchronized void inc(){<br />        j++;<br />        System.out.println(Thread.currentThread().getName()+"-inc:"+j);<br />    }<br />    private synchronized void dec(){<br />        j--;<br />        System.out.println(Thread.currentThread().getName()+"-dec:"+j);<br />    }<br />    <br />    class Inc implements Runnable{<br />        public void run(){<br />            for(int i=0;i&lt;100;i++){<br />                inc();<br />            }<br />        }<br />    }<br />    class Dec implements Runnable{<br />        public void run(){<br />            for(int i=0;i&lt;100;i++){<br />                dec();<br />            }<br />        }<br />    }<br />}</p><p>9.JSP的内置对象及方法。<br />request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息，并且提供了几个用于获取cookie, header, 和session数据的有用的方法。 </p><p>response response表示HttpServletResponse对象，并提供了几个用于设置送回 浏览器的响应的方法（如cookies,头信息等） </p><p>out out 对象是javax.jsp.JspWriter的一个实例，并提供了几个方法使你能用于向浏览器回送输出结果。 </p><p>pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API，并且包装了通用的servlet相关功能的方法。 </p><p>session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息 </p><p>application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息 </p><p>config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 </p><p>page page表示从该页面产生的一个servlet实例<br />10.用socket通讯写出客户端和服务器端的通讯，要求客户发送数据后能够回显相同的数据。<br />参见课程中socket通讯例子。</p><p>11说出Servlet的生命周期，并说出Servlet和CGI的区别。<br />Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。<br />与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。<br />12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别，StatefulBean和StatelessBean的区别。</p><p>13．EJB包括（SessionBean,EntityBean）说出他们的生命周期，及如何管理事务的？</p><p>14．说出数据连接池的工作机制是什么?</p><p>15.同步和异步有和异同，在什么情况下分别使用他们？举例说明。</p><p>16.应用服务器有那些？</p><p>17你所知道的集合类都有哪些？主要方法？</p><p>18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T，请用JDBC检索出表T的所有数据。</p><p>19．说出在JSP页面里是怎么分页的?<br />页面需要保存以下参数：<br />总行数：根据sql语句得到总行数<br />每页显示行数：设定值<br />当前页数：请求参数<br />页面根据当前页数和每页行数计算出当前页第一行行数，定位结果集到此行，对结果集取出每页显示行数的行即可。</p><p><br />数据库方面：</p><p>1.存储过程和函数的区别<br />存储过程是用户定义的一系列sql语句的集合，涉及特定表或其它对象的任务，用户可以调用存储过程，而函数通常是数据库已定义的方法，它接收参数并返回某种类型的值并且不涉及特定用户表。<br />2.事务是什么？<br />事务是作为一个逻辑单元执行的一系列操作，一个逻辑工作单元必须有四个属性，称为 ACID（原子性、一致性、隔离性和持久性）属性，只有这样才能成为一个事务：<br />原子性<br />事务必须是原子工作单元；对于其数据修改，要么全都执行，要么全都不执行。<br />一致性<br />事务在完成时，必须使所有的数据都保持一致状态。在相关数据库中，所有规则都必须应用于事务的修改，以保持所有数据的完整性。事务结束时，所有的内部数据结构（如 B 树索引或双向链表）都必须是正确的。<br />隔离性<br />由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态，要么是另一并发事务修改它之前的状态，要么是另一事务修改它之后的状态，事务不会查看中间状态的数据。这称为可串行性，因为它能够重新装载起始数据，并且重播一系列事务，以使数据结束时的状态与原始事务执行的状态相同。<br />持久性<br />事务完成之后，它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。</p>3.游标的作用？如何知道游标已经到了最后？<br />游标用于定位结果集的行，通过判断全局变量@@FETCH_STATUS可以判断是否到了最后，通常此变量不等于0表示出错或到了最后。<br />4.触发器分为事前触发和事后触发，这两种触发有和区别。语句级触发和行级触发有何区别。<br />事前触发器运行于触发事件发生之前，而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。<br />语句级触发器可以在语句执行前或后执行，而行级触发在触发器所影响的每一行触发一次。<img src ="http://www.blogjava.net/liaojiyong/aggbug/47768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-05-24 10:22 <a href="http://www.blogjava.net/liaojiyong/archive/2006/05/24/47768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SCWCD Mock Exam（转）</title><link>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47103.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 19 May 2006 10:45:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47103.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/47103.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/47103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/47103.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我把 worookie 所蒐集到的考題加以校對 以及把大家的回答加以整理 依照樹狀結構分為題目以及答案 所以大家可以使用樹狀結構的瀏覽進行自我測驗 由於考題來源不一 所以會以十個題號為一個單位貼出 旁邊附註實際的題數 如果題目有錯誤或是解答不夠詳盡 歡迎大家提出討論 																																														...&nbsp;&nbsp;<a href='http://www.blogjava.net/liaojiyong/archive/2006/05/19/47103.html'>阅读全文</a><img src ="http://www.blogjava.net/liaojiyong/aggbug/47103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-05-19 18:45 <a href="http://www.blogjava.net/liaojiyong/archive/2006/05/19/47103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>华为公司 java 面试题（转）</title><link>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47092.html</link><dc:creator>liaojiyong</dc:creator><author>liaojiyong</author><pubDate>Fri, 19 May 2006 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47092.html</guid><wfw:comment>http://www.blogjava.net/liaojiyong/comments/47092.html</wfw:comment><comments>http://www.blogjava.net/liaojiyong/archive/2006/05/19/47092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liaojiyong/comments/commentRss/47092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liaojiyong/services/trackbacks/47092.html</trackback:ping><description><![CDATA[<p>第一部分：选择题<br>QUESTION NO: 1<br>1、public class Test {<br>&nbsp;&nbsp;&nbsp; public static void changeStr(String str){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str="welcome";<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str="1234";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; changeStr(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(str);<br>&nbsp;&nbsp;&nbsp; }<br>}<br>Please write the output result ：</p>
<p>QUESTION NO:2<br>1. public class Test {<br>2. static boolean foo(char c) {<br>3. System.out.print(c);<br>4. return true;<br>5. }<br>6. public static void main( String[] argv ) {<br>7. int i =0;<br>8. for ( foo('A'); foo('B')&amp;&amp;(i&lt;2); foo('C')){<br>9. i++ ;<br>10. foo('D');<br>12. }<br>13. }<br>14. }<br>What is the result?<br>A. ABDCBDCB<br>B. ABCDABCD<br>C. Compilation fails.<br>D. An exception is thrown at runtime.</p>
<p>QUESTION NO: 3<br>1. class A {<br>2. protected int method1(int a, int b) { return 0; }<br>3. }<br>Which two are valid in a class that extends class A? (Choose two)<br>A. public int method1(int a, int b) { return 0; }<br>B. private int method1(int a, int b) { return 0; }<br>C. private int method1(int a, long b) { return 0; }<br>D. public short method1(int a, int b) { return 0; }<br>E. static protected int method1(int a, int b) { return 0; }</p>
<p>QUESTION NO: 4<br>1. public class Outer{<br>2. public void someOuterMethod() {<br>3. // Line 3<br>4. }<br>5. public class Inner{}<br>6. public static void main( String[]argv ) {<br>7. Outer o = new Outer();<br>8. // Line 8<br>9. }<br>10. }<br>Which instantiates an instance of Inner?<br>A. new Inner(); // At line 3<br>B. new Inner(); // At line 8<br>C. new o.Inner(); // At line 8<br>D. new Outer.Inner(); // At line 8//new Outer().new Inner()</p>
<p>QUESTION NO: 5<br>Which method is used by a servlet to place its session ID in a URL that is written to the servlet&#8217;s response output stream?<br>A. The encodeURL method of the HttpServletRequest interface.<br>B. The encodeURL method of the HttpServletResponse interface.<br>C. The rewriteURL method of the HttpServletRequest interface.<br>D. The rewriteURL method of the HttpServletResponse interface.</p>
<p>QUESTION NO: 6<br>Which two are equivalent? (Choose two)<br>A. &lt;%= YoshiBean.size%&gt;<br>B. &lt;%= YoshiBean.getSize()%&gt;<br>C. &lt;%= YoshiBean.getProperty("size")%&gt;<br>D. &lt;jsp:getProperty id="YoshiBean" param="size"/&gt;<br>E. &lt;jsp:getProperty name="YoshiBean" param="size"/&gt;<br>F. &lt;jsp:getProperty id="YoshiBean" property="size"/&gt;<br>G. &lt;jsp:getProperty name="YoshiBean" property="size"/&gt;</p>
<p>QUESTION NO: 7<br>Which of the following statements regarding the lifecycle of a session bean are correct? <br>1.&nbsp; java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated. <br>2.&nbsp; SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated. <br>3.&nbsp; An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions. <br>4.&nbsp; JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation. <br>5.&nbsp; Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.</p>
<p><br>第二部分：概念题<br>1．&nbsp;&nbsp;&nbsp; 描述Struts体系结构？对应各个部分的开发工作主要包括哪些？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2．&nbsp;&nbsp;&nbsp; XML包括哪些解释技术，区别是什么？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br>3．&nbsp;&nbsp;&nbsp; JSP有哪些内置对象和动作？它们的作用分别是什么？</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br>4、SQL问答题<br>SELECT * FROM TABLE<br>和<br>SELECT * FROM TABLE <br>WHERE NAME LIKE '%%' AND ADDR LIKE '%%' <br>AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%' <br>OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' ) <br>的检索结果为何不同？</p>
<p>&nbsp;</p>
<p>5、SQL问答题<br>表结构：<br>1、&nbsp;&nbsp;&nbsp; 表名：g_cardapply<br>字段(字段名/类型/长度)：<br>g_applyno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp; 8；//申请单号（关键字）<br>g_applydate&nbsp;&nbsp;&nbsp;&nbsp; bigint&nbsp;&nbsp;&nbsp;&nbsp; 8；//申请日期<br>g_state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp;&nbsp;&nbsp; 2；//申请状态<br>2、&nbsp;&nbsp;&nbsp; 表名：g_cardapplydetail<br>字段(字段名/类型/长度)：<br>g_applyno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp;&nbsp;&nbsp; 8；//申请单号（关键字）<br>g_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp;&nbsp;&nbsp; 30；//申请人姓名<br>g_idcard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp;&nbsp;&nbsp; 18；//申请人身份证号<br>g_state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varchar&nbsp;&nbsp;&nbsp;&nbsp; 2；//申请状态<br>其中，两个表的关联字段为申请单号。<br>题目：<br>1、&nbsp;&nbsp;&nbsp; 查询身份证号码为440401430103082的申请日期<br>2、&nbsp;&nbsp;&nbsp; 查询同一个身份证号码有两条以上记录的身份证号码及记录个数<br>3、&nbsp;&nbsp;&nbsp; 将身份证号码为440401430103082的记录在两个表中的申请状态均改为07<br>4、&nbsp;&nbsp;&nbsp; 删除g_cardapplydetail表中所有姓李的记录</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/liaojiyong/aggbug/47092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liaojiyong/" target="_blank">liaojiyong</a> 2006-05-19 17:52 <a href="http://www.blogjava.net/liaojiyong/archive/2006/05/19/47092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>