<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>╰☆星子的Blog★╮</title>
<link>http://blogger.org.cn/blog/blog.asp?name=pcthomas</link>
<description>星子的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[高手经验谈]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=13541</link>
<author>pcthomas</author>
<pubDate>2006/4/17 14:37:01</pubDate>
<description><![CDATA[<A>　与股票、期货市场相比，外汇市场历史尚短，但近年来也涌现出一批交易高手。从投资理论和经验方面讲，他们或许比股市老手略逊一筹，但在赢利方面是有过之而无不及。他们的年收益都是以亿计算。本篇介绍的几位外汇高手有大公司外汇部主管，有大基金老板，还有单干户。他们在中国自然是鲜为人知，在美国的金融界以外，也不是享有盛名。但是在外汇和期货行业，只要一提到这些人，人们便立刻肃然起敬。这倒并不是这些人长相出众，而是他们靠天才与勤奋，从市场赚了许多财富，而这些财富又是许多投资者都想赚并且似乎都可以赚的。<BR>比尔·利普舒茨：<BR>　　比尔·利普舒茨今年刚刚３６岁，主持索罗门兄弟公司外汇部已近１０年，为该公司赚取了五六亿美元的巨额利润。这位三十出头的年轻人被华尔街称为"外汇苏丹王"。他进单的规模之大令人咋舌，一次进几亿美元，甚至几十亿美元是家常便饭。由于他的出色成就，辅之以索罗门公司的财力，他主持的外汇部在全世界上百家银行共有８００亿美元的信用额度，每年从外汇市场赚取的利润数以亿计。<BR>　　有趣的是，利普舒茨刚开始做外汇时对外汇市场的了解几乎等于零。在无人指导的情况下，他借助本公司在华尔街的声誉和实力，几年之内闯出一片新天地。利普舒茨原本是学建筑的，但读研究生时对股票期权产生了兴趣，干脆同时选修了工商管理硕士的学位，毕业后被索罗门公司录用。该公司管理得法，任人唯贤，经常破格选拔人才。１９８２年费城交易所新开外汇期权交易，当时外汇部只有利普舒茨做过期权，所以他被委任负责这一业务。利普舒茨在同事的协助下建立了一个关系网。他认为做外汇主要靠消息灵通，赚大钱的都是被银行同业所接受的人。大户的动向影响市场，一些重大消息得到得早也能赚钱。当然大部分消息是公开的，关键是看如何分析。信息的运用要灵活，要看市场的反应。利普舒茨认为德国统一对外汇市场的影响最能说明问题。当柏林墙倒下时，市场的情绪是，这下子大家都要把钱投到东德去，所以马克要大涨。过了一阵子市场意识到，德国统一后要吸收东德尚需时日，所以把钱投进去不明智。市场是如何改变看法的呢？无非是德国总理科尔的一次讲话，美国国务卿贝克的一句评论，东德的高失业率，以及东德人对西德的过高期望，等等。投资界开始意识到重建东欧谈何容易。等这种想法占了上风后，马克便开始大跌。实际上很早就有人持这种观点，但市场走向往往取决于某一个时刻市场的焦点。这就需要同市场的参与者通气，并非每个人都往一处想，但大家的注意力是可以觉察得到的。比如某一天市场关注利率差，第二天又强调经济增长。<BR>　　有一个具体例子可以看出利普舒茨处理人际关系的功夫。他做期权遇到对手因疏漏来求情时从不心慈手软，一定要对方执行合约。但有一次例外。那天他发现费城交易所一位外汇交易专员报价比市价明显低１００点。他去询价，对方报价照旧，他立即买进５０张合约。接着他又要求对方再报价，结果还是一样。他客气地要对方再核实，答复是照旧，他连续又吃进２５０张。另一家大公司发现这一错误后也吃进了好几百张。过了一会儿利普舒茨再去问价，那位粗心的专员依旧没有察觉。利普舒茨便问他１０００张单卖不卖。这下子对方吓坏了，一查才发现自己完蛋了。这时候利普舒茨手下留情，告诉他除了头５０张单外，其他一笔勾销，对方感激不尽。利普舒茨事后解释，他完全是出于长远利益考虑。当时费城交易所刚开展外汇期权交易不久，若把专员杀垮，这一新市场可能也会夭折，当时索罗门公司也没什么好处。多年后那人成了一家大户的首席现场交易员，给索罗门公司提供了很多便利。<BR>　　而当时趁火打劫的另一家公司事后坚持要对方兑现，多年后在费城交易所时常遇到麻烦。在现货市场也经常有报错价的，按常规只要你让对方核实对方仍报错，那就不能悔改了。<BR>　　利普舒茨印象最深的一次交易是１９８５年９月。７个发达国家举行首脑会议，确定了让美元走弱的政策。当时他正在意大利撒丁岛度假，对７国高峰会议的消息一无所知。<BR>　　以前美元一路走强时各国中央银行曾多次干预，但却徒劳无益。因而这次一开始也没引起多大反响。利普舒茨打电话给公司，得知了这一消息，当时他的助手安迪生病在家。他赶紧给安迪打电话。等新西兰市场(每天最早开盘)一开盘，安迪便进场抛了６，０００万美元。当时对于新西兰盘来说这不是个小数目。许多银行对高峰会议的影响没有把握，市场几乎没有交易量，买卖差价达２００点(正常情况下为１０点左右)，安迪照进不误，６，０００万美元抛出后市价已经到６００点开外了。利普舒茨干脆接通一根２４小时电话线，与安迪以及交易所直线联系，又做了大量外汇期权。那一天索罗门公司外汇部是大丰收，净赚５００万美元，相当于外汇部全年收益的２５％。<BR>　　利普舒茨有一次差点翻船。１９８８年秋，外汇市场本来风平浪静，突然有一天苏联领导人戈尔巴乔夫到联大大谈裁军问题，市场理解为美国也可随之裁减军备，削减赤字这对美元有利。美元在纽约盘开始上升，很快就涨了１％。索罗门公司这时有３０亿美元的卖单在手，情况危急。１％涨幅等于３，０００万美元亏损。那天正好是星期五，市场交易量不大，他想砍单出场很困难。他决定再抛３亿美元，试图压住美元的涨势，等拖到周一日本盘开市后再平单出场。谁知外汇仍然猛涨，很快索罗门公司的损失就达到９，０００万美元。利普舒茨赶紧向总裁汇报。总裁在问明情况后鼓励他沉着冷静，按计划去做。周一日本盘开市，美元果然开始下跌，他耐心等到欧洲盘平单出场，最后死里逃生，只损失１，８００万美元。事后，利普舒茨深刻反省，认为自己错误地估计了纽约市场的流动性，使局势失控。幸好后来处理得当，避免了更大的损失。<BR>　利普舒茨自己还有过一个私人帐户，是他祖母留下的一笔遗产，共１２，０００美元。他做期权４年内赚到２５万，但一次不小心全部赔光。那是１９８２年９月，他利用股市下跌倒垒金字塔本来赚了很多，但赶上９月２３日股市见底，接着便大幅反弹。由于进单量过大，３天之内他便全军覆没。那次教训第一使他认识到风险控制的重要性，第二使他分清公私，集中精力为公司赚钱，因而有了后来的成就。关于银行同业市场(外汇现货)，利普舒茨有独特的见解。<BR>　他认为银行主要靠吃买卖差价赚钱。美国花旗银行做外汇最成功，每年大约赢利３、４亿美元。如果只吃差价，自己不进单，那么可以赚６亿美元。花旗银行自己不承认这一估计。银行还有一个赚钱的途径：每次有大客户进单，它跟在后面尾随，立刻就能赢利。这在期货业是违法的，但在现货市场却是允许的。<BR>　利普舒茨认为，交易高手既要聪明，又要勤奋。干别的行当，聪明人或许可以投机取巧，笨人可以以勤藏拙，但做外汇既要有天赋，又要加倍努力，有人到公司常问他应该什么时候上班，什么时候下班？利普舒茨家里连床头都安有电视显示器，以便随时观测价位，了解行情，另外直觉也非常重要，利普舒茨梦中都不忘外汇市场。有一次他梦见第二天公布的贸易赤字数字对美元有利，美元大幅上涨。他先梦见新的外贸数字，又梦见上月的修订数，接着又梦见自己进场买美元，价格连续上涨，上了一个台阶后他又买一批，再上一个台阶他又买了一批，破了第三道关后他本来要出场，结果决定又买了一批。第二天外贸数字出来与他梦中的数字一模一样，后来汇市的走势也跟他梦见的一模一样。唯一不同的是他一张单都没进。事后他解释，真正的感觉是要以市场分析为依据，凭梦做单是靠不住的。<BR>个人外汇交易技巧入门教程
<H4>兰迪·麦克<BR>　兰迪·麦克在华尔街鲜为人知，但他２０年来在外汇期货市场的战绩却很少有人能匹敌。他以２，０００美元起家，第一年就赚到７万，以后每年的利润都超过头一年。８０年代麦克年收益均在１００万美元以上。麦克除了自己赚钱外还代家人、朋友做外汇，最早的两个帐户，１９８２年从１万美元做起，１０年后已超过百万。<BR>　大学二年级，麦克迷上桥牌，白天黑夜地玩牌，结果６门功课不及格。麦克辍学从军，被送往越南战场。在那里，麦克经受了严格的纪律训练，并学会了生存保护。他同时还成为和平主义者。１９７０年回国后，麦克继续求学，他哥哥为他在芝加哥交易所找到一份临时工，他开始接触期货。麦克本来是要当心理学家的，但临毕业前正赶上芝加哥交易所新开一个交易所，从事外汇期货交易业务。当时芝加哥交易所的一个席位值１０万美元，但为吸引投资者，外汇交易厅的席位只卖１万美元，并且免费赠送每个现有交易所会员一个席位。</H4>
<H4>　麦克的哥哥把他的免费席位转送给了弟弟，还借给他５，０００美元。麦克将３，０００美元存进银行作生活费，另外２，０００美元拿来做外汇期货。当时麦克对外汇的知识非常有限，看到别人买马克，他就跟着去买瑞士法郎，没事时就下棋玩，就这样第一年居然赚了７万美元。<BR>　麦克１９７６年迈出了一大步。当年英国政府担心英镑升值增加进口过多，因而宣布不允许英镑涨到１．７２美元之上。当时英镑本来在１．６美元之间徘徊，在听到消息后却出人意料地一下子猛涨到１．７２美元。以后每到这个点都反弹，但越弹越少。大部分人都在盘算，英国政府不让英镑超过１．７２美元，所以在这一点做空头应该是没有风险的。麦克却另有打算：既然英国政府态度如何明确都压不住英镑的涨势，那么说明内在需求很旺，市<BR>　场实际上是涨停板。这可能是一次千载难逢的机会。在此之前，麦克最多只做三、四十张单，这一次却一下子进了两百张买单。尽管心里很自信，但他也怕得要死，因为这么多单子稍一反走就会完蛋。麦克连着几天夜不安寝，早上５点钟起床向银行询问报价。一天早上，他听到银行报价：英镑１．７２５０美元。他以为对方报错了，等再一次核实后欣喜若狂。他不光自己又买了些英镑合约，还鼓动亲友一起去买，然后舒舒服服地看着英镑涨到１．９０美元。三个月后他平单出场，顺手在１．９０又抛了几百张合约，结果也赚了钱。这一次交易麦克净赚１３０万美元。<BR>&nbsp;　麦克另一次得意之作是８０年代初抛空加拿大元，从８５美分一路抛到６７美元，前后达５年之久，进单量１，５００张，赢利数百万美元。这几年期间，加拿大政府虽然多次干预支撑加元，但总是半心半意，直到有一天加拿大总理马尔罗尼气愤地说：我们不能任凭芝加哥的投机商决定我们的币值。市场自此逆转，麦克也及时出场。<BR>　　麦克也有走麦城的时候。１９７８年１１月卡特宣布挽救美元计划时，麦克正好手头有大量外币买单。但头两天他从市场的力道看出涨势在衰退，所以平掉了所有马克买单，只剩下英镑。得知消息后第２天，一开市外币就大跌，期货很快便到跌停板。麦克赶紧到现货市场平单，亏损１８００点，损失１５０万美元。另外还有一次更大的损失也是做加元。８０年代末加元一路上扬，麦克追势进单，一共吃进２，５００张买单，本来是赚了２００万美元。时值加拿大大选，在一次辩论会上，本来遥遥领先的现任总理吃了大亏，民意测验突然大跌１６点，结果加元大幅下跌，等麦克受不了压力砍单出场时整整赔了７００万美元。<BR>　　麦克分析市场有独到的见解。一方面他是技术分析派，相信最好的赚钱方法就是跟势，特别是中间那一段。另一方面他又认为基本分析非常管用，是战略决策的基础。他认为一个势头的开端很难做，因为你对势的方向没有把握。结尾也很难做，因为许多人开始获利回吐，市场来回波动很大。他认为中间这一段最好抓，兜底和找顶都是徒劳。对于基本分析，麦克不迷信经济理论，他主要靠观察市场对各种消息的反应来判断市场走向。比如坏消息出来不跌反涨，说明市场内在因素非常看好。<BR>　麦克觉得市场本身也在变化。７０年代的市场比较好做，破关跟进百试不爽，每一波涨或跌也比较明显，中间周折比较少。麦克认为这跟当时大众投资者较多有关。如今的市场是越来越专业化，假破关现象越来越多，狂热过度的现象比从前少，所以赚钱难度加大了。过去只要方向判断对了，具体怎样做单无关紧要。如今市场复杂得多，方向看对了，进单出单时机不对也赚不了钱。麦克认为过去判断占９成，执行只占１成，如今判断只占２成半，执行占７成半。　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; 麦克 虽然２０年来保持不败，但风险控制意识仍很强。他认为如果发觉市场对你不利，一定要赶紧砍单出场，不管损失有多大。为了保全性命，哪管受伤多重！麦克给同行的忠告是：千万不要让赔单失控。要确保即使自己连续错二三十次也要保留一部分本钱。他进单一次承担风险一般为帐户的５～１０％，如果输了，下一次便只承担４％风险，再输的话便减到２％。麦克做单不顺时可以从３，０００张单递减到１０张单，等顺手时再恢复做单量。<BR>　麦克认为，成功的交易员可以有不同的性格，断有一点却是共有的：他们都找到了适合自己性格的做单策略。他哥哥天性沉稳，从不愿承担过多的风险，所以多年来专做套期交易，成绩也不错。他自己一方面喜欢冒险，他将这方面的勇气用来进单，另一方面由于传统保守的家庭教育又非常谨慎，他将此用在风险控制上。有些人违背自己的个性，采取与己不符的交易策略。比如有的人擅长系统交易，但做单时却任意否决自己的交易系统提供的建议。还有些人倾向于做长线，但由于耐心不够或者觉得不进场不舒服，结果老是走短线。有的人本来很适合做现场交易员却偏要去当一个平庸的投资经理。有的人花了很大精力研究出一些可行的低风险套市交易策略，最后却决定做高风险的战略性交易。总之，扬长避短在麦克看来是制胜的要诀。</H4>
<H4>&nbsp;迈克尔·马科斯<BR>　　迈克尔·马科斯搞研究出身。但他对实际操作更感兴趣，一开始是偷偷摸摸地干，后来干脆辞去高薪研究员职位，专职从事外汇、期货交易。他在一家期货公司做交易员，有几年他赚的钱比公司所有其他交易员赚的还要多。１０年内，他的公司帐户增长了２，５００倍！马科斯的成功有多方面因素：首先是个人努力，有一段时期他几乎是２４小时不停地转。第二是遇明师指点，从黑暗走向光明。对于大部分交易高手来讲，早期失败似乎是司空见惯。马科斯也不例外，他头几次交易没有一次赚钱。更有甚者，他不只一次全军覆没。这说明一个道理，早遭败绩表明你一定有什么地方做得不对，但并不一定证明你将来一定失败。<BR>&nbsp; 问：你当初是怎样对做期货感兴趣的？<BR>答：我本来是要搞学问的。１９６９年从约翰斯·霍普金斯大学毕业，成绩优秀，是班上的尖子。克拉克大学为我提供心理学博士奖学金，本来就要安安稳稳地当教授的。当时我结识了一个叫约翰的人，他宣称可以帮我投资，每两个星期保证翻一番。我被说动了心。我从未投资过，所以一点疑心都未起，连问都不问他怎么能赚那么快，马上雇他为投资顾问，周薪３０美元。我拿出自己１，０００美元的积蓄来做期货。<BR>　第一次我和约翰到期货公司，看到各种报价根本不明白是怎么回事。公司的扩音器上有人建议买大豆期货。我问约翰该不该买，结果发现他也一窍不通。不过我们还是进了一张买单。说也奇怪，我们刚进场，大豆价格就开始下跌，就好像市场专等着我进场然后反走一样。不过我那时候似乎直觉就不错，我们马上砍单出场，只赔了１００美元。下一笔做的是玉米，结果与第一笔差不多。第三笔做的是小麦，结果还是赔。我们花了３天把钱输光。当时我们是以几天输光来衡量我们是否成功的。一千块赔光，我解雇了约翰。他说我犯了一生最大的错误，他要到百慕大去洗碟子挣本钱，然后做期货，等成了百万富翁后就退休。从那以后我再也没听到他的消急。我后来又攒了５００美元，做了几次银子，但还是输光了事。我的头８次交易全部赔钱。<BR>　问：你有没有想到过或许你不适合做期货交易呢？<BR>答：没想过。我读书一向成绩很好，所以我觉得只是个经验问题。我父亲在我１５岁时就去世了。他留下了３，０００美元的保险金。我不顾母亲的反对，把钱兑现了。这一回我学乖了，先读了一本关于小麦和大豆的书，然后按照一家投资顾问的建议买了张小麦合约，赚了两百块钱。我激动得不得了，等价格回跌时又买了一张，又赚了一笔。接下来纯属是走大运：我在１９７０年夏天买了３张１２月玉米合约，正赶上那年的大虫灾。我接着又买了些小麦、大豆合约，一个夏天过去后，我一共赚到３万美元。第二年春天，市场上有一种广为接受的理论：蝗虫热过了严冬，又要再一次危害庄稼了。我向母亲借了两万块，连同自己的３万全都投进小麦和玉米期货。我进场后市场不上也不下。有一天《华尔街日报》发表了一篇题为《芝加哥交易所蝗虫比玉米地里还多》的文章。<BR>　玉米期货开始下跌，很快就到跌停扳。我一下子愣住了，想出场但只是傻看着，希望市场会逆转回来。我看着，看着，等到跌停板时我已经出不了场了。当晚我想了一夜，没有选择只能砍单出场。第二天一早我平掉所有单子，一结帐自己的３万赔光不说，母亲的钱也赔了１２，０００。我气极了，决定去找一份工作。<BR>　我到一家证券公司当分析员，看到隔墙别人在做单心里总是痒痒的。那家公司禁止分析员做单，但我不管那么多，从母亲、兄弟和女朋友那里借了些钱，又悄悄干了起来。为了保密，我和我的经纪人约定好一些密语。"太阳出来了"是一个意思，"天阴"是另一个意思。这样做下来我还是输钱。输了借，借了再输，同一个周期一再重复。<BR>　问：你当时知道自己什么地方做得不对吗？<BR>答：问得好。我当时根本就没有做单原则，我哪儿都做得不对。１９７１年１０月，我在经纪人的办公室碰到艾德·西柯塔，我的成功全归功于他。他当时刚刚毕业，研究了一套电脑技术交易系统。他让我和他一起边搞研究，边做单。他对市场的知识很丰富，交易方面也很成功。他基本上是顺势做单。他教我如何砍单，如何赚足利润。虽然有艾德的指导，可我还是继续赔钱，主要是我自己耐心不够，时机掌握得不好。<BR>　１９７２年夏天，尼克松政府开始放松物价冻结。我在胶合板市场赚了一大笔钱，从７００赚到１２，０００。当胶合板价格上升１倍多期间，木材市场几乎没多大动静。我又像上次做玉米一样把所有钱压上。这时正好赶上政府出面发表一连串表明，说要打击木材市场的投机者，期货一下子猛跌，我又一次陷入绝境。两个星期我一直处在即将全军覆没的边缘。我痛恨自己又犯了同样的错误，从那以后我再也不敢做单过多。<BR>还算运气好，政府终究没能控制住物价，两周后市场开始逆转，我扭亏为盈，等出场时赚了１倍。到１９７３年我已将帐户增值到６４，０００美元。<BR>&nbsp; 马科斯后来在纽约棉花交易所做了几年交易员。现场交易培养了他对市场敏锐的感觉。１９７４年８月他应聘到一家期货公司做交易员，从３万美元做起，１０年后滚成了８０万。其间公司只给他增加过１０万本金，其余年份每年从他账户里提取３０％。这１０年他平均每年收益都超过１００％，１９７９年更是成绩惊人。黄金从４００美元涨到９００美元一盎司，马科斯出出进进，获利颇丰。苏联入侵阿富汗那一天，他在电视上首先看到消急，打电话到香港发现金价未动，立即买进２０万盎司，几分钟后消息传开，金价大涨，他一下子赚了上千万美元。至今马科斯到香港访问时还不敢去参观黄金交易场，那一次吃亏的人都还记得他。<BR>　对外汇市场，马科斯更有深刻体会，他说：有一段时间，我做外汇量很大。比如里根当选总统后那几年，美元很强，我经常抛空几亿马克，这样大的进单量当时并不多见。由于外汇市场是２４小时运转，非常劳累。睡觉时我总是每隔两个小时起来一次看市场。澳洲盘、香港盘、苏黎世盘和伦敦盘都是晚上，我每一盘都看，结果婚姻破裂了。<BR>　问：你晚上起来看其他市场，是不是怕纽约盘开市时自己方向反了？<BR>答：是的。虽不常发生，但总要警惕。这样可以防止吃跳空的亏。我记得有一次，大概是１９７８年年底，当时美元被杀得一塌糊涂。我和柯夫纳合作甚密，天天谈美元的走势。有一天我们注意到美元莫明其妙地走强，没有任何消息可以解释价格的大动。我们赶紧平掉所有外币买单。那个周末，卡特总统宣布了支持美元计划，要是我们等到纽约盘开盘，我们早就完蛋了。那件事证明了我们的一个想法：大玩家，包括政府，总是有小道消息。如果我们发现无法理喻的意外价格波动，总是先出场，然后再查原因。我的意思是，出于礼貌，美国政府事先把消息通告欧洲中央银行，它们常常在美国政策公布之前先采取行动。因此价格总是在欧洲盘先动，尽管新政策是我们这边提出的。如果是欧洲人发起的，那价格自然也是在欧洲盘先动。我认为最好的交易时间常常是欧洲盘。<BR>　问：你除了早期赔钱外，还有哪些失败的教训呢？<BR>答：最惨的一次是德国中央银行干涉市场那次。当时我做得好好的，买了很多马克。德国中央银行突然决定进场惩罚投机客。我打电话过去，得知５分钟赔了２５０万，赶紧砍单出场，而不是坐待２５０万亏损变成１，０００万。但半个小时后跌下去的又全部涨了回来。<BR>　问：你又跟进了没有？<BR>答：没有。到那时我已毫无斗志。<BR>　问：事后看来，你觉得当时砍单对不对？<BR>答：对的。但事后全走回去，心里总是不好受。<BR>&nbsp; 问：你觉得做一个高手是不是内在的技巧？<BR>答：我觉得要成为顶尖高手的确需要内在技巧--天份。<BR>这就像出色的小提琴手一样。但做一个有竞争力的赚钱能手是一种可以学会的技巧。<BR>　问：经历过转败为胜，你对初学者或赔钱的交易员有何建议？<BR>答：首先，每次进单风险不得超过本金的５％，这样你可以错２０次。第二，一定要有止蚀单，要真进场。<BR>&nbsp; 问：你进单的同时是不是出场单也交给经纪人呢？<BR>答：是的。还有一点，进单后要是感到不妙，不要怕难为情，该出场就马上出场。心里不踏实时先出场，好好睡一觉。我经常那样做，第二天就全都清楚了。<BR>&nbsp; 问：你有时出场后不久是不是又马上进场？<BR>答：是的，常常是第２天。你进场后没法思考。出场后才能想清楚。<BR>　问：你对新手有何忠告？<BR>答：也许最重要的原则是守住赢单，砍断输单。两者同样重要。赢单要是不守住，输单就赔不起。<BR>　要根据自己的判断做单。我有许多朋友都是有才气的高手。我常常提醒自己，要是盲目跟着他们做一定赔钱。他们有的人赢单守得好，但输单可能守得太长了点；有的人砍单很快，但赢单也走得快。你坚持自己的风格，可能好的、坏的都沾。若愣去学别人的风格，结果可能两边的缺点都让你赶上。<BR>　问：什么观念最容易让人上当？<BR>答：你以为专家的建议一定靠得住。要真是个专家倒真可以帮上忙。比如说，你如果是保罗·琼斯的理发师，而他正好和你谈市场，那倒不妨听一听。一般说来，所谓"专家"，自己都不做单。一般的经纪人永远不可能是交易高手。<BR>听信经纪人的话最容易输钱。做单需要个人亲自努力，要自己做功课。<BR>　问：还有别的错觉吗？<BR>　答：有一种想法很蠢：市场到处是阴谋。我认识世界上许多大交易员，可以说百分之九十九情况下市场比谁都大，迟早会走到它要去的地方。例外是有的，但持续不久。<BR>　问：直觉对做单有多重要？<BR>答：非常重要。高手直觉都很灵。勇气也很重要：要敢试、敢败、敢胜，不顺时要能挺住。<BR>　问：你碰到连续输钱时怎么办？<BR>答：过去我曾试过加单，但不管用。后来我就尽可能减少做单量，要是太糟，干脆停做。但往往不会坏到那种地步。<BR>　问：很少有人像你这么成功的。你觉得自己有什么与众不同之处？<BR>答：我脑子很开放。我不管感情上能不能接受，只要理智上认为正确的信息都接受。<BR>　问：你每天都记录自己的实际资本吗？<BR>答：我过去常做记录。这很有用。如果你的资本有下降的趋势，那是减少做单量重新评估的信号。或者你发现自己赔得比赚得快，那也是一种警告。<BR>　问：市场与市场之间有多少共同之处？比如说，你能像做玉米那样做外汇和债券吗？<BR>答：我觉得一通百通。原则都是一样的。做单是一种感情，是大众心理：贪和怕。任何情况下都是一回事。<BR>布鲁斯·柯夫纳<BR>布鲁斯·柯夫纳从事外汇交易十几年，战绩惊人，每年平均收益将近翻一番。１９７８年投资１千美元给他操作，到１９９１年已变成百万美元。<BR>柯夫纳学者出身。哈佛毕业后在哈佛和宾州大学教授政治学。他喜欢教书，但对学者生涯没太大热情。７０年代初，他开始从政，先是帮别人竞选，打算将来自己参加竞选。由于缺少经费，他又不愿意从委员会做起慢慢往上爬，所以最终只好放弃从政的计划。柯夫纳四处探寻事业方向，最后决定自己的政治和经济学背景很适合金融市场。一旦明确奋斗目标，柯夫纳便一头埋进金融文献里，能找到的书全都读遍。他特别感兴趣的是利率问题，在这方面下的苦功对他日后的外汇交易帮助甚大。<BR>&nbsp; 柯夫纳的第一笔交易就是以利率差的变化为基础的，结果正如所料，赚了一笔小钱。他如法炮制，又做了两个市场间的差价，但进场太早，结果赔了一点。两笔交易算下来略有盈余。真正使他起步的是第三笔交易。１９７７年他发现大豆供应将出现短缺。近期的期货已开始上涨，但远期期货却没跟上节拍。他利用这一差幅做套期交易，从一对合约做起，赢利后倒金字塔加码，很快就加到１５对合约，浮动利润达４万多美元。这时候他误听经纪人的劝告，为贪图更大利润而单向平掉近期合约。结果１５分钟后经纪人来电话告诉他大事不好，市场开始快速回跌，已至跌停板。他大叫赶快平单。还算走得及时，在跌停板回弹的短暂期间他顺利离场，原先４万美元的利润只剩下一半。虽然帐户翻了好几番，但柯夫纳还是为自己最后一刻所犯的错误痛心疾首，几天吃不下饭。他有两个深刻体会。第一，期货交易风险和收益一样大，赚到的钱稍有不慎很快就会赔回去。第二，要永远保持理智，不要轻信旁人而采取冒失行动。<BR>&nbsp; 一个月后柯夫纳恢复交易，很快又将帐户增值到４万美元。他到一家公司应征一个交易助手的位置，面试之后几周，主考人迈克尔·马科斯召他到公司："我既有好消息又有坏消息。坏消息是那个助手的位置不能给你。好消息是我们想雇你直接做交易员。"马科斯后来成为柯夫纳的老师。柯夫纳承认从他那里学到很多重要的东西。首先他让柯夫纳建立信心，只要处理得当，进场出场依照原则行事，赚１００万美元不是难事。他还让柯夫纳意识到要勇于认错，只要判断明智，错了不要紧，重新做出明断，再错，再明断，然后加倍盈利。<BR>柯夫纳主要从事外汇交易，期货现货都做，而且不管哪国货币，只要有机会就进场，经常是每天进出交易量达数亿美元。他深厚的政治、经济学功底使他对外汇市场有透彻而独到的见解。他对技术分析是有取有舍，既不依赖，也不废弃。柯夫纳对市场博大精深的见解可以从一篇专题采访中窥视一二。以下摘录他与采访者的部分对话。<BR>　问：你是全世界最成功的交易员之一，很少有人能与你匹敌。你与众不同之处在哪儿？<BR>答：我觉得很难讲清楚为什么有人行，有人不行。就我个人而言，我想有两个重要因素：第一，我对世界的未来有想象力，能看到未来与现实的差异。比如说，我觉得美元兑日元跌到１００是可能的(他讲这话时１美元兑１５０日元)。第二，我在压力下能保持理智，遵守原则。<BR>　问：交易技巧教得会吗？<BR>答：有一定限度。多年来，我训练了大约三十来人，但只有四五个成了好手。<BR>　问：其他２５人怎么啦？<BR>答：全都改了行。这与智力无关。<BR>　问：成功的和失败的学徒之间有什么明显的差异？<BR>答：成功者坚强、独立，想法与众不同。他们在别人不愿进场时勇于行动。他们严于律己，进场规模适中。太贪的人总是砸锅。有些很有灵气的人赚了钱老是守不住。我有位同事聪明透顶，主意极佳，市场也选得好，就知识而言他比我更懂行，但我赚了钱能守住，他老是不行。<BR>　问：他错在哪儿？<BR>答：进场规模太大。我做一张单，他做１０张。每年他总有两次本金翻倍，但一年下来还是打平。<BR>　问：你做进场决定时总是靠基本分析吗？<BR>答：我基本上总是根据市场判断做单，而不单凭技术分析。我常用技术分析作指导，但如果弄不清市场走动的<BR>　原因，我不进场。<BR>&nbsp; 问：是不是说每一张单都得有基本原因作后盾？<BR>答：可以这么讲。我还要补充一点，技术分析常常使基本分析更明了。我举个例子：过去６个月来，我觉得加拿大元涨的理由很多，跌的理由也不少，我弄不清楚哪一种解释是正确的。要有人拿枪逼着我表态，我可能会选择"下跌"。<BR>接着美加贸易协定公布了，市场往上突破。实际上在谈判接近尾声时加元已经在上涨。这时我完全明白了市场选择的是上而不是下。在协定公布之前，我觉得加元走到了一座山顶，我不知它是要掉下来还是继续往上爬。从基本分析方面看，美加贸易协定对加元既有积极的一面，也有消极的一面。从技术分析上看，加元往上突破。也就是说市场上更多的人认为正面大于负面，所以买进加元。<BR>　　问：这一例子是不是说明，当某个重大事件发生或某种基本因素形成时，市场的最初反应预示着长期的趋势？<BR>答：正是如此。市场总是先导，因为总有人比你懂得多。比如，苏联人就很行。问：做什么行？答：做外汇，粮食期货也不错。<BR>&nbsp; 问：这是不是有点矛盾？苏联经济搞得一团糟，但外汇却做得棒。为什么？<BR>答：开个玩笑，他们也许真的偷看我们的信件。不过他们情报的确很快。他们有全世界最发达的谍报系统，常常偷听商业通讯。所以有些大交易商在电话上谈敏感问题时常使用反窃听器。我的意思是有很多难于理喻的机制会引导市场，往往是在一般人还不知晓时先动。<BR>　问：那不正是技术分析的基本原理吗？<BR>答：我觉得技术分析有些很在理，有些则是蒙人。有些搞技术分析的宣称能预测未来，未免有些浮夸。技术分析追踪过去，但不预测未来。你得自己动脑筋做结论，看过去某些交易商的活动能否揭示未来别的交易商的动向。<BR>我个人觉得技术分析像支温度计。那些自称从不看图的基本分析派就像医生说他不给病人量体温。你要是对市场持认真负责的态度，就应该了解市场的现状--是热还是冷，是动还是滞。技术分析反映了全市场的投票，所以会有怪现象出现。从定义上讲，任何新的图形出现都不同寻常。因而研究价格的详细变化非常重要。看图可以使我警觉异常，探索潜在的变化。<BR>　问：遇到市场与你走反时你怎么办？如何区别小反弹和坏单？<BR>答：只要一进场，我总是事先定好止蚀位，只有那样我才睡得着。我进场之前就知道何处出场。进场规模取决于止蚀位，止蚀位凭技术分析确定。比如说，市场正在一个价格范畴内走动，止蚀位不能设在价位之内，那样很容易碰到。我总是将止蚀位定在某个技术障碍点 (阻力或支撑)之后。如果位置选得好，一般不易碰到。<BR>　问：谈到止蚀，由于你的交易量特大，所以我推测你的止蚀单只是，心中有数，对不对？<BR>答：这么说吧：我把生活安排妥当，让止蚀单总能得到及时执行。它们不入盘面，但绝对不是心理止蚀，到位时一定执行。<BR>　问：你现在进单量比从前大得多，这是不是增添了额外难度？<BR>答：能有足够流动性让我充分发挥的市场少多了。比如铜期货，我很喜欢做，但市场太小，流动性不够。像咖啡市场我也做，去年赚了几百万。但几百万对我来说已无关紧要，反倒消耗不少精力。所以我主要做外汇。<BR>　问：你负责运作的做恐怕比世界上任何其他交易员都要多。如果赶上一段时期老是赔钱，你如何应付心理压力？<BR>答：心理负担的确很大，随便哪一天我都有可能赔掉几百万。要是把损失看得太重，那就没法再做。我唯一担心的是资金运作不善。每隔一段时间我也会有某一笔交易赔得过多。但对赔钱本身我从没问题，只要是赔得明明白白，而且完全按交易技巧行事。我从经验中学会控制风险。但每天的赚与赔不影响我的情绪。<BR>　问：你有没有赔钱的年份？<BR>答：有的，１９８１年我赔了１６％。<BR>　问：你做外汇是现货还是期货？<BR>答：我只做现货，除非有时套市吃吃现货和期货的差价。<BR>银行同业市场(现货)流动性好得多，交易费用也低得多，并且是２４小时交易。这对我们很重要，因为我们一天做２４小时。我们什么外汇都做，所有欧洲货币。包括北欧货币，所有亚洲和中东主要货币。交叉盘也是现货好做。期货因合约金额固定做交叉盘算来算去比较麻烦。在现货市场，全世界都是以美元为计价单位，连交叉盘也不例外。<BR>　问：你是不是在美国盘之外还做很多交易？<BR>答：是的，首先，我所到之处无不备有监测屏幕，家里、乡间别墅里，到处是。其次，我手下人２４小时值班。遇到大事他们马上叫我。我们每一种货币都有呼叫价位。我有个助手专门负责为我处理电话。我们开玩笑说，他一年只许把我从家里叫醒两次。他每晚可能接到三四次电话。由于事先有计划，他可以自行处理。我通常把自己的交易时间限定在早上８点到晚上６、７点钟。远东市场很重要，晚上８点开盘，东京早盘到夜里１２点。<BR>如果交易很活跃，我也会做。１２点后睡几个小时，然后起床赶下一次开盘。市场大动的时期才这样。我在全球各个市场都有关系，所以消息很灵通。这是一种非常刺激的游戏。抛开交易赚钱不讲，我干这一行的主要原因之一就是因为我对分析世界政治、经济局势非常着迷。<BR>　问：听你讲起来，似乎整个过程像是玩游戏，而不是干活儿。<BR>答：的确不觉得像干活儿，除非你输了，那样就觉得很辛苦。对我来说，市场分析就像一块多元的棋盘，个中乐趣纯属精神享受。<BR>　问：你既谈到控制风险的重要性，又谈到持单的信心，你一次交易一般担多大风险？<BR>答：首先，我尽量做到任何一次交易承担的风险最多不超过我的帐户的１％。其次，我们每天检查所做的单子是否相关。如果有８种单子都是高度相关，虽然分成８种，但实际上是一种，只不过风险大８倍。<BR>　问：这是否意味着如果你既看好马克又看好瑞士法郎，那你就只选买一种。<BR>答：的确如此。但更重要的是在一个市场做多头的同时要尽量选一个能做空头的市场。比如，眼下我虽然做美元空头，但我在做日元多头时还做马克空头。<BR>&nbsp; 问：像你这样做马克B日元交叉盘，是不是比做单独货币来得慢？<BR>答：不一定。有时照样能赚大钱。<BR>　问：你的交易风格是基本分析和技术分析相结合。如果硬要你选择，你选哪一个？<BR>答：这就像问大夫他是喜欢靠诊断看病还是靠观测看病。哪一个都不能少。７０年代时靠技术分析赚钱容易一些。那时候假破关现象少得多。如今人人都是图像派，而且技术交易系统泛滥，我觉得这对技术派不利。<BR>　问：你觉得做单高手有没有特殊才能？<BR>答：本来超级高手就应该是极少数。<BR>　 问：做单成功天份和努力占多大比重？<BR>答：不下苦功极少有可能成为高手。有人可能短期得手，但长了总不行。最近我刚听说有人做铜期货去年一年赚了２，７００万，但很快又全部输回去。<BR>　问：你对新手有何忠告？<BR>答：首先，一定要认识到风险管理的重要性。第二个忠告是，少做，少做，再少做。不管你认为你应该进多少单，先减掉一半再说。除此之外，新手往往把市场人化。最常见的错误是把市场看作个人的对头。实际上市场是完全超脱的，它才不管你是赢钱还是输钱。一个交易员如果主观地说："但愿"或"希望"如何如何，那他就没法集中精力分析市场，这样有害无益。</H4></A>]]></description>
</item><item>
<title><![CDATA[经济新闻对外汇市场短期波动的影响]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=13540</link>
<author>pcthomas</author>
<pubDate>2006/4/17 14:33:40</pubDate>
<description><![CDATA[在影响外汇市场波动的经济新闻中，美国政府公布的关于每月或每季度美国经济统计数据的作用最大，其主要原因是美元是外汇市场交易的最重要的货币。从经济统计数据的内容来看，按作用大小排列可分为利率变化、就业人数的增减、国民生产总值、工业生产、对外贸易、通货膨胀情况等。这种排列并不是绝对的，例如，美国对外贸易的每季度统计数曾是最重要的影响美元走势的数据之一。80年代中期以前，每当美国贸易数字公布前几天，外汇市场就会出现种种猜测和预测，引起外汇市场的剧烈波动。但是在80年代中后期以后，其作用越来越小，原因是市场已真正意识到，目前外汇市场的交易额中，国际贸易额所占的比重仅仅为1%左右。所以，现在美国对外贸易统计数据公布时，外汇市场经常不会对它作出大的反应。<BR>1、利率政策<BR>&nbsp; 在各种经济数据中，各国关于利率的调整以及政府的货币政策动向无疑是最重要的。对外汇汇率和利率的相互关系，本文不做详细介绍，但这里要强调的是，有时政府虽然没有任何表示要改变货币政策，但只要市场有这种期待，或者说其他国家都采取了类似的行动，那么，外汇市场会继续存在这一政府会改变政策的期待，使这一国家的货币汇率出现大幅度波动。例如，1992年下半年，德国奉行反通货膨胀的紧缩性货币政策，德国中央银行一而再、再而三地声明要坚持这一政策，但外汇市场经常流传德国要减息的谣言和猜测，理由是德国的利息已经加到顶了。虽然德国没有任何减息动向，但在英国、法国、丹麦、瑞典等相继减息后，外汇市场又顽固地认为德国会减息，即使年底不减，第二年初也会减。这使马克对美元的汇价在美国与德国的利率差仍然很大的情况下，节节下跌。<BR>2、非农就业人口<BR>&nbsp; 美国关于非农业人口就业人数的增减数和失业率是近几年影响外汇市场短期波动的重要数据。这组数字由美国劳工部在每月的第一个星期五公布。在外汇市场看来，它是美国宏观经济的晴雨表，数字本身的好坏预示着美国经济前景的好坏。因此，在这组数字公布前的一、两天，只要市场上有任何关于这一数字可能不错的风言风语时，美元抛售风就会嘎然而止。较典型的例子是1992年1月上旬的美元对其他外汇的走势。从1991年下半年开始，外汇市场由于对美国经济可能陷入衰退的担忧，开始不断抛美元，使外汇对美元的汇价节节高攀，英镑对美元的汇率从1991年7月的1.60涨到1992年1月初的1.89。1992年1月9日，也就是美国劳工部公布美国前一年12月份非农业就业人口数可能增长10万，致使这一天外汇市场一开市，就有人开始抛外汇买美元，英镑对美元的汇价从1.88跌至1.86，跌幅近200点。经过几个小时后，外汇市场便开始恐慌性地买美元，马克、英镑、瑞士法郎等对美元的汇价出现狂泻，英镑又掉了近600点，跌至1.8050。第二天公布的非农业就业人口数虽仅增长了3万，但这次恐慌改变了以后4个月美元对其他外汇的走势。美元在对美国经济前景看好的前提下，一路上扬，一直到4月份，美国经济情况并不如预期中那么好的事实才被外汇市场所接受，美元从此又开始走下坡路。<BR>3、其他经济数据<BR>&nbsp; 其他一些美国经济统计数据对外汇市场也有影响，这些数据包括工业生产、个人收入、国民生产总值、开工率、库存率、美国经济综合指标的先行指数、新住房开工率、汽车销售数等，但它们与非农业就业人口数相比，对外汇市场的影响要小得多。这些经济指标对外汇市场的影响也有其独特的规律。一般来说，当美元呈一路上扬的“牛”势时，其中任何指标在公布时只要稍好一些，都会被外汇市场用来作为抛外汇买美元的理由，使美元进一步上扬，而指标为负数时，外汇市场有时就对其采取视而不见的态度。同样，当美元呈一路下泻的“熊”势时，任何公布的经济指标为负数时，都会成为外汇市场进一步抛美元的理由。<BR>&nbsp;&nbsp; 美国、德国等每月公布的批发价、零售价指数的变化情况对外汇市场也有影响，但影响的大小要看特定的条件。一般来说，当市场对某国中央银行存在着减息或加息的期待时，其每月公布的物价指数对外汇市场的敏感性就很强。例如，1992年11月，澳大利亚的澳元对美元的汇率已创近几年的最低点，外汇市场许多人认为澳元已接近谷底，有可能开始反弹了。但市场上也有人根据澳大利亚经济前景暗淡的预测，传言澳大利亚中央银行可能会采取减息的刺激经济措施。这时，澳大利亚政府公布的10月份批发物价上涨率仅为0.1%，为近10多年来的最低水平，外汇市场仿佛找到了其减息期待的依据，当天就出现抛澳元风，使澳元在低谷徘徊。<BR>&nbsp; 除了经济统计数据之外，其他关于经济活动的报道也会对外汇市场产生很大的影响。外汇价格的变动在很大程度上是外汇市场上的人对外汇波动的期待的反映，换言之，如果人们期待外汇有某一个长期的均衡价格，那么，现货价格的波动就会朝这个价格的方向移动。而这种期待是主观性的东西，它必然会受到客观经济环境的影响。因此，在连续几天没有关于经济活动数据分布的情况下，有关国家货币当局官员的讲话、《华尔街日报》关于外汇市场<BR>&nbsp; 的有影响力的一篇文章、某研究机构或大企业关于外汇走势的研究报告等，都可能会在某一天造成外汇市场的剧烈波动。这种现象对那些身处外汇市场以外的人来说，似乎很难理解，为什么一个官员的讲话会使美元猛跌或猛涨2至3美分(即200至300点)？如果把人们主观期待的因素考虑在内，这种现象就不难解释了。一个官员的讲话中一篇关于外汇的重要文章仅仅是提供了某种信号，给人们的合理预期起了催化剂的作用，最后导致外汇市场的波动。<BR>&nbsp; 而波动幅度的大小，就由这些信号在合理预期中的催化剂作用大小来决定。<BR>&nbsp; 如果市场不认为它是信号，则这种讲话再多，外汇市场的人也会充耳不闻。较典型的例子是英镑在1992年年底的跌势。自1992年9月欧洲货币体系危机以后，外汇市场出现了猛抛英镑风，其原因在于英国经济前景暗淡、英国经济政策不明朗、英国减息期待等多种因素，为了稳定英镑的汇率，英国财政大臣拉蒙特多次发表讲话，表示要稳定英镑汇率，甚至可能以加息来提高英镑的汇价。但每次都只能给英镑的汇率以微弱而短暂的支持，在英镑稍有回弹后，外汇市场就有更多的人抛英镑。<BR>三、影响外汇市场短期波动的政治因素
<H4>&nbsp; 与股票、债券等市场相比，外汇市场受政治因素的影响要大得多。当某一件重大国际事件发生时，外汇市场的涨落幅度会经常性地超过股市和债券市场的变化。其主要原因是外汇作为国际性流动的资产，在动荡的政治格局下所面临的风险会比其他资产大；而外汇市场的流动速度快，又进一步使外汇市场在政治局面动荡时更加剧烈地波动。<BR>&nbsp; 外汇市场的政治风险主要有政局不稳引起经济政策变化、国有化措施等。从具体形式来看，有大选、战争、政变、边界冲突等。从资本安全角度出发，由于美国是当今世界最大的军事强国，其经济也仍处于领先地位，所以，一般政治动荡产生后，美元就会起到“避风港”(safe haven)的作用，会立刻走强。政治事件经常是突发性事件，出乎外汇市场的意料，这又使外汇市场的现货价格异常剧烈地波动，其波动幅度大大超过外汇价格的长期波动幅度。下面选择苏联8.19事件、英国1992年大选和美国攻打伊拉克的“沙漠风暴”计划为例子，说明政治事件对外汇市场短期走势影响的一些规律。<BR>1、苏联1991年8.19事件对外汇市场的影响<BR>&nbsp;&nbsp; 从1991年下半年开始，美元对几乎所有的主要外汇都呈弱势。但是，苏联8.19事件使这走势完全打乱，而事件失败后，又使走势恢复到原来的状态，美元又一路走弱，到第二年1月才止跌回升。<BR>&nbsp;&nbsp; 外汇市场在苏联8.19事件前后的波动完全说明了美元作为“避风港”货币的作用。在8.19事件发生以前，外汇市场已在流传苏联政局不稳的消息，美元连续7天小涨，但谁也没有预料到会有突发事件发生。到8月19日，当外汇市场所有交易者的计算机屏幕上打出“苏联发生政变”的字样时，便立刻出现一片恐慌性地买美元风。以英镑为例，英镑对美元的汇率在短短的几分钟内从1英镑兑1.6633美元猛跌至1.6130，跌幅达3.1%。第二天，外汇市场又随着弋尔巴乔夫失去联系、发动事件者似乎难以控制局势等消息的不断出现而涨涨落落。到第三天，8.19事件宣告失败，外汇市场立刻抛出美元。同样以英镑为例，英镑对美元的汇率从1.6363美元涨到1.6915，猛涨3.4%，使英镑又同其他外汇一起，开始了对美元的汇价一路上扬的走势。<BR>&nbsp;&nbsp; 苏联8.19事件期间外汇市场的走势表明，外汇价格的变动有其内在的规律。短期的突发性事件会引起外汇的现货价格明显地背离其长期的均衡价。但是，在事件过后，外汇走势又按照其长期均衡价格的方向移动。一般来说，短期的价格变动至多会修正长期外汇均衡价格的方向，却很难改变或彻底扭转它的长期波动趋势。<BR>&nbsp;&nbsp; 至于在政治性突发事件发生时，外汇市场的波动幅度的极限有多大，始终是一个有争论的问题。一般认为，在突发性事件发生时，外汇价格的波动完全由市场参与者的心理因素决定，取决于人们对这一事件的承受能力。这种解释在实际运用中说服力不强。但是，技术分析专家却认为，外汇对美元的汇率在突发事件时能跌多少，完全是有规律可循的。以苏联8.19事件为例，英镑对美元的汇价之所以跌至1.6130时止跌回升，完全是因为这一点是近5年来英镑对美元汇率移动平均线的底部，英镑对美元的汇率不太可能一次就穿过这条线，以后苏联8.19事件失败，更说明这一点的支撑作用。<BR>2、1992年4月英国大选对外汇市场的影响<BR>&nbsp;&nbsp; 在英国大选前的一个多月，外汇市场就开始受到这次大选的影响。在大选以前，保守党候选人即现任首相梅杰在民意测验中一直落后于工党候选人尼尔·金诺克。英国的工党在80年代以前执政时曾坚持实行国有化政策，导致资本外流的局面。保守党撒切尔夫人在1979年上任当首相后，花了近10年的时间推行私有化政策，而梅杰上任后也继续执行这一政策。因此，如果金诺克在大选中获胜，就可能意味着英国政府政策的改变。虽然工人出身的金诺克在工党内属保守派，但人们还是担心英国有可能回到国有化政策推行的年代。由于金诺克在民意测验中领先于梅杰，英国的金融界从3月就出现了两种现象，一是资本开始逐渐外流，另一是英镑的汇价逐步下跌。以英镑对马克的汇率为例，英镑的汇价从2月中旬就开始下跌，从2月底的1英镑兑2.96马克逐步跌至4月6日的2.83。<BR>&nbsp;&nbsp; 英镑是欧洲货币体系的成员货币，它对马克的汇率是由固定但可调节的汇率制决定的，上限在3.1320马克，下限在2.7780马克，中心汇率为2.95。但自从英镑在1990年加入欧洲货币体系后，外汇市场一直认为英镑的汇价是高估的，所以经常在英镑走强时抛英镑。在英国大选到来时，梅杰在民意测验中落后，自然使外汇市场认为英国的政策前景不稳，进一步煽起了市场的抛英镑风，使英镑对马克的汇率向欧洲货币体系规定的底限逼近。<BR>&nbsp; 大选这一天，英镑在外汇市场出现了剧烈的波动。从英镑对马克的汇率来看，波幅为2%，达600点，即6个芬尼，而且整个一天的波动是很有戏剧性的。在大选前两天，外汇市场由于听到梅杰在民意测验中已接近金诺克的传闻，就已经开始买英镑抛马克等外汇。在大选这一天，金诺克的选票和民意测验结果在一开始仍然领先于梅杰，使外汇市场又大幅度地抛英镑。但没过多久，梅杰的选票就开始节节上升，立刻在外汇市场刮起了抛外汇买英镑的旋风，使英镑对马克的汇价迅速攀升，从2.8477马克猛涨到2.9053。<BR>&nbsp;&nbsp; 大选结束以后，英镑似乎从此扭转了弱势，成了坚挺的货币。外汇市场总是谈论英国的经济前景看好，流到海外的资本会返回英国，梅杰的胜利表明英国政局的稳定等等。其实，这时的梅杰还是原来当首相的梅杰，而以后一段时期内经常出现英国经济不景气的统计数据。但英镑在以后的近两个月内还是一路上涨。许多预测专家和技术分析专家都预言，英镑对马克的汇价将上升到3.10，去试探欧洲货币体系规定的3.13上限。从图形上来看，英镑对马克的汇价在大选后一直居高不下，但每次冲高时都在2.9500处被弹回，经过近两个月的高处徘徊，英镑对马克的汇价终于在6月份开始下跌。<BR>&nbsp; 英镑在英国大选前后的走势表明，外汇价格在短期内的过度波动可能会由于市场预期的支持而维持较长时期。在这种预期被打破以前，市场有时会认为短期的均衡价格是一种合理的价格，而预测中的长期均衡价格反而被认为是有偏差的。但是，如果外汇市场的预期始终得不到证实，因意外事件而扭曲的外汇价格走势就会恢复到原来的趋势上去，甚至走得更远。从6月份开始，英镑对马克的汇价一路下跌。在外汇市场证实英国经济前景并不十分乐观时，英镑的弱势就成为大势所趋了。以至在9月份的欧洲货币体系危机后，英镑对马克的汇价直线下降，仿佛如自由落体，迫使英国退出欧洲货币体系，英镑对马克的汇率在10月跌至2.40马克。<BR>&nbsp;&nbsp; 3、美国攻打伊拉克解放科威特的“沙漠风暴”计划对外汇市场的影响“沙漠风暴”计划也很典型地反映出美元和黄金作为资金的“避风港”作用。世界局势的动荡不安会使美金和黄金大涨，以前人们所说的“大炮一响，黄金万两”应该就是这个意思。<BR>外汇市场的许多投资者认为，外汇价格的走势有其一定的规律。但是在“沙漠风暴”计划前后，外汇市场的价格走势忽上忽下，显得非常凌乱。美国进攻伊拉克是1991年1月17日，在这以前的一个月内，外汇市场围绕美国究竟会不会打的猜测，大起大落，很明显地说明了上述特点。每当美国政府要员发表态度强硬的讲话，表示要采取军事行动，美元就会在一天内大涨一波；而外汇市场听到有西欧国家出面调解的传闻，似乎和平解决可望实现时，美元就会下跌一次。在1月17日战争爆发这一天，美元一开始也是猛涨。从图4—4英镑对美元的走势来看，英镑跌到过1.8990。但没隔多久，新闻界传来美国已很快控制局势，稳操胜券时，美元的“避风港”作用立刻消失，市场便开始抛售美元，英镑对美元的价格猛涨到1.9353，以后的一个月内便一路上涨。<BR>&nbsp;&nbsp; 其实，根据对美国和伊拉克两国的军事实力分析，以及国际上舆论的倾向，任何理智的结论都会认为美国会达到把伊拉克赶出科威特的军事目的。然而，外汇市场并不接受这种逻辑判断，而是根据人们第一产生的心理和期待去寻找价格。只有在事实被人们接受之后，市场价格才会猛然回到原来趋势上去。黄金的美元价格更能说明这一点，在美国向伊拉克进攻后，黄金价格出奇地涨到410美元1盎司，但在美军取绝对优势的消息传出后，黄金又猛泻到373.70美元，期间的跌幅高达9.7%，大大出乎人们的预料，许多市场的小投资者顿时全部被“套”在里面，而且又由于黄金以后又持续下跌，使这部分投资者的损失十分惨重。<BR>&nbsp; 从任何一种主要外汇对美元的汇率走势10年图中，人们都可以发现这10年国际政治、经济格局的变化情况。由于每次突发事件，每项重要的经济统计数据都会在每天的外汇市场上引起剧烈的波动，使汇率涨跌史成为国际政治经济发展史的缩影这一结论更具有说服力。在外汇市场投资，在把握住外汇走势的长期趋势时，更要十分注意它在短期的波动，只有认清它的短期波动规律，才能在外汇市场立于不败之地。<BR></H4>]]></description>
</item><item>
<title><![CDATA[外汇市场心理行为分析]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=13539</link>
<author>pcthomas</author>
<pubDate>2006/4/17 14:30:10</pubDate>
<description><![CDATA[
<H4>导 言<BR>　　成为一名成功的专业外汇投资者，并不是一件轻而易举的事情，您需要培养的是长期、持续、稳定的获利能力。从这一点来说，短期的成功并不能说明什么问题。<BR>　　J·P摩根说：“要想成为一个货币专家，首先要成为一个自我控制者。”</H4>
<H4>&nbsp;　进入高级教程，您需要重新认识自己，然后建立适合自己特点的交易决策系统，并根据系统去交易。严格按照这一建议来做，能够确保您不会在短期的成功之后输得更惨！<BR>　外汇市场是这样一个市场：一大群智力相当的人，面对大致相同的市场资料，使用大致相同的分析预测手法，遵循众所公认的交易规则，进行一场零和游戏。其结果是既有少数高手从几千、几万元起家，累计了数千万乃至数亿元的财富，亦有芸芸大众始终小赚大赔，直至血本殆尽犹不知自己究竟失败在哪里。<BR>&nbsp;&nbsp; 对于大多数小额投资人来说，他们的处境更为不利：经验有限，要为每一个自己未遇过的陷阱缴一次可观的学费；资本有限，常常刚入外汇市场之门，已弹尽粮绝；资料的占有方面也处于劣势。因此，一般大众在这场充满魅力的零和游戏中，往往成了垫底的牺牲品。<BR>　本节的目的正是告诉大众他们失败的根本原因。从某种意义上来说，外汇市场的失败者，往往并不是不能战胜这个市场，而是不能够战胜他们自身。<BR>1、心理误区之一：人多的地方抢着去<BR>　盲从是大众的一个致命的心理弱点。一个经济数据一发表，一则新闻突然闪出，5分钟价位图一“突破”，便争先恐后的跳入市场。不怕大家一起亏钱，只怕大家都赚钱只有自己没赚。<BR>　记得1991年海湾战争时，战前形势稍有一紧张，美元就大涨，外币就大跌，1月17日开战那天，几乎百分之百的投资人都跳入场卖外币，结果外币一路大涨，单子被套住后，都不约而同信心十足地等市场回头，结果自然是损失惨重。<BR>　战争、动乱有利于美元走强，这是一个基本原理，为何会突然失效呢？大众常常在市场犯相同的错误，有时不同的金融公司的单子被套住的价位都几乎相同，以致大家都怀疑市场有一双眼睛盯着自己。<BR>　其实，市场是公正的，以外汇市场目前每天近万亿美元的交易额，任何个人都难以操纵。1992年9月开始因欧洲货币危机，市场投机客猛抛英镑，使英镑在短期内暴跌5000点，英国银行一再干预，乃至采用加息的办法，都无济于事。<BR>　　在外汇市场，对投资者而言，“人多的地方不要去”乃是值得铭记在心的箴言。<BR>2、心理误区之二：亏生侥幸心，赢生贪婪心<BR>　价位波动基本可分为上升趋势、下降趋势和盘档趋势，不可逆势做单，如果逆势单被套牢，切不可追加做单以图扯低平均价位。大势虽终有尽时，但不可臆测市价的顶或底而死守某一价位，市价的顶部、底部，要由市场自己形成，而一旦转势形成，是最大赢利机会，要果断跟进……这些做单的道理，许多投资者都知道，可是在实际操作中，他们却屡屡逆市做单，一张单被套几百点乃至一二千点，亦不鲜见，原因何在呢？</H4>
<H4>　一个重要的原因是由于资本有限，进单后不论亏、盈，都因金钱上的患得患失而扰乱心智，失去了遵循技术分析和交易规则的能力。</H4>
<H4>　有的投资者在做错单时常喜欢锁单，即用一张新的买单或卖单把原来的亏损单锁住。这种操作方法是香港、台湾的一些金融公司发明的，它使投资者在接受损失时心理容易保持平衡，因为投资者可期待价位走到头时打开单子。<BR>　实际上，投资者在锁单后，重新考虑做单时，往往本能地将有利润的单子平仓，留下亏损的单子，而不是考虑市场大势。在大多数情况下，价格会继续朝投资者亏损的方向走下去，于是再锁上，再打开，不知不觉间，锁单的价位便几百点几百点的扩大了。<BR>　　解锁单，无意中便成了一次次的做逆势单。偶尔抓准了一二百点的反弹，也常因亏损单的价位太远而不肯砍单，结果损失还是越来越大。<BR>　大概每个投资者都知道迅速砍亏损单的重要性，新手输钱都是输在漂单上，老手输钱也都是输在这上面，漂单是所有错误中最致命的错误，可是，投资者还是一而再、再而三地重复这一错误，原因何在呢？<BR>　原因在于普通投资者常常凭感觉下单，而高手则常常按计划做单。</H4>
<H4>　　盲目下单导致亏损，垂头丧气，紧张万分之余，明知大势已去，还是存侥幸心理，优柔寡断，不断地放宽止蚀盘价位，或根本没有止蚀盘的概念和计划，总期待市价在下一个阻力点彻底反转过来，结果亏一次即足以大伤元气。<BR>　　和这种亏损生侥幸心相对应的心理误区，是赢利生贪婪心。下买单之后，价位还在涨，何必出单？价位开始掉了，要看一看，等单子转盈为亏，更不甘心出单，到被迫砍头出场时，已损失惨重。<BR>　　许多人往往有这种经验：亏钱的单子一拖再拖，已损亏几百点，侥幸回到只亏二三十点时，指望打平佣金再出场，侥幸能打平佣金时，又指望赚几十点再出场……贪的结果往往是，市价仿佛有眼睛似的，总是在与你想平仓的价位只差一点时掉头而去，而且一去不回。<BR>　亏过几次后，便会对市场生畏惧心，偶尔抓准了大势，价位进得也不错，但套了十点八点便紧张起来，好容易打平佣金赚10点20点后，便仓皇平仓。</H4>
<H4>　亏钱的时候不肯向市场屈服，硬着头皮顶，赚钱的时候像偷钱一样不敢放胆去赢，如此下去，本钱亏光自然不足为奇。</H4>
<H4>3、心理误区之三：迷信外物而非市场本身<BR>　进场交易时，另一大心理误区是迷信市场的某些消息、流言，而不是服从市场本身的走势。<BR>　91年2月7日前几天，日本银行曾干预市场，买日元抛美元，使日元走强至124附近。2月7日前后，日本银行又开始干预市场，日本政府官员也多次发表谈话，表示美国和日本都同意日元继续走强，于是投资者蜂拥而入购买日元，然而，日元却开始下跌。<BR>　在这种情况下，投资者往往不去寻找和相信推动日元下跌的理由，而是因为有买日元的单子被套住，就天天盼望日本银行来救自己。结果，几乎每天都有日本官员谈日元应该走强，有时日本银行也一天进场干预三四次买日元，但是价位却一路下跌，跌幅几乎达一千点，许多投资者只做一二张买日元的单子，就损失了六七千美元，砍完单大骂日本言而无信，却不反省一下自己为何会损失那么惨重。让投资者亏钱的并不是日本银行，而是投资者自己。因为在当时，日元由于发生了一些丑闻而导致政局不稳，市场选择了这一因素，而投资者却不敢相信市场本身。普通投资者中当然也有可能产生外汇市场中一流好手，关键是要克服掉心理误区。即便是大银行的交易员，陷入心理误区，也难免赔钱，最终被市场淘汰。<BR>　散户投资者其实可分为三种人。第一种是对外汇市场基本上还很陌生的初学者；第二种是在外汇市场已有一点经验，自以为对技术分析、基础分析已有独到体会的人；第三种是经过多年悉心钻研和实践，确已炉火纯青的人。<BR>　第二种人是散户投资者中最大量的一群，也是最容易亏钱的一群，他们往往过度自信地认为自己可以很轻易地用自己所掌握的方法从外汇市场赚大钱，结果却往往是：他们一次跌入市场的陷阱，直到本钱输光的时候，才发现自己对“砍亏损单要快，平赢利单要慢”之类最基本的外汇市场制胜技巧，都未能透彻地掌握。<BR>　有一种观点认为外汇操作像烹调，原料、菜谱等等都差不多，但烧出的菜大不相同。其实，外汇操作更接近于博弈，像下围棋、象棋一样，同样的棋局，不同的棋手来处理，结局或胜或负或和，顶尖的高手只能是少数既能下苦功又有悟性的人。另一部分人在克服弱点经验增长后，有机会成为外汇市场的好手，而相当多的人即使有经验最终也会输掉。<BR>　当然，被外汇市场淘汰并不表明你智力有问题，而仅仅说明你目前不能适应这一市场而已。许多雄才大略的人，棋艺也可能很平凡。所以如果你的积蓄来之不易而又为数不多，不必悉数用来证明你会下单。要知道，偶尔赢一盘棋并不等于棋坛好手。<BR>　不过，外汇市场这个对手虽然深奥莫测，但你常常可以中盘加入，耐心等到你较易把握的局面出现时再入场。这是弥补你功力不足的极好办法。<BR>&nbsp; 单纯的依靠技术分析或基础分析，是很难对外汇市场走势作出准确预测的。因为影响价位变化的因素复杂而多变，有太多不可预知的事件，很难完全靠技术和可能的规律来解决问题。技术分析手法，有些实用，有些则是花俏的摆设，真正胜算极高的绝招，恐怕也不会轻易透露出来，因为用的人多了，就可能失效——在外汇市场这样的有效市场里，不可能每个人都同时赚钱。<BR>&nbsp; 即便是实用的技术，在不同的场合和不同的时间其效用可能大相径庭。比如破点追击法，在十几年前曾一度很有效，现在技术分析手法如此普遍，市场走势假破点的现象便增加许多，破点追击法就不会每次都有胜算了。<BR>&nbsp; 与其把精力花费在某些华而不实的技术上，还不如先踏踏实实摸透外汇市场走势的特性，特别是特定时间内价位走势的行为特性。<BR></H4>]]></description>
</item><item>
<title><![CDATA[汇市与股市的比较]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=13538</link>
<author>pcthomas</author>
<pubDate>2006/4/17 14:26:00</pubDate>
<description><![CDATA[从选择投资工具的角度来看，汇市与股市各有特点。以下做一个简单的比较，以供投资者参考。<BR>&nbsp; <BR>投资方式比较比较项目 股 票 外汇(实盘)<BR>&nbsp; <BR>参与市场 国内股票市场 国际外汇市场 
<H4>市场规模 每日成交量100亿人民币 每日成交量15000亿美元</H4>
<H4>监 管 方 中国证监会 行业国际惯例及各国央行</H4>
<H4>流 动 性 较差，有涨跌停板 最好，无涨跌停板<BR>&nbsp;<BR>开户手续 股东代码卡+证券公司帐号 银行外汇帐号</H4>
<H4>投资金额 无高限和低限 无高限和低限<BR>&nbsp; <BR>交易时间 每周一至周五上午9：30——11：30 下午1：00——3：00 每周一至周五24小时交易</H4>
<H4>结算周期 T+1 T+0</H4>
<H4>结算货币 人民币、港币、美元 除人民币外的所有外币</H4>
<H4>交易品种 多达1000家以上 四种主要货币+十几种交叉汇率</H4>
<H4>交易方式 自助终端、电话、互联网 互联网、电话、自助终端、柜台</H4>
<H4>平均波幅 每年50%左右 每年15%左右，每日0.8——1.5%</H4>
<H4>交易费用 1—3‰手续费 无手续费</H4>
<H4>年度获利潜力 不确定 20%左右</H4>
<H4>风 险 ST、PT、退市 国家消亡</H4>
<H4>&nbsp;&nbsp; 总体来看，外汇市场更加规范和成熟，交易方式更加灵活和方便，获利空间较大而风险则可控制在一定的限度内。对于专业的投资者，以及持有外汇的机构和个人来讲，是一种稳健而成熟的投资方式。</H4>]]></description>
</item><item>
<title><![CDATA[斷尾求生的藝術--停損]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12932</link>
<author>pcthomas</author>
<pubDate>2006/3/27 16:07:08</pubDate>
<description><![CDATA[
<P><A>　<SPAN id=tpid451132><SPAN id=spid451132>一般人的觀念裡，期貨交易是一個「高風險、高報酬」的市場，大多數的參與者雖然都具備這個常識，但是往往只沉醉於可觀的獲利中，對於「潛在的巨大風險」卻視若無睹。我們都知道，壁虎在面臨生命威脅時，會自斷尾巴以求全身而退，許多自然界中的生物都具備這種令人敬佩的求生本能。在期貨市場中，不怕死的烈士俯拾可見，但擁有壁虎精神、肯認錯停損的人，卻成為了市場的稀有動物。 <BR>好的停損點設置技巧很高，且要確實執行須具備異於常人的勇氣與決心，但它卻是成為市場中常勝軍不可或缺的要件之一。本篇文章將簡單介紹數種設定停損點的方法。<BR><BR><FONT color=red>一、資金停損法</FONT> <BR>資金停損法無須任何技巧，完全依照各人對於損失的接受程度而定。例如，某人進行一筆交易，他所願意接受的最大損失為500美金，若不幸這個倉位的損失達500美金的時候，就必須無條件地認賠出場。<BR><BR>這種設定方法的優點是簡單、且不易受到依技術面設定造成觸發性停損的影響；相反地，依吾人的經驗看來，由於這種停損設定法缺乏技術面意義，通常失敗機會較大，但其真正好壞則因人而異，可依各人喜好決定是否採用。<BR><BR><FONT color=red>二、技術指標停損法 </FONT><BR><BR><FONT color=blue>1.SAR指標</FONT><BR>SAR指標是威爾得所發明，其運用類似移動平均線的原理，多空方向顯示於圖形中，且停損點(或停利點)完全依照指標所設定(如圖一所示)，完全不須自行判斷，吾人將其歸類為「懶人操作法」。缺點為停損點通常過大、遇趨勢不明的盤局時績效非常不利。 <BR><BR><FONT color=blue>2.移動平均線</FONT><BR>利用移動平均線作為停損點(或停利點)，因為某些參數的移動平均線可視為支撐或壓力，至於參數的設定依各人的交易策略與各個市場的不同而定。 <BR><BR><FONT color=blue>3.動能指標</FONT><BR>若某人以MACD或K-D指標作為進場依據，例如指標交叉向上買進，則當指標交叉向下時，亦即原先進場的理由消失後，就應將倉位平倉出場(在無其它停損點設定方法的前題下)。 <BR><BR><FONT color=red>（圖一）圖中小點即代表停損點，若位於價格走勢上方則代表做空，反之做多。</FONT></SPAN></SPAN></A></P>
<P><A href="http://y2.cn/attachments/month_0405/01_KTbFfYrWbO3W.gif"></A>&nbsp;<IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/01_KTbFfYrWbO3W.gif" border=0></P>
<P>&nbsp;</P>
<P><SPAN id=tpid451137><SPAN id=spid451137><FONT color=red>三、價格型態停損法</FONT> <BR>這種方法是依照道氏理論中的各種價格型態所行形成的支撐或壓力為依據，例如頭肩頂、矩形、三角形、旗形…等（型態學非本文主題，故不詳加說明）。吾人須強調，停損點的設置應設於壓力之上(放空者)、支撐之下(做多者)，亦即多讓幾點，以免造成盤中極端點的觸及。<BR><BR><FONT color=blue>1.反轉型態 </FONT><BR>反轉型態包括頭肩頂(底)、M字頭(W底)、三角形、矩形、拓增形…等，主要是利用價格突破後、這些型態完成，所形成的支撐或壓力作為停損點（如圖二所示）。 <BR><BR><FONT color=red>（圖二）圖中顯示瑞士法郎中期趨勢於1999初形成M頭後步入空頭，放空者可將停損點放置於頸線上緣，如圖中所示。</FONT></SPAN></SPAN> </P>
<P>&nbsp;</P>
<P><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/02_rvzpInisGsFf.gif" border=0></P>
<P>&nbsp;</P>
<P><SPAN id=tpid451140><SPAN id=spid451140><FONT color=blue>2連續型態 </FONT><BR>連續型態為價格走勢中的整理，有稍作休息再出發的味道，是不錯的進場機會，如三角形、旗形、矩形等（如圖三所示）。其中，若價格走勢呈現橫盤走勢(箱形整理)，且盤整區間夠大，如外匯市場100點以上的區間，則可採取區間來回操作，停損點可置於盤整區間上檔與下檔（如圖四所示）。 <BR><BR><BR><BR><FONT color=red>（圖三）圖中顯示加幣在做完三角旗形整理後，繼續原先的跌勢，是不錯的進場放空點。</FONT></SPAN></SPAN> </P><A><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/03_6MmeuqWjsjDq.gif" border=0></A> 
<P>&nbsp;</P>
<P><SPAN id=tpid451142><SPAN id=spid451142><FONT color=red>（圖四）美國S&amp;P股價指數在1999年初進行近三個月的箱型整理，適合來回操作，停損點可分別置於盤整區間的上下檔。</FONT></SPAN></SPAN></P>
<P><SPAN><SPAN><FONT color=#ff0000></FONT></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/04_HcPhDM6WjROU.gif" border=0></SPAN></SPAN></P>
<P><SPAN><SPAN><FONT color=#ff0000></FONT></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><SPAN id=tpid451144><SPAN id=spid451144><FONT color=blue>3趨勢線 </FONT><BR>趨勢線是由價格走勢中的兩點即可形成，例如多頭走勢是由逐漸墊高的低點連成上升趨勢線，碰觸次數越多意義越大（趨勢線非本文主題，故僅簡單說明），它可視為上升走勢的支撐，故做多者可將賣出停損點設於上升趨勢線下方（圖五所示），空頭走勢則相反。<BR><BR><BR><BR><FONT color=red>（圖五）道瓊工業股價指數期貨於1999年9月、10月向下修正，上方有一條下降趨勢線，放<BR>空者可將停損點設立於該線上緣；10月底向上突破短期下降趨勢線後，又持續原先<BR>的多頭走勢，可向上做多，停損點放置於趨勢線下方。</FONT></SPAN></SPAN> </SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/05_zVSGGvj99lxi.gif" border=0></SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><SPAN id=tpid451146><SPAN id=spid451146><FONT color=blue>4缺口 </FONT><BR>缺口可分為一般缺口、突破缺口、逃逸缺口與竭盡缺口等，它可視為支撐或壓力（一般缺口除外），故可將其設置為停損點（如圖六所示）。<BR><BR><BR><BR><FONT color=red>（圖六）澳幣於2000年1月中以跳空方式跌破短期上升趨勢線後，形成突破缺口，造成一連串<BR>下跌，是不錯的放空機會，停損點可置於缺口上方。</FONT></SPAN></SPAN> </SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/06_nutH0RSLUUbO.gif" border=0></SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><SPAN id=tpid451147><SPAN id=spid451147><FONT color=blue>5.一般性原則</FONT> <BR>順勢操作是一般的最高原則 (除箱型盤整外)，假定某人認定此時價格走勢為多頭走勢，則可將停損點設置於前次相對低點，空頭反之，如圖七所示。 <BR><BR><BR><BR><FONT color=red>（圖七）澳幣期貨於2000年1月步入空頭，若無前述停損點設置的依據原則，則可將停損點設<BR>置於前波相對高點，如圖中所示。</FONT></SPAN></SPAN> </SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><IMG style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000" src="http://y2.cn/attachments/month_0405/07_ZC9eg6nUFknD.gif" border=0></SPAN></SPAN></P>
<P><SPAN><SPAN></SPAN></SPAN>&nbsp;</P>
<P><SPAN><SPAN><SPAN id=tpid451151><SPAN id=spid451151>支撐與壓力常被許多人解釋為單一價格點，但吾人對此則不以為然，吾人認為支撐與壓力應是一價格區間而非單一特定點，至於停損點該設置於區間何處，端視價格的波動程度與其交易策略而定。此外，以技術面來設定停損點必須注意，重要的支撐或壓力常為許多人所設定的停損處，故在設定停損時，應避開這些地方(如多讓些點數)，以免受到觸發性停損的波及。<BR>吾人認為期貨交易首重健全的交易策略，其中資金管理(風險控管)可視為其核心，而停損又可為資金管理的靈魂所在，由此可見停損的重要。唯有落實交易策略、嚴守停損，才能常保青山在，成為期貨市場的常勝軍。 <IMG src="http://y2.cn/images/smilies/lol.gif" align=absMiddle border=0><IMG src="http://y2.cn/images/smilies/lol.gif" align=absMiddle border=0></SPAN></SPAN></SPAN></SPAN></P>]]></description>
</item><item>
<title><![CDATA[欧元中长线做多的时机即将来临了！]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12930</link>
<author>pcthomas</author>
<pubDate>2006/3/27 16:05:35</pubDate>
<description><![CDATA[<STRONG><SPAN class=smalltxt><SPAN class=bold>欧元中长线做多的时机即将来临了！</SPAN></SPAN><BR><BR></STRONG>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD width=14><STRONG><IMG height=8 src="http://y2.cn/images/thnr/top_l.gif" width=14></STRONG></TD>
<TD background=images/thnr/top_c.gif><STRONG></STRONG></TD>
<TD width=16><STRONG><IMG height=8 src="http://y2.cn/images/thnr/top_r.gif" width=16></STRONG></TD></TR>
<TR>
<TD vAlign=top width=14 background=images/thnr/center_l.gif><STRONG></STRONG></TD>
<TD style="LINE-HEIGHT: 14pt" bgColor=#fffff1><SPAN id=tpid1238609><SPAN id=spid1238609>严格说来， Euro/USD无论技术面还是基本面都暂时处于无明显大趋势方向的盘整局势。<BR><BR>技术面上Euro/USD在100周平均线支撑与30周平均线压力的通道中盘整震荡。<BR><BR>而基本面方面，&nbsp;&nbsp;回顾一下，&nbsp;&nbsp;利率方面，&nbsp;&nbsp;一年前的普遍预计是美国加息到4%-4.5%左右将停止，&nbsp;&nbsp;而事实上一年以来，&nbsp;&nbsp;美联储每次稳步加息四分之一厘的步调，&nbsp;&nbsp;直到今天4.5%的利率依然给人利率能加到5%以上的想象空间。<BR><BR>不过我认为转折点即将来临了， 新美联储主席伯南克上任后首次主持的美联储公开市场委员会(FOMC)利率制定会议结果将于今周三凌晨公布， 接任格老的这位美联储新掌门人曾在多个场合公开承诺要让美联储变得更透明， 这在很大程度上意味着美国时间3月28日的FOMC利率制定会议结果将对美国利率前景发出明晰信号。<BR><BR>美国2005年第四季度经济增速放缓，增幅降至3年以来的最低水平， 第四季GDP+1.1%对比第三季(R)+4.3%， 出现非常明显下滑， 第四季非农生产(R)-0.5%对比第三季(R)+1.5%也出现下滑,&nbsp;&nbsp;季度数据的下滑， 当然未必就说明是加息引起， 而且仅一个季度的数据说服力还不够， 但已经显示仅就当前美国经济数据并不足以支撑利率继续提升。<BR><BR>另一方面， 现时4.5%的利率位置极为微妙， 由于美国财政部已经在今年2月开始恢复发行30年期国债(2005年财赤创新高， 美国政府需要更多种的融资工具),&nbsp;&nbsp;结合现时美国6月和2年期的短债殖利率已经超越10年期和30年期的长债殖利率， 从配合长债发行的角度来说， 短期利率提升的前景也不可能太乐观了。<BR><BR>现在无论伊朗还是伊拉克问题， 中东局势尚无大的激化事件， 朝核问题也暂趋缓和， 暂时主导美元走势的主要焦点还是双赤问题和利率走势。<BR><BR>时间周期上来说， 美元从2002年起的三年下跌， 2005年的一年反弹，&nbsp;&nbsp;去年4月确定跌势距今也刚好接近一年， 所以我相信今周是一个关键点。&nbsp; &nbsp;我个人认为美元指数将迈入跌势。&nbsp;&nbsp;<BR><BR>回顾自己一年前的判断， 引发美元新一轮跌势的关键条件还未满足， 双赤虽然再创新高， 但美利率提升步伐仍未停止， 不过这个平衡看来将要被打破了。<BR><BR>如果今周FOMC会议显示这次是最后一次加息甚至不加息， 那美元将立刻大跌，&nbsp;&nbsp;不过考虑到新主席上任第一次主持会议，&nbsp;&nbsp;美元立刻开跌就太不给新主席面子了， 所以这种可能会比较小，&nbsp;&nbsp;更大的可能是在这次会议上保持加息，&nbsp;&nbsp;并维持加息预期， 等下半年再把多升的利息降回去， 这么做也能“体现”新主席的局面掌控能力。<BR><BR>非美做多， 首选欧元， 不但是因为欧洲央行最近几个月的强硬表态， 已经使欧元区已经开始步入加息周期这个事实不再使人疑虑， 回顾去年引发Euro/USD大跌的欧盟公投事件， 虽然也从侧面反映欧元结构的不稳定， 但欧盟东扩步伐减缓， 将东欧穷国纳入欧元区的步伐减缓对欧元区经济却是一个中期利好因素。<BR><BR>就短期技术指标结构来看， Euro/USD真正的大幅度上涨可能会在4月底甚至5月后， 那个时候今年第一季的经济数据也出来了， 加息也肯定进入尾声了。&nbsp;&nbsp;今周到4月的时间应该是不错的仓位布局时间。&nbsp;&nbsp;具体到4月短线走势可能是先向上攻击1.24附近的位置， 然后回测300-400点， 再继续上攻， 这段时间的走势会和美国方面的数据和信息密切相关， 欧元区方面的数据在这两个月的影响会比较弱。&nbsp;&nbsp;<BR><BR>另外由于有预感欧元上涨的顶点会是一个连自己也不敢想象的位置， 所以对欧元未来高点不作任何预期。<BR><BR>技术面上， Euro/AUD,&nbsp;&nbsp;Euro/CHF, Euro/GBP 全部维持涨势， Euro/JPY更是在近几月向上同时突破了长期趋势线和100月平均线(该平均线结合Euro前身的货币曲线来算)双重压制， euro/jpy长线牛市可期， 其实从日本3月结算euro/jpy却未怎么下跌， 已经初见征兆。&nbsp;&nbsp;所以从技术角度而言， 首选Euro也是和基本面相符的。<BR><BR>提到日元顺带提一下， 现在主要货币品种中， 日元在各种评级机构的信用评级都是最差的， 它超越GDP增幅的巨额财赤是一个重要原因， 即使未来日元利率提升， 对日元的提振也只可能是短期效应。&nbsp;&nbsp;这个问题上打个简单的比喻， 如果一个人借钱的速度超越了他赚钱的速度， 他突然在这种情况下嚷嚷说要提高借钱的利率了， 你猜猜接下来会发生什么？ <BR><BR>另外， 未来几年内有一个可能影响外汇走势的“不定时炸弹”， 就是中国台海， 台独最近是愈演愈烈， 这也意味着台海开战的可能是越来越大了， 假设这种情况一旦发生， 对美元的影响程度不好估计， 这将取决于美国采取的应对， 但我可以预期有两个货币一定会做出大动作， 其中一个是瑞士法郎， 很可能会产生一个tick 300点以上的剧烈波动， 而另一个必将遭遇毁灭性打击的货币则是日元。<BR><BR><BR><BR>今周由于同时是月收盘也是季度收盘周，&nbsp;&nbsp;多空争夺必然激烈，&nbsp;&nbsp;如谨慎者可等下周收盘定局后再进场(因如美继续加息， 不排除euro还有最后一跌)，&nbsp;&nbsp;否则，&nbsp;&nbsp;我觉得， 周一直接进场做多欧元是个不错选择。</SPAN></SPAN></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[关于入市和离场战略]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12928</link>
<author>pcthomas</author>
<pubDate>2006/3/27 15:23:31</pubDate>
<description><![CDATA[
<P><SPAN id=tpid4542><SPAN id=spid4542>如何扩大盈利头寸和减少损失。 <BR><BR>&nbsp;&nbsp;1） 首先，交易之前，你要制定一套完整的交易计划，包括预期的入市价位和盈利目标。<BR><BR><BR>&nbsp; &nbsp;2）多数情况下，入市和离场的点位应选在价格走势中的支撑位和阻力位。<BR><BR><BR>&nbsp; &nbsp;别一种入市的办法是，在市场走势的开始阶段，上升行情的回撤，下跌行情的修正，都是入市的良机。市场不会一味地上涨或下跌。关键要判断是修正还是行情的转折。<BR><BR>&nbsp;&nbsp;<BR><BR>3）当手中头寸出现亏损时，何时出局，我有一个简单易行的办法：严格设定止损价位。假如你做的是多头，你就应该设定卖出止损；假如你做的是空头，你就要设定买进止损。这样你在下单后，你会做到心理有数。不管市场发生什么样的变化，你潜在的亏损额是固定的。记住，做任何一张单都要设定止损！这样你在交易过程中不会为何时离场而感到困惑了。我在交易时，每次都设定止损价位，因为我并不富有，我还想留点资金以后再做呢。是的，有时候当我止损出局时，市场可能又会马上向着我预想的方向发展。但是，正因为我设定了止损位，我不会因孤注一掷而损失惨重，也不会因空等市场的回转而越陷越深。 <BR><BR>&nbsp; &nbsp;4）当手中头寸获利时，而且盈利部分较为丰厚时，又该怎么办？这时候，最好的办法就是采用"递损减盘"的办法来扩大战果。例如，你在建立多头之后，市场运行到你预期的盈利水平，但你认为市场仍有一定利润空间，不想出局，这时候你就可以在某一价位设定止损，锁定你的利润。市场一旦下行，你就可以获利出局</SPAN></SPAN> </P>
<P>&nbsp;</P>
<P><SPAN id=tpid47359><SPAN id=spid47359>1）当然市场交易热络时，你可以调整预定的计划。但切记，每一次交易前必须要深思熟虑，制定全套交易计划，并且头脑中要多几个"假如"，当"假如"的情况发生时你应该知道应对措施。<BR><BR>2）以谷物期货市场为例，目前市场投资者认为价格已接近底部，但我不会因为我臆断它接近底部就盲目做多，我需要验证一下市场的动力所在。这时候我会等待市场突破上行的阻力位，并开始新的一轮上攻行情时才下单；接下来，我会在接近于市场价格支撑位的下方设定止损位。这样，如果市场上行遇阻，转头向下，我会及时止损出局，亏损部分也就十分有限。<BR><BR>&nbsp;&nbsp;&nbsp; 以上的两点是上面贴中原文的一部分，为了看清楚点<BR>所以加以分开论述。</SPAN></SPAN> </P>
<P>&nbsp;</P>
<P><SPAN id=tpid47381><SPAN id=spid47381>&nbsp;&nbsp;&nbsp; 每一次的回落，被套者一定要尽早斩仓，哪怕是短暂的回调后再向上，你也只损失了一点点，留得青山在，不怕没柴烧。你进入了这个市场，首先就要有亏钱的准备，没有准备之前你最好还是别进来。获利者分为两种。短线获利者，或者出局，或者做好把利润还给市场的打算，限度是平局出场；中长线获利者，因获利一般较多，对后市看空的会自动离场，对后市看多的，一般会设定一个止盈价位，破此位也要出场。最可悲的是，长线获利者从起点回到起点还在想着曾经拥有的帐面富贵，死活硬挺，以致于来回坐滑梯，帐面上伤痕累累。</SPAN></SPAN> </P><SPAN id=tpid47635><SPAN id=spid47635>&nbsp;&nbsp; 止损也是一门艺术，掌握不好，反而失去赢利的机会。</SPAN></SPAN> 
<P>&nbsp;</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[外汇市场的最佳交易时间！（中国时区）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12927</link>
<author>pcthomas</author>
<pubDate>2006/3/27 14:51:52</pubDate>
<description><![CDATA[-<B><FONT color=red>早5-14点行情一般及其清淡</FONT></B><BR>　　这主要是由于亚洲市场的推动力量较小所为！一般震荡幅度在30点以内，没有明显的方向。多为调整和回调行情。一般与当天的方向走势相反，如：若当天走势上涨则这段时间多为小幅震荡的下跌。<BR>　　这一时段的行情由于大多没有方向可言，保证金交易者可以在早上6-8点左右观察一下，若行情为上下波浪震荡形态（看15分钟或是5分钟的图形）。可以在行情震荡到两端时作5-15点的操作，只放止赢不做短线止损即可。若到11点后还不能挣钱出来则要及时平仓止损。<BR>　　这种做法称之为5点法，是不能盯盘作的，适合操作技巧不高的投资者，最终止损可放30-40点左右！实盘交易者则不适用！<BR><BR><BR>----<B><FONT color=red>午间14-18点为欧洲上午市场，15点后一般有一次行情。</FONT></B><BR>　　欧洲开始交易后资金就会增加， 外汇市场是一个金钱堆积的市场，所以那里的资金量大就会在那里陈盛大的波动。且此时段也会伴随着一些对欧洲货币有影响力的数据的公布！一般震荡幅度在40-80点左右。<BR>　　这一段时间一般会在15：30后开始真正的行情，此次行情一半多会伴随着背离和突破等技术指标，所以是一段比较好抓的机会。<BR><BR><BR>----傍晚18-20点 为欧洲的中午休息和美洲市场的清晨，较为清淡！这段时间是欧中的中午休时，也是等待美国开始的前夕。<BR>----<B><FONT color=red>20点--24点为欧洲市场的下午盘和美洲市场的上午盘！这段时间是行情波动最大的时候，也是资金量和参与人数最多的时段。<BR>　　一般为80点以上的行情。</FONT></B><BR>　　这段时间则是会完全按照今天的方向去行动，所以判断这次行情就要跟剧大势了，它可以和欧洲是同方向的河可以和欧洲是反方向的，总之，应和大势一致。<BR><BR><BR>----<B><FONT color=red>24点后到清晨，为美国的下午盘，一般此时已经走出了较大的行情，这段时间多为对前面行情的技术调整。</FONT></B><BR>　　其实在中国的外汇交易者拥有别的时区不能比拟的时间优势，就是能够抓住15点到24点的这个波动最大的时间段，其对于一般的投资者而言都是从事非外汇专业的工作，下午5点下班到24点这段时间是自由时间，正好可以用来做外汇投资，不必为工作的事情分心。<BR>　　就我而言，我做保证金操盘很多年了，我的交易习惯就是，下午15-18点下单进场设好止损，止赢是看具体的技术徒刑，如背离和阻力位等等。也不用一直盯盘17：00、17：30-18：00、20：15-21：00（冬零时为加一小时）其后每20-30分钟看一次即可。<BR>　　赶不上下午的投资者当然就要等到晚上再交易了，但最好还是等到20点30以后，这一半是第二次行情开始的时间，也就是等到欧洲中午休息完了，美洲开市为止。要是有重要数据公布则要十分小心，此时由于波动巨大会场出现骗线的情况，不要盲目准势，就可有效避免骗线。<BR>　　可以说上帝为中国时区的人们创造了不可比拟的交易时间，让我们可以在尽量专心的情况下交易，大家可要好好把握呀。<BR><BR><BR><BR>觉得好的话, 就给兄弟加点分哦, <IMG src="http://y2.cn/images/smilies/handshake.gif" align=absMiddle border=0><IMG src="http://y2.cn/images/smilies/handshake.gif" align=absMiddle border=0>]]></description>
</item><item>
<title><![CDATA[外汇买卖比其它投资工具优胜之处]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12926</link>
<author>pcthomas</author>
<pubDate>2006/3/27 14:50:17</pubDate>
<description><![CDATA[<A>　 
<TABLE cellSpacing=5 cellPadding=0 width=440 border=0>
<TBODY>
<TR>
<TD class=css><STRONG>外汇买卖比其它投资工具优胜之处</STRONG></TD></TR>
<TR>
<TD class=css>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><FONT size=3>强大的杠杆<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>外汇买卖提供的杠杆是众多投资工具中最大的。在美国嘉盛集团，客户只要投资1000美元作保证金，就可以操作一张价值100，000基本货币的合约。 <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>免佣金<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>因为买卖的操作不经人手，所以我们不会收取任何佣金。 <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>有限风险<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>您的损失永远不会大于您投资在户口的保证金，所以客户永远不会有欠款。您亦可以使用我们的止损单来控制风险，我们保证所有止损单不滑点（适用于1,000,000或以下的合约） <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>可成交报价<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>交易平台上的报价是真正可成交报价，并非市场买卖的参考价。客户只须于价位上用鼠标按两下，便可快捷地下单。市场上有好些系统显示的价位是参考价而不是可成交价，它们收到报价请求后才会给客户报上一个可成交价。嘉盛提供的交易平台在这方面是绝对优胜的，客户可清楚的掌握入市或平仓的价位。（适用于价值1,000,000或以下的合约） <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>24小时运作的市场<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>现货外汇市场是专为活跃的交易者而设的完美市场。和股票和期货市场不同，货币交易是不会停市的，因而保证了24小时不间断的交易和给予投资者捕捉每个重要事项的交易机会。同时，24小时不间断的特性保证最小的市场跳空风险；换句话说，排除了开市价格戏剧性高于或低于收市价格的可能性。也就是说，因为24小时的市场，跳空性高开或低开是不可能的。</FONT></SPAN></P></TD></TR></TBODY></TABLE></A>]]></description>
</item><item>
<title><![CDATA[外汇交易与外汇市场]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=12925</link>
<author>pcthomas</author>
<pubDate>2006/3/27 14:48:03</pubDate>
<description><![CDATA[
<TABLE cellSpacing=5 cellPadding=0 width=440 border=0>
<TBODY>
<TR>
<TD class=css><STRONG>外汇交易与外汇市场</STRONG></TD></TR>
<TR>
<TD class=css>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><FONT size=3>外汇交易市场<SPAN lang=EN-US>, 也称为"Forex"或"FX"市场, 是世界上最大的金融市场, 平均每天超过1万5千亿美元的资金在当中周转 -- 相当于美国所有证券市场交易总和的30余倍. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>&nbsp;&nbsp;&nbsp; "外汇交易"是同时买入一对货币组合中的一种货币而卖出另外一种货币. 外汇是以货币对形式交易, 例如欧元/美元(EUR/USD)或美元/日元(USD/JPY).<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>&nbsp;&nbsp;&nbsp; 外汇交易主要有 2 个原因. 大约每日的交易周转的 5% 是由于公司和政府部门在国外买入或销售他们的产品和服务, 或者必须将他们在国外赚取的利润转换成本国货币. 而另外95%的交易是为了赚取盈利或者投机.<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>对于投机者来说，最好的交易机会总是交易那些最通常交易的 ( 并且因此是流动量最大的 ) 货币, 叫做“主要货币”. 今天, 大约每日交易的 85% 是这些主要货币, 它包括美元，日元，欧元，英磅，瑞士法郎，加拿大元和澳大利亚元。<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt"><BR><FONT size=3>&nbsp;&nbsp;&nbsp; 这是一个即时的 24 小时交易市场, 外汇交易每天从悉尼开始, 并且随着地球的转动, 全球每个金融中心的营业日将依次开始, 首先是东京，然后伦敦，和纽约。不象其他的金融市场一样，外汇交易投资者可以对无论是白天或者晚上发生的经济，社会和政治事件而导致的外汇波动而随时反应.<o:p></o:p></FONT></SPAN></P>
<P><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><BR>&nbsp;&nbsp;&nbsp; 外汇交易市场是一个超柜台 ( OTC ) 或“ 银行内部 ”交易市场, 因为事实上外汇交易是交易双方通过电话或者一个电子交易网络而达成的，外汇交易不象股票和期货交易市场那样, 不是集中在某一个交易所里进行的.</SPAN></P></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[为梦想和喜欢的事情而生活?!(10.21)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9318</link>
<author>pcthomas</author>
<pubDate>2005/10/21 10:28:15</pubDate>
<description><![CDATA[<P></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;如果一个人能够为自己的梦想而生活，一生只做他喜欢做的事情，那该有多幸福啊！&nbsp; <BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <U>小魏</U>是我最近认识的一个朋友，他更象是一个艺术家，他有勇气从他原来月薪不菲的岗位中离去，从事他现在每月只有几百元的但是是他最爱的职业，一心摄影。&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;听他兴致勃勃地谈论有关摄影的趣事和珠海周边的一些鲜为人知的好景点时，看得出他的幸福和快乐，我真的很激动，也很羡慕他的勇气和魄力。同时也不禁问自己，你呢？你原来的豪情壮志呢？你喜欢的计算机怎么办？你不是一直想在IT界有自己的一个席位的梦想吗？&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是啊，这些梦想我一直都没有忘记，更没有放弃，只是渐渐地长大，渐渐地了解到了现实的残酷和生存的艰辛。&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;我想我现在是没有勇气愤然离开的。有太多现实的问题摆在我面前，但我心依旧，我依旧执着的追求着自己心爱的东西，始终未变。&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我幻想着有一天，我可以在山林里，有一间小木屋，那里有充足的阳光和纯净的空气，耳边时时唱响各种不知名的鸟儿的歌声，门前有许多的花，各种颜色的都有，屋子里都飘满了花香。我就这样微笑着安静地坐在桌子前，看着自己喜欢的书，随意的写着一些文字，手边沏有一杯淡淡的茶，阳光温柔的照在我的脸上，思绪随着书中的情节抑或眼前的美景飘啊飘啊不知飘过多少座山，多少条河。&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 都不知道幻想过多少次这样的景象了，次数多了，总觉得那就是真的，真的有那样一个地方和那样一间小屋在等我……</P>]]></description>
</item><item>
<title><![CDATA[呜...脚扭到了]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9123</link>
<author>pcthomas</author>
<pubDate>2005/10/10 20:21:33</pubDate>
<description><![CDATA[&nbsp; 可惡。。我的右踝扭了，严重了，肿了大包，里面充满着瘀血。疼痛一直不止，然后开始肿了，很无奈的看着很不对称的两只脚，很郁闷的听朋友说“象猪蹄”.<IMG height=20 hspace=3 src="http://imgcache.qq.com/qzone/em/e3.gif" width=20 align=absMiddle vspace=3> <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;终于感觉到人在病时，更加需要別人來关心，不管平时是怎么的大男子汉，现在也会是这样感觉。<IMG height=20 hspace=3 src="http://imgcache.qq.com/qzone/em/e35.gif" width=20 align=absMiddle vspace=3> <BR><BR>&nbsp;&nbsp;&nbsp; &nbsp;我动不了了真的很痛，连躺在床上脚都不知道要放哪里，才不会痛。因为右脚要尽量少着地，所以只能单脚跳着走，单脚跳着上三楼。 <BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; 我想，这几天，真的要认真一点当病人了！:=( <BR><BR>&nbsp;&nbsp;&nbsp; &nbsp;原来有的时候幸福真的可以很简单，我现在只想能快点恢复就好！ <BR><BR>但愿能快点好。。。。<IMG height=20 hspace=3 src="http://imgcache.qq.com/qzone/em/e41.gif" width=20 align=absMiddle vspace=3>&nbsp;]]></description>
</item><item>
<title><![CDATA[JSP和Servlet中的绝对路径和相对路径]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9122</link>
<author>pcthomas</author>
<pubDate>2005/10/12 16:15:13</pubDate>
<description><![CDATA[<SPAN class=oblog_text>JSP和Servlet中的绝对路径和相对路径问题困扰了我好几天，经过努力之后将其部分心得和大家共享。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 前提：假设你的Http地址为<A href="http://192.168.0.1/">http://192.168.0.1/</A>你的web应用为webapp，那么你的web应用URL为http://192.168.0.1/webapp/ <BR><BR>web应用的目录结构： <BR><BR>webapp/ <BR><BR>web-inf/ <BR><BR>classes/ <BR><BR>lib/ <BR><BR>web.xml <BR><BR>&lt;servlet-mapping&gt; <BR><BR>&lt;servlet-name&gt;handleservlet&lt;/servlet-name&gt; <BR><BR>&lt;url-pattern&gt;/handleservlet&lt;/url-pattern&gt;此映射是相对于当前web应用的 <BR><BR>&lt;/servlet-mapping&gt; <BR><BR>user/ <BR><BR>a.jsp <BR><BR>b.jsp <BR><BR>images/ <BR><BR>css/ <BR><BR>js/&nbsp;<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所有相对路径都是由“/”开头的。如：/image/a.gif，/user/main.jsp，大家知道在html中的相对路径是这样的： <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有个html文件：a.html，其中有&lt;link href="one.css" rel="stylesheet" type="text/css"&gt;，其中href属性表示引用的css文件的路径。 <BR><BR>one.css：表示one.css和a.hmtl处于同一个目录 <BR><BR>user/one.css：表示one.css处于a.html所在目录的子目录user中。 <BR><BR>../one.css：表示one.css位于a.hmtl上一级目录下， <BR><BR>../../one.css：表示one.css位于a.hmtl上一级目录的上一级目录下， <BR><BR>./：表示和a.hmtl同一目录 <BR><BR>我们称上述相对路径为html相对路径 <BR><BR>1、服务器端的地址 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器端的相对地址指的是相对于你的web应用的地址，这个地址是在服务器端解析的（不同于html和javascript中的相对地址，他们是由客户端浏览器解析的）也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用，即相对于<A href="http://192.168.0.1/webapp/">http://192.168.0.1/webapp/</A>的。 <BR><BR>其用到的地方有： <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; forwarder：servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的，所以，你要forwarder到a.jsp应该这么写：request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp，其绝对地址就是：<A href="http://192.168.0.1/webapp/user/a.jsp">http://192.168.0.1/webapp/user/a.jsp</A>。 <BR><BR>sendRedirect：在jsp中&lt;%response.sendRedirect("/rtccp/user/a.jsp");%&gt; <BR><BR>2、客户端的地址 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 所有的html中的相对地址都是相对于<A href="http://192.168.0.1/">http://192.168.0.1/</A>的，而不是http://192.168.0.1/webapp/的。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Html中的form表单的action属性的地址应该是相对于<A href="http://192.168.0.1/">http://192.168.0.1/</A>的，所以，如果提交到a.jsp为：action＝”/webapp/user/a.jsp”；提交到servlet为action＝”/webapp/handleservlet” <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; Javascript也是在客户端解析的，所以其相对路径和form表单一样。 <BR><BR>3、站点根目录和css路径问题 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们称类似这样的相对路径/webapp/….为相对于站点根目录的相对路径。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当在jsp中引入css时，如果其相对路径相对于当前jsp文件的，而在一个和这个jsp的路径不一样的servlet中forwarder这个jsp时，就会发现这个css样式根本没有起作用。这是因为在servlet中转发时css的路径就是相对于这个servlet的相对路径而非jsp的路径了。所以这时候不能在jsp中用这样的路径：&lt;link href="one.css" rel="stylesheet" type="text/css"&gt;或者&lt;link href="../../one.css" rel="stylesheet" type="text/css"&gt;类似href="one.css"和../../one.css的html相对路径是相对于引用这个css的文件的相对路径。而在servlet中转发时就是相对于这个servlet的相对路径了，因为jsp路径和servlet路径是不一样的，所以这样的引用肯定是出错的。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以这个时候，要用站点根目录，就是相对于<A href="http://192.168.0.1/">http://192.168.0.1/</A>的目录，以“/”开头。 <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因此上述错误应更正为href=”/webapp/one.css”类似的站点根目录的相对目录。这样在servlet转发后和jsp中都是相对于站点根目录的相对路径，就能正确使用所定义的css样式了。 </SPAN>]]></description>
</item><item>
<title><![CDATA[有感:应聘Java笔试时可能出现问题及其答案(第二版part four)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9118</link>
<author>pcthomas</author>
<pubDate>2005/10/12 10:33:47</pubDate>
<description><![CDATA[<A>　<FONT face=宋体 size=6>代码与编程题</FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><STRONG><SPAN style="FONT-FAMILY: Verdana"><FONT size=3>135</FONT></SPAN></STRONG></SPAN><FONT size=3><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">、写一个</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Singleton</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">出来</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></STRONG><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">Singleton</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式主要作用是保证在</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Java</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用程序中，一个类</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Class</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有一个实例存在。</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Singleton</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式通常有几种种形式</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">:<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第一种形式</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">:&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义一个类，它的构造函数为</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">private</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的，它有一个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">static</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">private</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的该类变量，在类初始化时实例话，通过一个</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">public</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">getInstance</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">方法获取对它的引用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">,</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">继而调用其中的方法。</SPAN></FONT><SPAN lang=EN-US><BR><FONT face="Times New Roman" size=3>public&nbsp;class&nbsp;Singleton&nbsp;{<BR>private&nbsp;Singleton(){}<BR></FONT></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;//</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在自己内部定义自己一个实例，是不是很奇怪？</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;//</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意这是</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">private&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只供内部调用</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT size=3>　　</FONT></SPAN><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;Singleton&nbsp;instance&nbsp;=&nbsp;new&nbsp;Singleton();<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;//</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里提供了一个供外部访问本</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">class</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的静态方法，可以直接访问　　</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT size=3>　　</FONT></SPAN><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;Singleton&nbsp;getInstance()&nbsp;{<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;instance;&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT size=3>　　</FONT></SPAN><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">第二种形式</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">:&nbsp;<BR>public&nbsp;class&nbsp;Singleton&nbsp;{&nbsp;<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">private&nbsp;static&nbsp;Singleton&nbsp;instance&nbsp;=&nbsp;null;<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">public&nbsp;static&nbsp;synchronized&nbsp;Singleton&nbsp;getInstance()&nbsp;{<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">//</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个方法比上面有所改进，不用每次都进行生成对象，只是第一次　　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">//</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用时生成实例，提高了效率！</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><FONT size=3>　　</FONT></SPAN><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">if&nbsp;(instance==null)<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　　　</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">instance</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">＝</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">new&nbsp;Singleton();<BR>return&nbsp;instance;&nbsp;</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">}&nbsp;<BR>}&nbsp;<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其他形式</SPAN></FONT><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">:<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义一个类，它的构造函数为</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">private</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的，所有方法为</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">static</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的。</SPAN></FONT><SPAN lang=EN-US><BR></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般认为第一种形式要更加安全些</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">&nbsp;</FONT></SPAN></FONT><SPAN lang=EN-US style="COLOR: #333333; FONT-FAMILY: &#718;&#805;; mso-bidi-font-size: 10.5pt"><BR></SPAN><FONT size=3><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">136</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">、继承时候类的执行顺序问题</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">,</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">一般都是选择题</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">,</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">问你将会打印出什么</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=3><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">:</SPAN></STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">父类：</SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=3>package test;<BR>public class&nbsp; FatherClass<BR>{<BR>&nbsp;&nbsp;&nbsp; public FatherClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;System.out.println("FatherClass Create");<BR>&nbsp;}<BR>}<BR></FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT size=3>子类</FONT></SPAN><FONT size=3><SPAN lang=EN-US style="FONT-FAMILY: Verdana">:<BR>package test;<BR>import test.FatherClass;<BR>public class&nbsp; ChildClass extends FatherClass<BR>{<BR>&nbsp;public ChildClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;System.out.println("ChildClass Create");<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;FatherClass fc = new FatherClass();<BR>&nbsp;&nbsp;ChildClass cc = new ChildClass();<BR>&nbsp;}<BR>}<BR></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">输出结果：</SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=3>C:\&gt;java test.ChildClass<BR>FatherClass Create<BR>FatherClass Create<BR>ChildClass Create</FONT></SPAN><SPAN lang=EN-US> 
<P></P></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">137</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、内部类的实现方式</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>示例代码如下：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>package test;<BR>public class&nbsp; OuterClass<BR>{<BR>&nbsp;private class InterClass<BR>&nbsp;{<BR>&nbsp;&nbsp;public InterClass()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("InterClass Create");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public OuterClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;InterClass ic = new InterClass();<BR>&nbsp;&nbsp;System.out.println("OuterClass Create");<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;OuterClass oc = new OuterClass();<BR>&nbsp;}<BR>}<BR></FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>输出结果</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">:<BR>C:\&gt;java test/OuterClass<BR>InterClass Create<BR>OuterClass Create<BR></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>再一个例题：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>public class OuterClass { <BR>&nbsp; private double d1 = 1.0; <BR>&nbsp;&nbsp;&nbsp; //insert code here <BR>} <BR>You need to insert an inner class declaration at line 3. Which two inner class declarations are 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">valid?(Choose two.) <BR>A. class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; public static double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>B. public class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; static double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>C. private class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>D. static class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; protected double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>E. abstract class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; public abstract double methoda();<BR>&nbsp;&nbsp; } <BR></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>说明如下：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>一</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>静态内部类可以有静态成员，而非静态内部类则不能有静态成员。</FONT></SPAN><SPAN style="FONT-FAMILY: Verdana"> </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>故</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> A</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">B </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>错</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>二</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>静态内部类的非静态成员可以访问外部类的静态变量，而不可访问外部类的非静态变量；</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">return d1 </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>出错。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>故</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> D </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>错</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>三</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>非静态内部类的非静态成员可以访问外部类的非静态变量。</FONT></SPAN><SPAN style="FONT-FAMILY: Verdana"> </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>故</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> C </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>正确</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>四</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>答案为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">C</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">E 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">138</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Java </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的通信编程，编程题</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">(</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">或问答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JAVA SOCKET</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">编程，读服务器几个字符，再写入本地显示？</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Server</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>端程序</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>:<BR>package test;<BR>import java.net.*;<BR>import java.io.*; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>public class Server<BR>{<BR>&nbsp;private ServerSocket ss;<BR>&nbsp;private Socket socket;<BR>&nbsp;private BufferedReader in;<BR>&nbsp;private PrintWriter out;<BR>&nbsp;public Server()<BR>&nbsp;{<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;ss=new ServerSocket(10000);<BR>&nbsp;&nbsp;&nbsp;while(true)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;socket = ss.accept();<BR>&nbsp;&nbsp;&nbsp;&nbsp;String RemoteIP = socket.getInetAddress().getHostAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;String RemotePort = ":"+socket.getLocalPort();<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("A client come in!IP:"+RemoteIP+RemotePort);<BR>&nbsp;&nbsp;&nbsp;&nbsp;in = new BufferedReader(new 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">InputStreamReader(socket.getInputStream()));<BR>&nbsp;&nbsp;&nbsp;&nbsp;String line = in.readLine();<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Cleint send is :" + line);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out = new PrintWriter(socket.getOutputStream(),true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("Your Message Received!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;in.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;socket.close();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}catch (IOException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;out.println("wrong");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;new Server();<BR>&nbsp;}<BR>};<BR>Client</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>端程序</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>:<BR>package test;<BR>import java.io.*;<BR>import java.net.*; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>public class Client<BR>{<BR>&nbsp;Socket socket;<BR>&nbsp;BufferedReader in;<BR>&nbsp;PrintWriter out;<BR>&nbsp;public Client()<BR>&nbsp;{<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("Try to Connect to 127.0.0.1:10000");<BR>&nbsp;&nbsp;&nbsp;socket = new Socket("127.0.0.1",10000);<BR>&nbsp;&nbsp;&nbsp;System.out.println("The Server Connected!");<BR>&nbsp;&nbsp;&nbsp;System.out.println("Please enter some Character:");<BR>&nbsp;&nbsp;&nbsp;BufferedReader line = new BufferedReader(new 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>InputStreamReader(System.in));<BR>&nbsp;&nbsp;&nbsp;out = new PrintWriter(socket.getOutputStream(),true);<BR>&nbsp;&nbsp;&nbsp;out.println(line.readLine());<BR>&nbsp;&nbsp;&nbsp;in = new BufferedReader(new InputStreamReader(socket.getInputStream()));<BR>&nbsp;&nbsp;&nbsp;System.out.println(in.readLine());<BR>&nbsp;&nbsp;&nbsp;out.close();<BR>&nbsp;&nbsp;&nbsp;in.close();<BR>&nbsp;&nbsp;&nbsp;socket.close();<BR>&nbsp;&nbsp;}catch(IOException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;out.println("Wrong");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;new Client();<BR>&nbsp;}<BR>}; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">139</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JAVA</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">实现一种排序，</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JAVA</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">类实现序列化的方法</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">(</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">二种</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">？</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">如在</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">COLLECTION</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">框架中，实现比较要实现什么样的接口？</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用插入法进行排序代码如下</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>package test;<BR>import java.util.*;<BR>class&nbsp; InsertSort<BR>{<BR>&nbsp;ArrayList al;<BR>&nbsp;public InsertSort(int num,int mod)<BR>&nbsp;{<BR>&nbsp;&nbsp;al = new ArrayList(num);<BR>&nbsp;&nbsp;Random rand = new Random();<BR>&nbsp;&nbsp;System.out.println("The ArrayList Sort Before:");<BR>&nbsp;&nbsp;for (int i=0;i&lt;num ;i++ )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));<BR>&nbsp;&nbsp;&nbsp;System.out.println("al["+i+"]="+al.get(i));<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public void SortIt()<BR>&nbsp;{<BR>&nbsp;&nbsp;Integer tempInt;<BR>&nbsp;&nbsp;int MaxSize=1;<BR>&nbsp;&nbsp;for(int i=1;i&lt;al.size();i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tempInt = (Integer)al.remove(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(tempInt.intValue()&gt;=((Integer)al.get(MaxSize-1)).intValue())<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;al.add(MaxSize,tempInt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxSize++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(al.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int j=0;j&lt;MaxSize ;j++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">(((Integer)al.get(j)).intValue()&gt;=tempInt.intValue())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;al.add(j,tempInt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxSize++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(al.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;System.out.println("The ArrayList Sort After:");<BR>&nbsp;&nbsp;for(int i=0;i&lt;al.size();i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("al["+i+"]="+al.get(i));<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;InsertSort is = new InsertSort(10,100);<BR>&nbsp;&nbsp;is.SortIt();<BR>&nbsp;}<BR>}<BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">140</SPAN></STRONG></SPAN><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、编程：编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串。</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">但是要保证汉字不被截半个，如</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">“</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">我</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ABC”4</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，应该截为</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">“</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">我</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">AB”</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，输入</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">“</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">我</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ABC</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">汉</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">DEF”</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">6</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，应该输出为</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">“</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">我</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ABC”</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">而不是</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">“</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">我</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ABC+</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">汉的半个</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">”</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">。</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>代码如下：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>package test; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>class&nbsp; SplitString<BR>{<BR>&nbsp;String SplitStr;<BR>&nbsp;int SplitByte;<BR>&nbsp;public SplitString(String str,int bytes)<BR>&nbsp;{<BR>&nbsp;&nbsp;SplitStr=str;<BR>&nbsp;&nbsp;SplitByte=bytes;<BR>&nbsp;&nbsp;System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);<BR>&nbsp;}<BR>&nbsp;public void SplitIt()<BR>&nbsp;{<BR>&nbsp;&nbsp;int loopCount;<BR>&nbsp;&nbsp; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/</SPAN><CITY><PLACE><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Split</SPAN></PLACE></CITY><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>Byte+1);<BR>&nbsp;&nbsp;System.out.println("Will Split into "+loopCount);<BR>&nbsp;&nbsp;for (int i=1;i&lt;=loopCount ;i++ )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if (i==loopCount){<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));<BR>&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;SplitString ss = new SplitString("test</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>中</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">dd</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>文</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">dsaf</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>中男大</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">3443n</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>中国</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">43</SPAN><FONT face=宋体><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中国人</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT></FONT>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>0ewldfls=103",4);<BR>&nbsp;&nbsp;ss.SplitIt();<BR>&nbsp;}<BR>} 
<P></P></FONT></SPAN>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">141</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JAVA</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">多线程编程。</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana"> </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JAVA</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">写一个多线程程序，如写四个线程，二个加</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">1</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">，二个对一个变量减一，输出。</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=3><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">希望大家补上，谢谢</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">142</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、可能会让你写一段</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Jdbc</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">连</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Oracle</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的程序</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">,</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">并实现数据查询</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">.</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>程序如下：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>package hello.ant;<BR>import java.sql.*;<BR>public class&nbsp; jdbc<BR>{<BR>&nbsp;String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";<BR>&nbsp;String theUser="admin";<BR>&nbsp;String thePw="manager";<BR>&nbsp;Connection c=null;<BR>&nbsp;Statement conn;<BR>&nbsp;ResultSet rs=null;<BR>&nbsp;public jdbc() <BR>&nbsp;{<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = DriverManager.getConnection(dbUrl,theUser,thePw);<BR>&nbsp;&nbsp;&nbsp; conn=c.createStatement();<BR>&nbsp;&nbsp;}catch(Exception e){<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public boolean executeUpdate(String sql)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.executeUpdate(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (SQLException e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public ResultSet executeQuery(String sql)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;rs=null;<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs=conn.executeQuery(sql);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (SQLException e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;return rs;<BR>&nbsp;}<BR>&nbsp;public void close()<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.close();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (Exception e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;ResultSet rs;<BR>&nbsp;&nbsp;jdbc conn = new jdbc();<BR>&nbsp;&nbsp;rs=conn.executeQuery("select * from test");<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;while (rs.next())<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println(rs.getString("id"));<BR>&nbsp;&nbsp;&nbsp;System.out.println(rs.getString("name"));<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}catch(Exception e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>} 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">143</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ORACLE</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">大数据量下的分页解决方法。一般用截取</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">ID</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">方法，还有是三层嵌套方法。</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>一种分页方法</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&lt;%<BR>&nbsp; int i=1;<BR>&nbsp; int numPages=14;<BR>&nbsp; String pages = request.getParameter("page") ;<BR>&nbsp; int currentPage = 1;<BR>&nbsp; currentPage=(pages==null)?(1):{Integer.parseInt(pages)}<BR>&nbsp; sql = "select count(*) from tables";<BR>&nbsp; ResultSet rs = DBLink.executeQuery(sql) ;<BR>&nbsp; while(rs.next()) i = rs.getInt(1) ;<BR>&nbsp; int intPageCount=1;<BR>&nbsp; intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);<BR>&nbsp; int nextPage ;<BR>&nbsp; int upPage;<BR>&nbsp; nextPage = currentPage+1;<BR>&nbsp; if (nextPage&gt;=intPageCount) nextPage=intPageCount;<BR>&nbsp; upPage = currentPage-1;<BR>&nbsp; if (upPage&lt;=1) upPage=1;<BR>&nbsp; rs.close();<BR>&nbsp; sql="select * from tables";<BR>&nbsp; rs=DBLink.executeQuery(sql);<BR>&nbsp; i=0;<BR>&nbsp; while((i&lt;numPages*(currentPage-1))&amp;&amp;rs.next()){i++;}<BR>%&gt;<BR>//</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>输出内容</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>//</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>输出翻页连接</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>合计</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">:&lt;%=currentPage%&gt;/&lt;%=intPageCount%&gt;&lt;a href="List.jsp?page=1"&gt;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>第一页</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&lt;/a&gt;&lt;a 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">href="List.jsp?page=&lt;%=upPage%&gt;"&gt;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>上一页</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&lt;/a&gt;<BR>&lt;%<BR>&nbsp; for(int j=1;j&lt;=intPageCount;j++){<BR>&nbsp; if(currentPage!=j){<BR>%&gt;<BR>&nbsp; &lt;a href="list.jsp?page=&lt;%=j%&gt;"&gt;[&lt;%=j%&gt;]&lt;/a&gt; <BR>&lt;%<BR>&nbsp; }else{ <BR>&nbsp; out.println(j);<BR>&nbsp; }<BR>&nbsp; }<BR>%&gt;<BR>&lt;a href="List.jsp?page=&lt;%=nextPage%&gt;"&gt;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>下一页</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&lt;/a&gt;&lt;a href="List.jsp?page=&lt;%=intPageCount%&gt;"&gt;</SPAN><FONT face=宋体><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">最后页</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT></FONT>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=3>&lt;/a&gt; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">144</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">jdom</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">解析</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">xml</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">文件时如何解决中文问题</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">如何解析</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>看如下代码</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">,</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用编码方式加以解决</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>package test;<BR>import java.io.*;<BR>public class DOMTest<BR>{<BR>&nbsp;private String inFile = "c:\\people.xml";<BR>&nbsp;private String outFile = "c:\\people.xml";&nbsp;<BR>&nbsp;public static void main(String args[])<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp; &nbsp;new DOMTest();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;public DOMTest()<BR>&nbsp;{<BR>&nbsp;&nbsp;try <BR>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;javax.xml.parsers.DocumentBuilder builder = <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Document doc = builder.newDocument();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Element root = doc.createElement("</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>老师</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">");<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Element wang = doc.createElement("</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>王</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">");<BR>&nbsp;&nbsp;&nbsp;org.w3c.dom.Element liu = doc.createElement("</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>刘</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">");<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;wang.appendChild(doc.createTextNode("</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>我是王老师</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>"));<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;root.appendChild(wang);<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;doc.appendChild(root);<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;javax.xml.transform.Transformer transformer = <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;javax.xml.transform.TransformerFactory.newInstance().newTransformer();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");&nbsp;&nbsp; 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.transform(new javax.xml.transform.dom.DOMSource(doc),<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>javax.xml.transform.stream.StreamResult(outFile));<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e) <BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println (e.getMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>} 
<P></P></FONT></SPAN>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">145</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">、编程用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JAVA</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">解析</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">XML</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的方式</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=3><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">:</SPAN></STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">用</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">SAX</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">方式解析</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">，</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Ver]]></description>
</item><item>
<title><![CDATA[有感:应聘Java笔试时可能出现问题及其答案(第二版part three)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9093</link>
<author>pcthomas</author>
<pubDate>2005/10/11 11:27:52</pubDate>
<description><![CDATA[<FONT face=Verdana size=6>EJB</FONT><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>方面</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P></P>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">94</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">EJB2.0</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有哪些内容</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">分别用在什么场合</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? EJB2.0</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">EJB1.1</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>规范内容包括</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>提供者，应用程序装配者，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>容器，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>配置工具，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>服务提供者，系统管理员。这里面，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>容器是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>之所以能够运行的核心。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>容器管理着</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的创建，撤消，激活，去活，与数据库的连接等等重要的核心工作。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JSP,Servlet,EJB,JNDI,JDBC,JMS.....<BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">95</SPAN></STRONG></SPAN><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">EJB</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">与</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JAVA BEAN</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别？</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>是可复用的组件，对</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>并没有严格的规范，理论上讲，任何一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>类都可以是一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>。但通常情况下，由于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>是被容器所创建（如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Tomcat)</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的，所以</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>应具有一个无参的构造器，另外，通常</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>还要实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Serializable</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>接口用于实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的持久性。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java Bean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>实际上相当于微软</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">COM</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>模型中的本地进程内</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">COM</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>组件，它是不能被跨进程访问的。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Enterprise Java Bean </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>相当于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">DCOM</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>，即分布式组件。它是基于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的远程方法调用（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">RMI</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>）技术的，所以</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>可以被远程访问（跨进程、跨计算机）。但</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>必须被布署在诸如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Webspere</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">WebLogic</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>这样的容器中，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>客户从不直接访问真正的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>组件，而是通过其容器访问。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>容器是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>组件的代理，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>组件由容器所创建和管理。客户通过容器来访问真正的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>组件。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>96</FONT></SPAN></STRONG></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">EJB</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是基于哪些技术实现的？并说出</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">SessionBean</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">EntityBean</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别，</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">StatefulBean</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">StatelessBean</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别。</SPAN></STRONG></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>&nbsp;</FONT></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>包括</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Session&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Message&nbsp;Driven&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，基于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JNDI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">RMI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JAT</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>等技术实现。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>SessionBean</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">J2EE</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>应用程序中被用来完成一些服务器端的业务操作，例如访问数据库、调用其他</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EntityBean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>被用来代表应用系统中用到的数据。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对于客户机，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">SessionBean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是一种非持久性对象，它实现某些在服务器上运行的业务逻辑。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对于客户机，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EntityBean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是一种持久性对象，它代表一个存储在持久性存储器中的实体的对象视图，或是一个由现有企业应用程序实现的实体。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>Session&nbsp;Bean&nbsp;</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>还可以再细分为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>与</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，这两种的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Session&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>都可以将系统逻辑放在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;method</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>之中执行，不同的是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可以记录呼叫者的状态，因此通常来说，一个使用者会有一个相对应的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的实体。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>虽然也是逻辑组件，但是他却不负责记录使用者状态，也就是说当使用者呼叫</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的时候，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;Container&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>并不会找寻特定的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的实体来执行这个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;method</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>。换言之，很可能数个使用者在执行某个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;methods&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>时，会是同一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Instance&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>在执行。从内存方面来看，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>与</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>比较，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>会消耗</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;J2EE&nbsp;Server&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>较多的内存，然而</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN></FONT><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>的优势却在于他可以维持使用者的状态。</FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">97</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>与</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">JAVA&nbsp;BEAN</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的区别？</FONT></SPAN></B></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是可复用的组件，对</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>并没有严格的规范，理论上讲，任何一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>类都可以是一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>。但通常情况下，由于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是被容器所创建（如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Tomcat</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）的，所以</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>应具有一个无参的构造器，另外，通常</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>还要实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Serializable</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口用于实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的持久性。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实际上相当于微软</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">COM</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>模型中的本地进程内</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">COM</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件，它是不能被跨进程访问的。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Enterprise&nbsp;Java&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>相当于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">DCOM</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，即分布式组件。它是基于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的远程方法调用（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">RMI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）技术的，所以</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可以被远程访问（跨进程、跨计算机）。但</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>必须被布署在诸如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Webspere</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">WebLogic</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>这样的容器中，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>客户从不直接访问真正的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件，而是通过其容器访问。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件的代理，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件由容器所创建和管理。客户通过容器来访问真正的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></FONT><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>组件。</FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>包括（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">SessionBean,EntityBean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）说出他们的生命周期，及如何管理事务的？</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>SessionBean</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>：</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateless&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的生命周期是由容器决定的，当客户机发出请求要建立一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的实例时，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器不一定要创建一个新的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的实例供客户机调用，而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>时，容器必须立即在服务器中创建一个新的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例，并关联到客户机上，以后此客户机调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的方法时容器会把调用分派到与此客户机相关联的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>EntityBean</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>：</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;Beans</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>能存活相对较长的时间，并且状态是持续的。只要数据库中的数据存在，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;beans</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>就一直存活。而不是按照应用程序或者服务进程来说的。即使</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器崩溃了，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;beans</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>也是存活的。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;Beans</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>生命周期能够被容器或者</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Beans</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>自己管理。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>EJB</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>通过以下技术管理实务：对象管理组织（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">OMG</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）的对象实务服务（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">OTS</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>），</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Sun&nbsp;Microsystems</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Transaction&nbsp;Service</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JTS</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java&nbsp;Transaction&nbsp;API</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JTA</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>），开发组（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">X/Open</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">XA</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>98</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的角色和三个对象</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>一个完整的基于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的分布式计算结构由六个角色组成，这六个角色可以由不同的开发商提供，每个角色所作的工作必须遵循</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Sun</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>公司提供的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>规范，以保证彼此之间的兼容性。这六个角色分别是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件开发者（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Enterprise&nbsp;Bean&nbsp;Provider</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、应用组合者（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Application&nbsp;Assembler</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、部署者（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Deployer</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>服务器提供者（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;Server&nbsp;Provider</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器提供者（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;Container&nbsp;Provider</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、系统管理员（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">System&nbsp;Administrator</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>三个对象是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Remote</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Local</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）接口、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Home</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">LocalHome</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）接口，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>类</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>99</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器提供的服务</FONT></SPAN></B></FONT><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>100</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>规范规定</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>中禁止的操作有哪些？</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR></SPAN></B><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;</SPAN><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">1.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能操作线程和线程</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">API(</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>线程</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">API</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>指非线程对象的方法如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">notify,wait</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>等</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">)</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">2.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能操作</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">awt</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">3.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能实现服务器功能，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">4.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能对静态属生存取，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">5.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能使用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">IO</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>操作直接存取文件系统，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">6.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能加载本地库</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">7.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能将</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">this</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>作为变量和返回，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">8.</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>不能循环调用。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>101</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">remote</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口和</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">home</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口主要作用</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>答：</FONT></SPAN></B><SPAN lang=EN-US style="FONT-FAMILY: Arial">remote</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口定义了业务方法，用于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>客户端调用业务方法。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>home</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>工厂用于创建和移除查找</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>102</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">bean&nbsp;</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>实例的生命周期</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><FONT face=宋体><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">答：</SPAN></B><SPAN style="mso-bidi-font-family: Arial">对于</SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateless&nbsp;Session&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Message&nbsp;Driven&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>一般存在缓冲池管理，而对于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Statefull&nbsp;Session&nbsp;Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>存在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Cache</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>管理，通常包含创建实例，设置上下文、创建</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;Object</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">create</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）、业务方法调用、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">remove</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>等过程，对于存在缓冲池管理的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">create</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>之后实例并不从内存清除，而是采用缓冲池调度机制不断重用实例，而对于存在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Cache</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>管理的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>则通过激活和去激活机制保持</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的状态并限制内存中实例数量。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>103</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>的激活机制</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>以</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateful&nbsp;Session&nbsp;Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>为例：其</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Cache</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>大小决定了内存中可以同时存在的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例的数量，根据</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">MRU</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>或</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">NRU</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>算法，实例在激活和去激活状态之间迁移，激活机制是当客户端调用某个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例业务方法时，如果对应</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB&nbsp;Object</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>发现自己没有绑定对应的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例则从其去激活</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>存储中（通过序列化机制存储实例）回复（激活）此实例。状态变迁前会调用对应的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">ejbActive</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">ejbPassivate</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>104</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>的几种类型</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>会话（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Session</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，实体（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Entity</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>消息驱动的（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Message&nbsp;Driven</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean<BR></SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>会话</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>又可分为有状态（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateful</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）和无状态（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Stateless</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）两种</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实体</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可分为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Bean</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>管理的持续性（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">BMP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）和容器管理的持续性（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">CMP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）两种</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>105</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>、客服端调用</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">EJB</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>对象的几个基本步骤</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>设置</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JNDI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>服务工厂以及</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JNDI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>服务地址系统属性，查找</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Home</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口，从</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Home</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Create</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法创建</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Remote</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口，通过</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Remote</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口调用其业务方法。<SPAN lang=EN-US> 
<P></P></SPAN></FONT></SPAN></FONT>
<P></P>
<P></P>
<P></P>
<P style="BACKGROUND: white"><FONT face=宋体><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">应用服务器方面</SPAN><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P></P>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">106</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、如何给</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">weblogic</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>指定大小的内存</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?&nbsp;<BR></SPAN></B><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>在启动</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Weblogic</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的脚本中（位于所在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Domian</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对应服务器目录下的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">startServerName</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>），增加</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">set&nbsp;MEM_ARGS=-Xms32m&nbsp;-Xmx200m</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，可以调整最小内存为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">32M</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，最大</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">200M<BR>EJB</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>需直接实现它的业务接口或</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Home</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>接口吗，请简述理由。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>远程接口和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Home</SPAN></FONT><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>接口不需要直接实现，他们的实现代码是由服务器产生的，程序运行中对应实现类会作为对应接口类型的实例被使用。</FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">107</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、应用服务器有那些？</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">BEA&nbsp;WebLogic&nbsp;Server</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">IBM&nbsp;WebSphere&nbsp;Application&nbsp;Server</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Oracle9i&nbsp;Application&nbsp;Server</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">jBoss</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">Tomcat<BR><B style="mso-bidi-font-weight: normal">108</B></SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、如何设定的</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">weblogic</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的热启动模式</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">(</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>开发模式</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">)</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>与产品发布模式</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?<BR></SPAN></B><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">commenv</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>文件，增加</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">set&nbsp;PRODUCTION_MODE=true</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>109</FONT></B></SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>、如何启动时不需输入用户名与密码</FONT></SPAN></B><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?<BR></SPAN></B><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>修改服务启动文件，增加</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;WLS_USER</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">WLS_PW</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>项。也可以在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">boot.properties</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>文件中增加加密过的用户名和密码</FONT></SPAN></FONT><FONT size=2></FONT></P>]]></description>
</item><item>
<title><![CDATA[有感:应聘Java笔试时可能出现问题及其答案(第二版part two)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9077</link>
<author>pcthomas</author>
<pubDate>2005/10/10 9:50:39</pubDate>
<description><![CDATA[From:<A href="http://blog.csdn.net/huijunzi/archive/2005/10/05/495429.aspx">http://blog.csdn.net/huijunzi/archive/2005/10/05/495429.aspx</A>
<P style="BACKGROUND: white"><FONT face=宋体><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">线程编程方面</SPAN><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><B><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 宋体">60</SPAN></B><B><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 宋体">java</SPAN></B><B><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><FONT face=宋体>中有几种方法可以实现一个线程？用什么关键字修饰同步方法</FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 宋体">?&nbsp;stop()</SPAN></B><B><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN></B><B><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 宋体">suspend()</SPAN></B><FONT face=宋体><B><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">方</SPAN></B><B style="mso-bidi-font-weight: normal">法为何不推荐使用？</B></FONT></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 宋体"><BR></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial"><FONT face=宋体 size=2>答：</FONT></SPAN></B><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>有两种实现方法，分别是继承</FONT><SPAN lang=EN-US><FONT face=宋体 size=2>Thread类与实现Runnable接口<BR>用synchronized关键字修饰同步方法<BR>反对使用stop()，是因为它不安全。它会解除由线程获取的所有锁定，而且如果对象处于一种不连贯状态，那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候，目标线程会停下来，但却仍然持有在这之前获得的锁定。此时，其他任何线程都不能访问锁定的资源，除非被"挂起"的线程恢复运行。对任何线程来说，如果它们想恢复目标线程，同时又试图使用任何一个锁定的资源，就会造成死锁。所以不应该使用suspend()，而应在自己的Thread类中置入一个标志，指出线程应该活动还是挂起。若标志指出线程应该挂起，便用wait()命其进入等待状态。若标志指出线程应当恢复，则用一个notify()重新启动线程。</FONT></SPAN></SPAN><SPAN lang=EN-US><BR></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">61</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">sleep()&nbsp;</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;wait()&nbsp;</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>有什么区别</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?&nbsp;<BR></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>答：</FONT></SPAN></B></FONT><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>sleep是线程类（Thread）的方法，导致此线程暂停执行指定时间，给执行机会给其他线程，但是监控状态依然保持，到时后会自动恢复。调用sleep不会释放对象锁。<BR>wait是Object类的方法，对此对象调用wait方法导致本线程放弃对象锁，进入等待此对象的等待锁定池，只有针对此对象发出notify方法（或notifyAll）后本线程才进入对象锁定池准备获得对象锁进入运行状态。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>62</FONT></B></SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>、同步和异步有何异同，在什么情况下分别使用他们？举例说明。</FONT><SPAN lang=EN-US><BR><FONT face=宋体 size=2>答：</FONT></SPAN></SPAN></B><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到，或者正在读的数据可能已经被另一个线程写过了，那么这些数据就是共享数据，必须进行同步存取。</FONT><SPAN lang=EN-US><BR><FONT face=宋体 size=2>当应用程序在对象上调用了一个需要花费很长时间来执行的方法，并且不希望让程序等待方法的返回时，就应该使用异步编程，在很多情况下采用异步途径往往更有效率。<BR></FONT></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">63</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、启动一个线程是用</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">run()</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>还是</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">start()?<BR></SPAN></B><FONT face=宋体><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">答：</SPAN></B><SPAN style="mso-bidi-font-family: Arial">启动一个线程是调用<SPAN lang=EN-US>start()方法，使线程所代表的虚拟处理机处于可运行状态，这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。&nbsp;</SPAN></SPAN></FONT></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>64</FONT></B></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、当一个线程进入一个对象的一个</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">synchronized</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法后，其它线程是否可进入此对象的其它方法</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?<BR></SPAN></B><FONT face=宋体><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">答：</SPAN></B><SPAN style="mso-bidi-font-family: Arial">不能，一个对象的一个<SPAN lang=EN-US>synchronized方法只能由一个线程访问。</SPAN></SPAN></FONT></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><B style="mso-bidi-font-weight: normal"><FONT size=2>65</FONT></B></SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>、请说出你所知道的线程同步的方法。</FONT><SPAN lang=EN-US><BR><FONT face=宋体 size=2>答：</FONT></SPAN></SPAN></B><FONT size=2><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体>wait():使一个线程处于等待状态，并且释放所持有的对象的lock。<BR>sleep():使一个正在运行的线程处于睡眠状态，是一个静态方法，调用此方法要捕捉InterruptedException异常。<BR>notify():唤醒一个处于等待状态的线程，注意的是在调用此方法的时候，并不能确切的唤醒某一个等待状态的线程，而是由JVM确定唤醒哪个线程，而且不是按优先级。<BR>Allnotity():唤醒所有处入等待状态的线程，注意并不是给所有唤醒线程一个对象的锁，而是让它们竞争。<BR></FONT></SPAN><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">66</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、多线程有几种实现方法</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">,</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>都是什么</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>同步有几种实现方法</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">,</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>都是什么</FONT></SPAN></B></FONT><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">?&nbsp;<BR></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>答：</FONT></SPAN></B></FONT><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>多线程有两种实现方法，分别是继承</FONT><SPAN lang=EN-US><FONT face=宋体 size=2>Thread类与实现Runnable接口&nbsp;<BR>同步的实现方面有两种，分别是synchronized,wait与notify<BR></FONT></SPAN></SPAN><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">67</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、线程的基本概念、线程的基本状态以及状态之间的关系</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><FONT face=宋体><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">答：</SPAN></B><SPAN style="mso-bidi-font-family: Arial">线程指在程序执行过程中，能够执行程序代码的一个执行单位，每个程序至少都有一个线程，也就是程序本身。</SPAN></FONT></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体>Java中的线程有四种状态分别是：运行、就绪、挂起、结束<BR></FONT></SPAN><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">68</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>、简述</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">synchronized</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">java.util.concurrent.locks.Lock</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的异同</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>？</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体 size=2>答：</FONT></SPAN></B><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>主要相同点：</FONT><SPAN lang=EN-US><FONT face=宋体 size=2>Lock能完成synchronized所实现的所有功能<BR>主要不同点：Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁，而Lock一定要求程序员手工释放，并且必须在finally从句中释放。</FONT></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; FONT-FAMILY: &#718;&#805;"> 
<P></P></SPAN>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana">Jsp</SPAN><FONT face=宋体><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">方面</SPAN><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">69</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>、</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">forward&nbsp;</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial">redirect</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>的区别</FONT></SPAN></B></FONT><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体 size=2>答：</FONT></SPAN></B><FONT size=2><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体>forward是服务器请求资源，服务器直接访问目标地址的URL，把那个URL的响应内容读取过来，然后把这些内容再发给浏览器，浏览器根本不知道服务器发送的内容是从哪儿来的，所以它的地址栏中还是原来的地址。<BR>&nbsp;&nbsp;&nbsp;&nbsp;redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址，一般来说浏览器会用刚才请求的所有参数重新请求，所以session,request参数都可以获取。<BR></FONT></SPAN><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">70</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">jsp</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有哪些内置对象</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">作用分别是什么</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial"><FONT face=宋体>答：</FONT></SPAN></B><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>共有以下</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">9</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>种基本内置组件（可与</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">ASP</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">6</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>种内部组件相对应）：</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>　</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">request </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用户端请求，此请求会包含来自</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">GET/POST</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>请求的参数</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; response </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>网页传回用户端的回应</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; pageContext </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>网页的属性是在这里管理</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; session </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>与请求有关的会话期</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; application servlet </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>正在执行的内容</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; out </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用来传送回应的输出</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp; config servlet</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>的构架部件</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; page JSP</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>网页本身</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; exception </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>针对错误网页，未捕捉的例外</FONT></SPAN></FONT><SPAN style="FONT-FAMILY: Verdana"><FONT size=2> </FONT><SPAN lang=EN-US><BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>71</FONT></SPAN></STRONG></SPAN></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">jsp</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有哪些动作</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">作用分别是什么</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>共有以下</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">6</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>种基本动作</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp; jsp:include</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>：在页面被请求的时候引入一个文件。</FONT></SPAN><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; jsp:useBean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>：寻找或者实例化一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JavaBean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; jsp:setProperty</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>：设置</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JavaBean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的属性。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; jsp:getProperty</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>：输出某个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">JavaBean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>的属性。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; jsp:forward</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>：把请求转到一个新的页面。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> <BR>&nbsp;&nbsp; jsp:plugin</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>：根据浏览器类型为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>插件生成</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">OBJECT</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>或</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">EMBED</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>标记</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>72</FONT></SPAN></STRONG></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JSP</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">中动态</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">INCLUDE</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">与静态</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">INCLUDE</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别？</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> </SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>动态</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">INCLUDE</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">jsp:include</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>动作实现</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp; &lt;jsp:include page="included.jsp" flush="true" /&gt;</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>它总是会检查所含文件中的变化，适合用于包含动态页面，并且可以带参数</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp; </FONT></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>静态</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">INCLUDE</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">include</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>伪码实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">,</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>定不会检查所含文件的变化，适用于包含静态页面</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp; &lt;%@ include file="included.htm" %&gt;<BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">73</SPAN></STRONG></FONT></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、两种跳转方式分别是什么</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有什么区别</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>有两种，分别为：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp; &lt;jsp:include page="included.jsp" flush="true"&gt;<BR>&nbsp; &lt;jsp:forward page= "nextpage.jsp"/&gt;<BR></FONT></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>前者页面不会转向</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">include</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>所指的页面，只是显示该页的结果，主页面还是原来的页面。执行完后还会回来，相当于函数调用。并且可以带参数</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">.</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>后者完全转向新页面，不会再回来。相当于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">go to </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>语句。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>74</FONT></SPAN></STRONG></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JSP</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的内置对象及方法。</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">request</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">HttpServletRequest</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象。它包含了有关浏览器请求的信息，并且提供了几个用于获取</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">cookie,&nbsp;header,&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">session</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>数据的有用的方法。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;response</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">HttpServletResponse</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象，并提供了几个用于设置送回</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>浏览器的响应的方法（如</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">cookies,</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>头信息等）</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;out</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">javax.jsp.JspWriter</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的一个实例，并提供了几个方法使你能用于向浏览器回送输出结果。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pageContext</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">javax.servlet.jsp.PageContext</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象。它是用于方便存取各种范围的名字空间、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>相关的对象的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">API</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，并且包装了通用的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>相关功能的方法。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;session</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示一个请求的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">javax.servlet.http.HttpSession</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Session</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可以存贮用户的状态信息</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;applicaton&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">javax.servle.ServletContext</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象。这有助于查找有关</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>引擎和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>环境的信息</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;config</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">javax.servlet.ServletConfig</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对象。该对象用于存取</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>实例的初始化参数。</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;page</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>表示从该页面产生的一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><FONT face=宋体><SPAN style="mso-bidi-font-family: Arial">实例</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT></FONT>
<P></P>
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana">Servlet</SPAN><FONT face=宋体><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">方面</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></FONT>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">75</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、说一说</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Servlet</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的生命周期</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">?</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>有良好的生存期的定义，包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">javax.servlet.Servlet</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>接口的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">init,service</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">destroy</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>方法表达。</FONT></SPAN><SPAN style="FONT-FAMILY: Verdana"> </SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>被服务器实例化后，容器运行其</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">init</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法，请求到达时运行其</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">service</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">service</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法自动派遣运行与请求对应的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">doXXX</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">doGet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">doPost</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）等，当服务器决定将实例销毁的时候调用其</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">destroy</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>与</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">cgi</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的区别在于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>处于服务器进程中，它通过多线程方式运行其</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">service</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">CGI</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN></FONT><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>。</FONT><SPAN lang=EN-US><BR></SPAN></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">76</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JAVA SERVLET API</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">中</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">forward() </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">与</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">redirect()</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别？</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>前者仅是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；后者则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。所以，前者更加高效，在前者可以满足需要时，尽量使用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">forward()</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>方法，并且，这样也有助于隐藏实际的链接。在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">sendRedirect()</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>方法。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>77</FONT></SPAN></STRONG></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Servlet</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的基本架构</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>答：</FONT></SPAN></STRONG><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>public class ServletName extends HttpServlet {<BR>&nbsp; public void doPost(HttpServletRequest request, HttpServletResponse response) throws<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletException, IOException&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp; public void doGet(HttpServletRequest request, HttpServletResponse response) throws<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletException, IOException&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>} 
<P></P></FONT></SPAN>
<P></P>
<P style="BACKGROUND: white"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">78</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、什么情况下调用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">doGet()</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">doPost()</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">？</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">Jsp</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>页面中的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">form</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>标签里的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">method</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>属性为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">get</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>时调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">doGet()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">post</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>时调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">doPost()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">79</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">servlet</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的生命周期</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">web</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器加载</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，生命周期开始。通过调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">init()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法进行</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的初始化。通过调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">service()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法实现，根据请求的不同调用不同的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">do***()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法。结束服务，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">web</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>容器调用</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">destroy()</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">80</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、如何现实</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">servlet</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的单线程模式</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>答：</FONT></SPAN></STRONG><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">&lt;%@&nbsp;page&nbsp;isThreadSafe="false"%&gt;<BR></SPAN><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">81</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、页面间对象传递的方法</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">request</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">session</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">application</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">cookie</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>等</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">82</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">JSP</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Servlet</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有哪些相同点和不同点，他们之间的联系是什么？</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">&nbsp;<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">JSP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>技术的扩展，本质上是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的简易方式，更强调应用的外表表达。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JSP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>编译后是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">"</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>类</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">servlet"</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JSP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>最主要的不同点在于，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的应用逻辑是在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>文件中，并且完全从表示层中的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">HTML</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>里分离开来。而</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JSP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的情况是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">HTML</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>可以组合成一个扩展名为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">.jsp</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的文件。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">JSP</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>侧重于视图，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Servlet</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>主要用于控制逻辑。</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">83</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、四种会话跟踪技术</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>会话作用域</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">ServletsJSP&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>页面描述</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>page</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>否是代表与一个页面相关的对象和属性。一个页面由一个编译好的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Java&nbsp;servlet&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>类（可以带有任何的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;include&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>指令，但是没有</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;include&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>动作）表示。这既包括</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;servlet&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>又包括被编译成</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;servlet&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;JSP&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>页面</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>request</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是是代表与</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面，涉及多个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>组件（由于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;forward&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>指令和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;include&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>动作的关系）</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>session</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是是代表与用于某个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>客户机的一个用户体验相关的对象和属性。一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>会话可以也经常会跨越多个客户机请求</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR><FONT size=2>application</FONT></SPAN><FONT size=2><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是是代表与整个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>应用程序相关的对象和属性。这实质上是跨越整个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&nbsp;Web&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>应用程序，包括多个页面、请求和会话的一个全局作用域</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">84</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Request</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-as]]></description>
</item><item>
<title><![CDATA[有感:应聘Java笔试时可能出现问题及其答案]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9061</link>
<author>pcthomas</author>
<pubDate>2005/10/9 13:45:32</pubDate>
<description><![CDATA[（转自：http://blog.csdn.net/huijunzi/archive/2004/02/26/5093.aspx）<A>　 
<P><FONT size=6>Java基础方面:</FONT></P>
<P><STRONG>1、作用域public,private,protected,以及不写时的区别<BR></STRONG><STRONG>答：</STRONG>区别如下：<BR>作用域&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同一package&nbsp; 子孙类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其他package<BR>public&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √<BR>protected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR>friendly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR>private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR>不写时默认为friendly</P>
<P><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</P>
<P><STRONG>3、char型变量中能不能存贮一个中文汉字?为什么?<BR>答：</STRONG>是能够定义成为一个中文的，因为java中以unicode编码，一个char占16个字节，所以放一个中文是没问题的</P>
<P><STRONG>4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?<BR>答：</STRONG>多线程有两种实现方法，分别是继承Thread类与实现Runnable接口<BR>同步的实现方面有两种，分别是synchronized,wait与notify</P>
<P><STRONG>5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?<BR>答:</STRONG>父类：<BR>package test;<BR>public class&nbsp; FatherClass<BR>{<BR>&nbsp;&nbsp;&nbsp; public FatherClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;System.out.println("FatherClass Create");<BR>&nbsp;}<BR>}<BR>子类:<BR>package test;<BR>import test.FatherClass;<BR>public class&nbsp; ChildClass extends FatherClass<BR>{<BR>&nbsp;public ChildClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;System.out.println("ChildClass Create");<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;FatherClass fc = new FatherClass();<BR>&nbsp;&nbsp;ChildClass cc = new ChildClass();<BR>&nbsp;}<BR>}<BR>输出结果：<BR>C:\&gt;java test.ChildClass<BR>FatherClass Create<BR>FatherClass Create<BR>ChildClass Create</P>
<P><STRONG>6、内部类的实现方式?<BR>答：</STRONG>示例代码如下：<BR>package test;<BR>public class&nbsp; OuterClass<BR>{<BR>&nbsp;private class InterClass<BR>&nbsp;{<BR>&nbsp;&nbsp;public InterClass()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("InterClass Create");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public OuterClass()<BR>&nbsp;{<BR>&nbsp;&nbsp;InterClass ic = new InterClass();<BR>&nbsp;&nbsp;System.out.println("OuterClass Create");<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;OuterClass oc = new OuterClass();<BR>&nbsp;}<BR>}<BR>输出结果:<BR>C:\&gt;java test/OuterClass<BR>InterClass Create<BR>OuterClass Create<BR>再一个例题：<BR>public class OuterClass { <BR>&nbsp; private double d1 = 1.0; <BR>&nbsp;&nbsp;&nbsp; //insert code here <BR>} <BR>You need to insert an inner class declaration at line 3. Which two inner class declarations are </P>
<P>valid?(Choose two.) <BR>A. class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; public static double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>B. public class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; static double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>C. private class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>D. static class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; protected double methoda() {return d1;}<BR>&nbsp;&nbsp; } <BR>E. abstract class InnerOne{<BR>&nbsp;&nbsp;&nbsp;&nbsp; public abstract double methoda();<BR>&nbsp;&nbsp; } <BR>说明如下：<BR>一.静态内部类可以有静态成员，而非静态内部类则不能有静态成员。 故 A、B 错<BR>二.静态内部类的非静态成员可以访问外部类的静态变量，而不可访问外部类的非静态变量；return d1 出错。 </P>
<P>故 D 错<BR>三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确<BR>四.答案为C、E</P>
<P><STRONG>7、垃圾回收机制,如何优化程序?<BR></STRONG>希望大家补上，谢谢</P>
<P><STRONG>8、float型float f=3.4是否正确?<BR>答:</STRONG>不正确。精度不准确,应该用强制类型转换，如下所示：float f=(float)3.4</P>
<P><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的映射</P>
<P><STRONG>10、Java中异常处理机制，事件机制？</STRONG></P>
<P><STRONG>11、JAVA中的多形与继承？<BR></STRONG>希望大家补上，谢谢</P>
<P><STRONG>12、抽象类与接口？<BR>答：</STRONG>抽象类与接口都用于抽象，但是抽象类(JAVA中)可以有自己的部分实现，而接口则完全是一个标识(同时有多重继承的功能)。 </P>
<P><STRONG>13、Java 的通信编程，编程题(或问答)，用JAVA SOCKET编程，读服务器几个字符，再写入本地显示？ <BR>答:</STRONG>Server端程序:<BR>package test;<BR>import java.net.*;<BR>import java.io.*;</P>
<P>public class Server<BR>{<BR>&nbsp;private ServerSocket ss;<BR>&nbsp;private Socket socket;<BR>&nbsp;private BufferedReader in;<BR>&nbsp;private PrintWriter out;<BR>&nbsp;public Server()<BR>&nbsp;{<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;ss=new ServerSocket(10000);<BR>&nbsp;&nbsp;&nbsp;while(true)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;socket = ss.accept();<BR>&nbsp;&nbsp;&nbsp;&nbsp;String RemoteIP = socket.getInetAddress().getHostAddress();<BR>&nbsp;&nbsp;&nbsp;&nbsp;String RemotePort = ":"+socket.getLocalPort();<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("A client come in!IP:"+RemoteIP+RemotePort);<BR>&nbsp;&nbsp;&nbsp;&nbsp;in = new BufferedReader(new </P>
<P>InputStreamReader(socket.getInputStream()));<BR>&nbsp;&nbsp;&nbsp;&nbsp;String line = in.readLine();<BR>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Cleint send is :" + line);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out = new PrintWriter(socket.getOutputStream(),true);<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.println("Your Message Received!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;out.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;in.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;socket.close();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}catch (IOException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;out.println("wrong");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;new Server();<BR>&nbsp;}<BR>};<BR>Client端程序:<BR>package test;<BR>import java.io.*;<BR>import java.net.*;</P>
<P>public class Client<BR>{<BR>&nbsp;Socket socket;<BR>&nbsp;BufferedReader in;<BR>&nbsp;PrintWriter out;<BR>&nbsp;public Client()<BR>&nbsp;{<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("Try to Connect to 127.0.0.1:10000");<BR>&nbsp;&nbsp;&nbsp;socket = new Socket("127.0.0.1",10000);<BR>&nbsp;&nbsp;&nbsp;System.out.println("The Server Connected!");<BR>&nbsp;&nbsp;&nbsp;System.out.println("Please enter some Character:");<BR>&nbsp;&nbsp;&nbsp;BufferedReader line = new BufferedReader(new </P>
<P>InputStreamReader(System.in));<BR>&nbsp;&nbsp;&nbsp;out = new PrintWriter(socket.getOutputStream(),true);<BR>&nbsp;&nbsp;&nbsp;out.println(line.readLine());<BR>&nbsp;&nbsp;&nbsp;in = new BufferedReader(new InputStreamReader(socket.getInputStream()));<BR>&nbsp;&nbsp;&nbsp;System.out.println(in.readLine());<BR>&nbsp;&nbsp;&nbsp;out.close();<BR>&nbsp;&nbsp;&nbsp;in.close();<BR>&nbsp;&nbsp;&nbsp;socket.close();<BR>&nbsp;&nbsp;}catch(IOException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;out.println("Wrong");<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;new Client();<BR>&nbsp;}<BR>};</P>
<P><STRONG>14、用JAVA实现一种排序，JAVA类实现序列化的方法(二种)？ 如在COLLECTION框架中，实现比较要实现什么样的接口？<BR>答:</STRONG>用插入法进行排序代码如下<BR>package test;<BR>import java.util.*;<BR>class&nbsp; InsertSort<BR>{<BR>&nbsp;ArrayList al;<BR>&nbsp;public InsertSort(int num,int mod)<BR>&nbsp;{<BR>&nbsp;&nbsp;al = new ArrayList(num);<BR>&nbsp;&nbsp;Random rand = new Random();<BR>&nbsp;&nbsp;System.out.println("The ArrayList Sort Before:");<BR>&nbsp;&nbsp;for (int i=0;i&lt;num ;i++ )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));<BR>&nbsp;&nbsp;&nbsp;System.out.println("al["+i+"]="+al.get(i));<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public void SortIt()<BR>&nbsp;{<BR>&nbsp;&nbsp;Integer tempInt;<BR>&nbsp;&nbsp;int MaxSize=1;<BR>&nbsp;&nbsp;for(int i=1;i&lt;al.size();i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tempInt = (Integer)al.remove(i);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(tempInt.intValue()&gt;=((Integer)al.get(MaxSize-1)).intValue())<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;al.add(MaxSize,tempInt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxSize++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(al.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int j=0;j&lt;MaxSize ;j++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if </P>
<P>(((Integer)al.get(j)).intValue()&gt;=tempInt.intValue())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;al.add(j,tempInt);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxSize++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(al.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;System.out.println("The ArrayList Sort After:");<BR>&nbsp;&nbsp;for(int i=0;i&lt;al.size();i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println("al["+i+"]="+al.get(i));<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;InsertSort is = new InsertSort(10,100);<BR>&nbsp;&nbsp;is.SortIt();<BR>&nbsp;}<BR>}<BR>JAVA类实现序例化的方法是实现java.io.Serializable接口<BR>Collection框架中实现比较要实现Comparable 接口和 Comparator 接口</P>
<P><STRONG>15、编程：编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串。 但是要保证汉字不被截半个，如“我ABC”4，应该截为“我AB”，输入“我ABC汉DEF”，6，应该输出为“我ABC”而不是“我ABC+汉的半个”。 <BR>答：</STRONG>代码如下：<BR>package test;</P>
<P>class&nbsp; SplitString<BR>{<BR>&nbsp;String SplitStr;<BR>&nbsp;int SplitByte;<BR>&nbsp;public SplitString(String str,int bytes)<BR>&nbsp;{<BR>&nbsp;&nbsp;SplitStr=str;<BR>&nbsp;&nbsp;SplitByte=bytes;<BR>&nbsp;&nbsp;System.out.println("The String is:'"+SplitStr+"';SplitBytes="+SplitByte);<BR>&nbsp;}<BR>&nbsp;public void SplitIt()<BR>&nbsp;{<BR>&nbsp;&nbsp;int loopCount;<BR>&nbsp;&nbsp;</P>
<P>loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split</P>
<P>Byte+1);<BR>&nbsp;&nbsp;System.out.println("Will Split into "+loopCount);<BR>&nbsp;&nbsp;for (int i=1;i&lt;=loopCount ;i++ )<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if (i==loopCount){<BR>&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P>System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));<BR>&nbsp;&nbsp;&nbsp;} else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P>System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args) <BR>&nbsp;{<BR>&nbsp;&nbsp;SplitString ss = new SplitString("test中dd文dsaf中男大3443n中国43中国人</P>
<P>0ewldfls=103",4);<BR>&nbsp;&nbsp;ss.SplitIt();<BR>&nbsp;}<BR>}</P>
<P><STRONG>16、JAVA多线程编程。 用JAVA写一个多线程程序，如写四个线程，二个加1，二个对一个变量减一，输出。 <BR></STRONG>希望大家补上，谢谢</P>
<P><STRONG>17、STRING与STRINGBUFFER的区别。 <BR>答：</STRONG>STRING的长度是不可变的，STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作，特别是内容要修改时，那么使用StringBuffer，如果最后需要String，那么使用StringBuffer的toString()方法</P>
<P><FONT size=6>Jsp方面</FONT></P>
<P><STRONG>1、jsp有哪些内置对象?作用分别是什么?<BR>答:</STRONG>JSP共有以下9种基本内置组件（可与ASP的6种内部组件相对应）： <BR>　request 用户端请求，此请求会包含来自GET/POST请求的参数 <BR>&nbsp;&nbsp; response 网页传回用户端的回应 <BR>&nbsp;&nbsp; pageContext 网页的属性是在这里管理 <BR>&nbsp;&nbsp; session 与请求有关的会话期 <BR>&nbsp;&nbsp; application servlet 正在执行的内容 <BR>&nbsp;&nbsp; out 用来传送回应的输出<BR>&nbsp;&nbsp; config servlet的构架部件 <BR>&nbsp;&nbsp; page JSP网页本身 <BR>&nbsp;&nbsp; exception 针对错误网页，未捕捉的例外 </P>
<P><STRONG>2、jsp有哪些动作?作用分别是什么?<BR>答:</STRONG>JSP共有以下6种基本动作<BR>&nbsp;&nbsp; jsp:include：在页面被请求的时候引入一个文件。 <BR>&nbsp;&nbsp; jsp:useBean：寻找或者实例化一个JavaBean。 <BR>&nbsp;&nbsp; jsp:setProperty：设置JavaBean的属性。 <BR>&nbsp;&nbsp; jsp:getProperty：输出某个JavaBean的属性。 <BR>&nbsp;&nbsp; jsp:forward：把请求转到一个新的页面。 <BR>&nbsp;&nbsp; jsp:plugin：根据浏览器类型为Java插件生成OBJECT或EMBED标记</P>
<P><STRONG>3、JSP中动态INCLUDE与静态INCLUDE的区别？ <BR>答：</STRONG>动态INCLUDE用jsp:include动作实现<BR>&nbsp;&nbsp; &lt;jsp:include page="included.jsp" flush="true" /&gt;它总是会检查所含文件中的变化，适合用于包含动态页面，并且可以带参数<BR>&nbsp;&nbsp; 静态INCLUDE用include伪码实现,定不会检查所含文件的变化，适用于包含静态页面<BR>&nbsp;&nbsp; &lt;%@ include file="included.htm" %&gt;</P>
<P><STRONG>4、两种跳转方式分别是什么?有什么区别?<BR>答：</STRONG>有两种，分别为：<BR>&nbsp; &lt;jsp:include page="included.jsp" flush="true"&gt;<BR>&nbsp; &lt;jsp:forward page= "nextpage.jsp"/&gt;<BR>&nbsp; 前者页面不会转向include所指的页面，只是显示该页的结果，主页面还是原来的页面。执行完后还会回来，相当于函数调用。并且可以带参数.后者完全转向新页面，不会再回来。相当于go to 语句。</P>
<P><FONT size=6>Servlet方面</FONT></P>
<P><STRONG>1、说一说Servlet的生命周期?<BR>答:</STRONG>servlet有良好的生存期的定义，包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 </P>
<P><STRONG>2、Servlet版本间(忘了问的是哪两个版本了)的不同?<BR></STRONG>希望大家补上，谢谢</P>
<P><STRONG>3、JAVA SERVLET API中forward() 与redirect()的区别？<BR>答:</STRONG>前者仅是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；后者则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。所以，前者更加高效，在前者可以满足需要时，尽量使用forward()方法，并且，这样也有助于隐藏实际的链接。在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用sendRedirect()方法。 </P>
<P><STRONG>4、Servlet的基本架构<BR></STRONG>public class ServletName extends HttpServlet {<BR>&nbsp; public void doPost(HttpServletRequest request, HttpServletResponse response) throws<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletException, IOException&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp; public void doGet(HttpServletRequest request, HttpServletResponse response) throws<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServletException, IOException&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>}</P>
<P><FONT size=6>Jdbc、Jdo方面</FONT></P>
<P><STRONG>1、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.<BR>答:</STRONG>程序如下：<BR>package hello.ant;<BR>import java.sql.*;<BR>public class&nbsp; jdbc<BR>{<BR>&nbsp;String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";<BR>&nbsp;String theUser="admin";<BR>&nbsp;String thePw="manager";<BR>&nbsp;Connection c=null;<BR>&nbsp;Statement conn;<BR>&nbsp;ResultSet rs=null;<BR>&nbsp;public jdbc() <BR>&nbsp;{<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;&nbsp; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = DriverManager.getConnection(dbUrl,theUser,thePw);<BR>&nbsp;&nbsp;&nbsp; conn=c.createStatement();<BR>&nbsp;&nbsp;}catch(Exception e){<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public boolean executeUpdate(String sql)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.executeUpdate(sql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (SQLException e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public ResultSet executeQuery(String sql)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;rs=null;<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs=conn.executeQuery(sql);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (SQLException e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;return rs;<BR>&nbsp;}<BR>&nbsp;public void close()<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c.close();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;catch (Exception e)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;public static void main(String[] args)<BR>&nbsp;{<BR>&nbsp;&nbsp;ResultSet rs;<BR>&nbsp;&nbsp;jdbc conn = new jdbc();<BR>&nbsp;&nbsp;rs=conn.executeQuery("select * from test");<BR>&nbsp;&nbsp;try{<BR>&nbsp;&nbsp;while (rs.next())<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;System.out.println(rs.getString("id"));<BR>&nbsp;&nbsp;&nbsp;System.out.println(rs.getString("name"));<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}catch(Exception e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}</P>
<P><STRONG>2、Class.forName的作用?为什么要用?<BR>答：</STRONG>调用该访问返回一个以字符串指定类名的类的对象。</P>
<P><STRONG>3、Jdo是什么?<BR>答:</STRONG>JDO是Java对象持久化的新的规范，为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储，因此对开发人员来说，存储数据对象完全不需要额外的代码（如JDBC API的使用）。这些繁琐的例行工作已经转移到JDO产品提供商身上，使开发人员解脱出来，从而集中时间和精力在业务逻辑上。另外，JDO很灵活，因为它可以在任何数据底层上运行。JDBC只是面向关系数据库（RDBMS)JDO更通用，提供到任何数据底层的存储功能，比如关系数据库、文件、XML以及对象数据库（ODBMS）等等，使得应用可移植性更强。</P>
<P><STRONG>4、在ORACLE大数据量下的分页解决方法。一般用截取ID方法，还有是三层嵌套方法。 <BR>答:</STRONG>一种分页方法<BR>&lt;%<BR>&nbsp; int i=1;<BR>&nbsp; int numPages=14;<BR>&nbsp; String pages = request.getParameter("page") ;<BR>&nbsp; int currentPage = 1;<BR>&nbsp; currentPage=(pages==null)?(1):{Integer.parseInt(pages)}<BR>&nbsp; sql = "select count(*) from tables";<BR>&nbsp; ResultSet rs = DBLink.executeQuery(sql) ;<BR>&nbsp; while(rs.next()) i = rs.getInt(1) ;<BR>&nbsp; int intPageCount=1;<BR>&nbsp; intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);<BR>&nbsp; int nextPage ;<BR>&nbsp; int upPage;<BR>&nbsp; nextPage = currentPage+1;<BR>&nbsp; if (nextPage&gt;=intPageCount) nextPage=intPageCount;<BR>&nbsp; upPage = currentPage-1;<BR>&nbsp; if (upPage&lt;=1) upPage=1;<BR>&nbsp; rs.close();<BR>&nbsp; sql="select * from tables";<BR>&nbsp; rs=DBLink.executeQuery(sql);<BR>&nbsp; i=0;<BR>&nbsp; while((i&lt;numPages*(currentPage-1))&amp;&amp;rs.next()){i++;}<BR>%&gt;<BR>//输出内容<BR>//输出翻页连接<BR>合计:&lt;%=currentPage%&gt;/&lt;%=intPageCount%&gt;&lt;a href="List.jsp?page=1"&gt;第一页&lt;/a&gt;&lt;a </P>
<P>href="List.jsp?page=&lt;%=upPage%&gt;"&gt;上一页&lt;/a&gt;<BR>&lt;%<BR>&nbsp; for(int j=1;j&lt;=intPageCount;j++){<BR>&nbsp; if(currentPage!=j){<BR>%&gt;<BR>&nbsp; &lt;a href="list.jsp?page=&lt;%=j%&gt;"&gt;[&lt;%=j%&gt;]&lt;/a&gt; <BR>&lt;%<BR>&nbsp; }else{ <BR>&nbsp; out.println(j);<BR>&nbsp; }<BR>&nbsp; }<BR>%&gt;<BR>&lt;a href="List.jsp?page=&lt;%=nextPage%&gt;"&gt;下一页&lt;/a&gt;&lt;a href="List.jsp?page=&lt;%=intPageCount%&gt;"&gt;最后页</P>
<P>&lt;/a&gt;</P>
<P><BR><FONT size=6>Xml方面</FONT></P>
<P><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)</P>
<P><STRONG>2、你在项目中用到了xml技术的哪些方面?如何实现的?<BR>答:</STRONG>用到了数据存贮，信息配置两方面。在做数据交换平台时，将不能数据源的数据组装成XML文件，然后将XML文件压缩打包加密后通过网络传送给接收者，接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时，利用XML可以很方便的进行，软件的各种配置参数都存贮在XML文件中。</P>
<P><STRONG>3、用jdom解析xml文件时如何解决中文问题?如何解析?<BR>答:</STRONG>看如下代码,用编码方式加以解决<BR>package test;<BR>import java.io.*;<BR>public class DOMTest<BR>{<BR>&nbsp;private String inFile = "c:\\people.xml";<BR>&nbsp;private String outFile = "c:\\people.xml";&nbsp;<BR>&nbsp;public static void main(String args[])<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp; &nbsp;new DOMTest();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;public DOMTest()<BR>&nbsp;{<BR>&nbsp;&nbsp;try <BR>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;javax.xml.parsers.DocumentBuilder builder = <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</P>
<P>javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Document doc = builder.newDocument();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Element root = doc.createElement("老师");<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;org.w3c.dom.Element wang = doc.createElement("王");<BR>&nbsp;&nbsp;&nbsp;org.w3c.dom.Element liu = doc.createElement("刘");<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;wang.appendChild(doc.createTextNode("我是王老师"));<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;root.appendChild(wang);<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;doc.appendChild(root);<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;javax.xml.transform.Transformer transformer = <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;javax.xml.transform.TransformerFactory.newInstance().newTransformer();<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "gb2312"); <BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, "yes");&nbsp;&nbsp; </P>
<P>&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;transformer.transform(new javax.xml.transform.dom.DOMSource(doc),<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new </P>
<P>javax.xml.transform.stream.StreamResult(outFile));<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e) <BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println (e.getMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; }<BR>}</P>
<P><STRONG>4、编程用JAVA解析XML的方式.<BR>答:</STRONG>用SAX方式解析XML，XML文件如下：<BR>&lt;?xml version="1.0" encoding="gb2312"?&gt; <BR>&lt;person&gt; <BR>&nbsp; &lt;name&gt;王小明&lt;/name&gt; <BR>&nbsp; &lt;college&gt;信息学院&lt;/college&gt;&nbsp;&nbsp; <BR>&nbsp; &lt;telephone&gt;6258113&lt;/telephone&gt; <BR>&nbsp; &lt;notes&gt;男,1955年生,博士，95年调入海南大学&lt;/notes&gt; <BR>&nbsp;&lt;/person&gt; <BR>&nbsp;事件回调类SAXHandler.java<BR>&nbsp;import java.io.*; <BR>import java.util.Hashtable; <BR>import org.xml.sax.*; <BR>public class SAXHandler extends HandlerBase <BR>&nbsp; { <BR>&nbsp; private Hashtable table = new Hashtable(); <BR>&nbsp; private String currentElement = null; <BR>&nbsp; private String currentValue = null; <BR>&nbsp; public void setTable(Hashtable table) <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp; this.table = table; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; public Hashtable getTable() <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp; return table; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; public void startElement(String tag, AttributeList attrs) <BR>&nbsp; throws SAXException <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp; currentElement = tag; <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; public void characters(char[] ch, int start, int length) <BR>&nbsp; throws SAXException <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp; currentValue = new String(ch, start, length); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; public void endElement(String name) throws SAXException <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp; if (currentElement.equals(name)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.put(currentElement, currentValue); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; } <BR>JSP内容显示源码,SaxXml.jsp:<BR>&lt;HTML&gt; <BR>&lt;HEAD&gt; <BR>&lt;TITLE&gt;剖析XML文件people.xml&lt;/TITLE&gt; <BR>&lt;/HEAD&gt; <BR>&lt;BODY&gt; <BR>&lt;%@ page errorPage="ErrPage.jsp" <BR>contentType="text/html;charset=GB2312" %&gt; <BR>&lt;%@ page import="java.io.*" %&gt; <BR>&lt;%@ page import="java.util.Hashtable" %&gt; <BR>&lt;%@ page import="org.w3c.dom.*" %&gt; <BR>&lt;%@ page import="org.xml.sax.*" %&gt; <BR>&lt;%@ page import="javax.xml.parsers.SAXParserFactory" %&gt; <BR>&lt;%@ page import="javax.xml.parsers.SAXParser" %&gt; <BR>&lt;%@ page import="SAXHandler" %&gt; <BR>&lt;% <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("&lt;TABLE BORDER=2&gt;&lt;CAPTION&gt;教师信息表&lt;/CAPTION&gt;"); <BR>out.println("&lt;TR&gt;&lt;TD&gt;姓名&lt;/TD&gt;" + "&lt;TD&gt;" + <BR>&nbsp; (String)hashTable.get(new String("name")) + "&lt;/TD&gt;&lt;/TR&gt;"); <BR>out.println("&lt;TR&gt;&lt;TD&gt;学院&lt;/TD&gt;" + "&lt;TD&gt;" + <BR>&nbsp; (String)hashTable.get(new String("college"))+"&lt;/TD&gt;&lt;/TR&gt;"); <BR>out.println("&lt;TR&gt;&lt;TD&gt;电话&lt;/TD&gt;" + "&lt;TD&gt;" + <BR>&nbsp; (String)hashTable.get(new String("telephone")) + "&lt;/TD&gt;&lt;/TR&gt;"); <BR>out.println("&lt;TR&gt;&lt;TD&gt;备注&lt;/TD&gt;" + "&lt;TD&gt;" + <BR>&nbsp; (String)hashTable.get(new String("notes")) + "&lt;/TD&gt;&lt;/TR&gt;"); <BR>out.println("&lt;/TABLE&gt;"); <BR>%&gt; <BR>&lt;/BODY&gt; <BR>&lt;/HTML&gt;</P>
<P><FONT size=6>EJB方面</FONT></P>
<P><STRONG>1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?<BR>答：</STRONG>规范内容包括Bean提供者，应用程序装配者，EJB容器，EJB配置工具，EJB服务提供者，系统管理员。这里面，EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建，撤消，激活，去活，与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....</P>
<P><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组件。</P>
<P><STRONG>3、EJB的基本架构<BR>答:</STRONG>一个EJB包括三个部分:<BR>&nbsp; Remote Interface 接口的代码<BR>&nbsp; package Beans;<BR>&nbsp; import javax.ejb.EJBObject;<BR>&nbsp; import java.rmi.RemoteException;<BR>&nbsp; public interface Add extends EJBObject<BR>&nbsp; {<BR>&nbsp;&nbsp; //some method declare <BR>&nbsp; }<BR>&nbsp; Home Interface 接口的代码<BR>&nbsp; package Beans;<BR>&nbsp; import java.rmi.RemoteException;<BR>&nbsp; import jaax.ejb.CreateException;<BR>&nbsp; import javax.ejb.EJBHome;<BR>&nbsp; public interface AddHome extends EJBHome<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; //some method declare<BR>&nbsp; }<BR>&nbsp; EJB类的代码<BR>&nbsp; package Beans;<BR>&nbsp; import java.rmi.RemoteException;<BR>&nbsp; import javax.ejb.SessionBean;<BR>&nbsp; import javx.ejb.SessionContext;<BR>&nbsp; public class AddBean Implements SessionBean<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; //some method declare<BR>&nbsp; }&nbsp; </P>
<P><FONT size=6>J2EE,MVC方面</FONT></P>
<P><STRONG>1、MVC的各个部分都有那些技术来实现?如何实现?<BR>答:</STRONG>MVC是Model－View－Controller的简写。"Model" 代表的是应用的业务逻辑（通过JavaBean，EJB组件实现）， "View" 是应用的表示面（由JSP页面产生），"Controller" 是提供应用的处理过程控制（一般是一个Servlet），通过这种设计模型把应用逻辑，处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。</P>
<P><STRONG>2、应用服务器与WEB SERVER的区别？ <BR></STRONG>希望大家补上，谢谢</P>
<P><BR><STRONG>3、J2EE是什么？ <BR>答:</STRONG>Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中，可按照功能划分为不同的组件，这些组件又可在不同计算机上，并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。</P>
<P><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注册，以使别的企业能够发现的访问协议的实现标准。</P>
<P><BR><STRONG>5、BS与CS的联系与区别。<BR></STRONG>希望大家补上，谢谢</P>
<P><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属性、国际化的提示和消息。 </P>
<P><FONT size=6>设计模式方面</FONT></P>
<P><STRONG>1、开发中都用到了那些设计模式?用在什么场合?<BR>答：</STRONG>每个模式都描述了一个在我们的环境中不断出现的问题，然后描述了该问题的解决方案的核心。通过这种方式，你可以无数次地使用那些已有的解决方案，无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。</P>
<P><BR><STRONG>2、UML方面<BR>答：</STRONG>标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图,</P>
<P><FONT size=6>JavaScript方面</FONT></P>
<P><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>&nbsp;&nbsp; sign=-4;<BR>&nbsp;&nbsp; break;<BR>}<BR>else{<BR>&nbsp;&nbsp; document.form1.all(i).value=parseFloat(str);<BR>}</P>
<P><BR><FONT size=6>CORBA方面</FONT></P>
<P><STRONG>1、CORBA是什么?用途是什么? <BR>答：</STRONG>CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture)，由对象管理组织 (Object Management Group，缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为：<BR>用不同的程序设计语言书写 <BR>在不同的进程中运行 <BR>为不同的操作系统开发</P>
<P><BR><FONT size=6>LINUX方面</FONT></P>
<P><STRONG>1、LINUX下线程，GDI类的解释。<BR>答：</STRONG>LINUX实现的就是基于核心轻量级进程的"一对一"线程模型，一个线程实体对应一个核心轻量级进程，而线程之间的管理在核外函数库中实现。<BR>GDI类为图像设备编程接口类库。</P>
<P>&nbsp;</P>
<P>（转自：http://blog.csdn.net/huijunzi/archive/2004/02/26/5093.aspx）<BR></P></A>]]></description>
</item><item>
<title><![CDATA[有感:应聘Java笔试时可能出现问题及其答案(part One)]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9060</link>
<author>pcthomas</author>
<pubDate>2005/10/9 13:34:51</pubDate>
<description><![CDATA[<A>　 （转自：http://blog.csdn.net/huijunzi/archive/2004/02/26/5093.aspx）
<P style="BACKGROUND: white"><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana">Java</SPAN><SPAN style="FONT-SIZE: 24pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>基础方面</FONT></SPAN><SPAN lang=EN-US style="FONT-SIZE: 24pt; FONT-FAMILY: Verdana">:</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN>
<P></P>
<P></P>
<P></P>
<P style="LINE-HEIGHT: 150%"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">1</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、作用域</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">public,private,protected,</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">以及不写时的区别</SPAN></STRONG></FONT><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN></B><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>区别如下：</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>作用域</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>当前类</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>同一</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">package&nbsp; </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>子孙类</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>其他</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">package<BR>public&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √<BR>protected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR>friendly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR>private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; √&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×<BR></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>不写时默认为</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana">friendly<BR></SPAN><STRONG><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体">2</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Anonymous Inner Class (</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">匿名内部类</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">) </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否可以</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">extends(</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">继承</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">其它类，是否可以</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">implements(</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">实现</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">)interface(</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">接口</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">)<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>匿名的内部类是没有名字的内部类。不能<SPAN lang=EN-US>extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现</SPAN></FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>3</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Static Nested Class </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> Inner Class</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的不同</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体>Nested Class （一般是C++的说法），Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注： 静态内部类（Inner Class）意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>4</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">&amp;</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">&amp;&amp;</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">&amp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是位运算符，表示按位与运算，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">&amp;&amp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是逻辑运算符，表示逻辑与（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">and</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>）</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>5</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Collection </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"> Collections</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">Collection</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是集合类的上级接口，继承与他的接口主要有</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">Set&nbsp;</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>和</FONT></SPAN></FONT><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Arial">List.<BR>Collections</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>是针对集合类的一个帮助类，他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Arial"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">6</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、什么时候用</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">assert<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">assertion(</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>断言</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">)</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>在软件开发中是一种常用的调试方式，很多开发语言中都支持这种机制。在实现中，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">assertion</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>就是在程序中的一条语句，它对一个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">boolean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>表达式进行检查，一个正确程序必须保证这个</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">boolean</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>表达式的值为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">true</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>；如果该值为</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">false</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>，说明程序已经处于不正确的状态下，系统将给出警告或退出。一般来说，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">assertion</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>用于保证程序最基本、关键的正确性。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">assertion</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>检查通常在开发和测试时开启。为了提高性能，在软件发布后，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">assertion</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>检查通常是关闭的</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>7</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">String s = new String("xyz");</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">创建了几个</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">String Object<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>两个，一个字符对象，一个字符对象引用对象</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>8</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Math.round(11.5)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">等於多少</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? Math.round(-11.5)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">等於多少</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">:</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial"> &nbsp;</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Math.round(11.5)==12;Math.round(-11.5)==-11;round</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>方法返回与参数最接近的长整数，参数加</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">1/2</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>后求其</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><FONT size=2>floor</FONT><STRONG><SPAN style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>9</FONT></SPAN></STRONG></SPAN><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">short s1 = 1; s1 = s1 + 1;</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有什么错</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? short s1 = 1; s1 += 1;</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有什么错</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">short&nbsp;s1&nbsp;=&nbsp;1;&nbsp;s1&nbsp;=&nbsp;s1&nbsp;+&nbsp;1;&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">s1+1</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>运算结果是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">int</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>型，需要强制转换类型）</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">short&nbsp;s1&nbsp;=&nbsp;1;&nbsp;s1&nbsp;+=&nbsp;1;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>（可以正确编译）</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>10</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Java</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有没有</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">goto<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Arial">java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>中的保留字，现在没有在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial">java</SPAN><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>中使用</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>11</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、数组有没有</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">length()</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">这个方法</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? String</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有没有</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">length()</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">这个方法</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>数组没有<SPAN lang=EN-US>length()这个方法，有length的属性。String有有length()这个方法</SPAN></FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>12</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Overload</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Override</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的区别。</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Overloaded</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的方法是否可以改变返回值的类型</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>方法的重写<SPAN lang=EN-US>Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现，重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数，我们说该方法被重写&nbsp;(Overriding)。子类的对象使用这个方法时，将调用子类中的定义，对它而言，父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法，它们或有不同的参数个数或有不同的参数类型，则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型</SPAN></FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>13</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Set</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">里的元素是不能重复的，那么用什么方法来区分重复与否呢</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是用</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">==</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">还是</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">equals()? </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">它们有何区别</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>答：</FONT></SPAN></STRONG><SPAN lang=EN-US style="mso-bidi-font-family: Arial"><FONT face=宋体 size=2>Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等<BR>&nbsp;&nbsp;&nbsp;&nbsp;equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值</FONT></SPAN><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>14</FONT></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体"><FONT size=2>、给我一个你最常见到的</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">runtime exception<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-bidi-font-family: Arial"><FONT face=宋体>常见的运行时异常有如下这些<SPAN lang=EN-US>ArithmeticException,&nbsp;ArrayStoreException,&nbsp;BufferOverflowException,&nbsp;BufferUnderflowException,&nbsp;CannotRedoException,&nbsp;CannotUndoException,&nbsp;ClassCastException,&nbsp;CMMException,&nbsp;ConcurrentModificationException,&nbsp;DOMException,&nbsp;EmptyStackException,&nbsp;IllegalArgumentException,&nbsp;IllegalMonitorStateException,&nbsp;IllegalPathStateException,&nbsp;IllegalStateException,&nbsp;ImagingOpException,&nbsp;IndexOutOfBoundsException,&nbsp;MissingResourceException,&nbsp;NegativeArraySizeException,&nbsp;NoSuchElementException,&nbsp;NullPointerException,&nbsp;ProfileDataException,&nbsp;ProviderException,&nbsp;RasterFormatException,&nbsp;SecurityException,&nbsp;SystemException,&nbsp;UndeclaredThrowableException,&nbsp;UnmodifiableSetException,&nbsp;UnsupportedOperationException</SPAN></FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>15</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">error</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">exception</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有什么区别</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">error&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;exception&nbsp;</FONT></SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体 size=2>表示一种设计或实现问题。也就是说，它表示如果程序运行正常，从不会发生的情况</FONT></SPAN><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>16</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">List, Set, Map</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否继承自</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Collection</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">接口</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;List</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Set</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>是，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Map</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>不是</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>17</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">abstract class</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">和</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">interface</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">有什么区别</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>声明方法的存在而不去实现它的类被叫做抽象类（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">abstract&nbsp;class</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>），它用于要创建一个体现某些基本行为的类，并为该类声明方法，但不能在该类中实现该类的情况。不能创建</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">abstract&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>类的实例。然而可以创建一个变量，其类型是一个抽象类，并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Abstract&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>类的子类为它们父类中的所有抽象方法提供实现，否则它们也是抽象类为。取而代之，在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-FAMILY: Verdana"><BR></SPAN><FONT size=2><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>接口（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">interface</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>）是抽象类的变体。在接口中，所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的，没有一个有程序体。接口只可以定义</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">static&nbsp;final</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>成员变量。接口的实现与子类相似，除了该实现类不能从接口定义中继承行为。当类实现特殊接口时，它定义（即将程序体给予）所有这种接口的方法。然后，它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类，它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">instanceof&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>运算符可以用来决定某对象的类是否实现了接口</FONT></SPAN></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR><FONT size=2>18</FONT></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">abstract</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">的</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">method</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否可同时是</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">static,</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否可同时是</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">native</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，是否可同时是</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">synchronized<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答</SPAN></STRONG><FONT face=宋体><B>：</B><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">都不能</SPAN><B><SPAN lang=EN-US style="FONT-FAMILY: Verdana"> 
<P></P></SPAN></B></FONT></FONT>
<P></P>
<P></P>
<P></P>
<P style="LINE-HEIGHT: 150%"><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">19</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、接口是否可继承接口</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">抽象类是否可实现</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">(implements)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">接口</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">? </SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">抽象类是否可继承实体类</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">(concrete class)<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>接口可以继承接口。抽象类可以实现</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">(implements)</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>接口，抽象类是否可继承实体类，但前提是实体类必须有明确的构造函数</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">20</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、构造器</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">Constructor</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否可被</SPAN></STRONG></FONT><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">override<BR></SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>构造器</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Constructor</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>不能被继承，因此不能重写</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Overriding</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>，但可以被重载</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Overloading</SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">21</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、是否可以继承</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">String</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">类</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">String</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>类是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">final</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>类故不可以继承</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">22</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">try {}</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">里有一个</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">return</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">语句，那么紧跟在这个</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">try</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">后的</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">finally {}</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">里的</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">code</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">会不会被执行，什么时候被执行，在</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">return</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">前还是后</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>会执行，在</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">return</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>前执行</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">23</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、用最有效率的方法算出</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">2</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">乘以</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">8</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">等於几</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">2&nbsp;&lt;&lt;&nbsp;3</SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">24</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、两个对象值相同</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">(x.equals(y) == true)</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，但却可有不同的</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">hash code</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">，这句话对不对</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>不对，有相同的</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">hash&nbsp;code</SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">25</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、当一个对象被当作参数传递到一个方法后，此方法可改变这个对象的属性，并可返回变化后的结果，那么这里到底是值传递还是引用传递</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>是值传递。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">Java&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时，参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变，但对象的引用是永远不会改变的</FONT></SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR></SPAN><FONT size=2><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">26</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">、</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">swtich</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">是否能作用在</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">byte</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">上，是否能作用在</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">long</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">上，是否能作用在</SPAN></STRONG><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体">String</SPAN></STRONG><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">上</SPAN></STRONG></FONT><STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体"><BR></SPAN></STRONG><FONT size=2><STRONG><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体">答：</SPAN></STRONG><SPAN lang=EN-US style="FONT-FAMILY: Verdana">witch</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>（</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">expr1</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>）中，</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">expr1</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>是一个整数表达式。因此传递给</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;switch&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>和</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;case&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>语句的参数应该是</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;int</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;short</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>、</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;char&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>或者</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">&nbsp;byte</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>。</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">long,string&nbsp;</SPAN><SPAN style="mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><FONT face=宋体>都不能作用于</FONT></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana">swtich</SPAN></FONT></P>
<P style="LINE-HEIGHT: 150%"><FONT size=2><SPAN lang=EN-US style="FONT-FAMILY: Verdana"></SPAN></FONT><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: #333333; LINE-HEIGHT: 150%; FONT-FAMILY: &#718;&#805;"><BR><FONT color=#000000 size=4>(本文转自 </FONT><A href="http://blog.csdn.net/huijunzi/archive/2005/10/05/495425.aspx"><FONT size=4>http://blog.csdn.net/huijunzi/archive/2005/10/05/495425.aspx</FONT></A><A><FONT color=#000000 size=4>)</FONT></SPAN></P></A>]]></description>
</item><item>
<title><![CDATA[【收藏】开发J2ME的重要站点]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=9057</link>
<author>pcthomas</author>
<pubDate>2005/10/9 13:14:23</pubDate>
<description><![CDATA[J2ME的官方网站： &nbsp;<BR>&nbsp;<BR>http://jcp.org &nbsp;<BR>Java &nbsp;Community &nbsp;Process（JCP）。虽然Sun是Java的创始人，但是现在Java平台的许多定义和扩展工作是通过JCP进行的。JCP允许公司和个人参与到Java平台的定义和修改工作中来，其流程很简单，先提交一个扩展Java平台的规范需求（java &nbsp;specification &nbsp;request, &nbsp;JSR），如果被接受，就组成一个专家组正式定义这个JSR。专家组的成员包括该领域的专家和志愿奉献精力和时间者。下一步就公布出来接受其他JCP成员和公众审查，根据审查意见修改后，就投票接受为一个正式的Java标准。这一过程能够保证Java的各种实现是兼容的，从而保证Java应用的相容性。所有的J2ME标准都是通过这个流程定义的。 &nbsp; &nbsp;<BR>http://jcp.org/jsr/tech/j2me.jsp，所有的J2ME标准。 &nbsp; &nbsp;<BR>http://java.sun.com/j2me，J2ME官方网站。 &nbsp; &nbsp;<BR>http://java.sun.com/products/cldc/wp/ProjectMontyWhitePaper.pdf，Project &nbsp;Monty虚拟机的白皮书。 &nbsp; &nbsp;<BR>无线Java技术： &nbsp;<BR>&nbsp;<BR>http://wireless.java.sun.com，有大量的教程和文章，主要针对无线Java技术。其中 &nbsp; &nbsp;<BR>http://wireless.java.sun.com/getstart/，介绍无线Java技术的含义和基本概念。 &nbsp; &nbsp;<BR>http://wireless.java.sun.com/midp和http://wireless.java.sun.com/midp/articles，关于MIDP。 &nbsp; &nbsp;<BR>http://wireless.java.sun.com/midp/quizzes/midp是一个测验你对MIDP理解程度的测试。 &nbsp; &nbsp;<BR>http://wireless.java.sun.com/getstart/conceptmap.html，以非常直观的形式表示了各种Java平台，技术和标准之间的关系，对掌握全局很有好处。 &nbsp; &nbsp;<BR>http://www-106.ibm.com/developerworks/wireless/，IBM &nbsp;developerworks的无线技术专区。 &nbsp; &nbsp;<BR>http://alphaworks.ibm.com/wireless，大量的无线新技术。 &nbsp; &nbsp;<BR>http://www-3.ibm.com/pvc/index.shtml，IBM的普及计算。 &nbsp; &nbsp;<BR>资源收集网站： &nbsp;<BR>&nbsp;<BR>Bill &nbsp;Day的J2ME资源，http://www.billday.com/j2me，非常全面，但是初接触者看的话可能会觉得重点不太突出。Bill &nbsp;Day是Sun在J2ME方面的资深专家，其文章很有价值。 &nbsp; &nbsp;<BR>http://www.jguru.com/faq/J2ME，他在jGuru主持的J2ME &nbsp;FAQ &nbsp; &nbsp;<BR>http://forums.itworld.com，Community-&gt; &nbsp;Java &nbsp;Forum-&gt; &nbsp;Device &nbsp;Programming，他在ITworld主持的Device &nbsp;Programming论坛。 &nbsp; &nbsp;<BR>http://www.shiunkle.idv.tw/j2me/articles/index.htm，我国台湾在PDA的使用和J2ME的认识上都要比大陆超前一些，这里列出了台湾方面几乎所有重要的中文资料，对于我们很有帮助。其中王森的文章，以及台湾IBM &nbsp;DeveloperWorks网站的MIDP专题都相当不错。另外有几位主要书籍的作者经常在BBS &nbsp;linux.twbbs.org（telnet &nbsp;linux.twbbs.org）的J2ME版讨论和回答问题，是国内J2ME方面讨论比较深入的地方。 &nbsp; &nbsp;<BR>http://www.midletcentral.com/，提供MIDP应用下载。 &nbsp; &nbsp;<BR>http://midlet.org/jsp/index.jsp，提供MIDP应用下载。 &nbsp; &nbsp;<BR>http://www.pdaordie.com/java_for_wince.asp，在Pocket &nbsp;PC上的Java开发。 &nbsp; &nbsp;<BR>一些重要的J2ME文章： &nbsp;<BR>&nbsp;<BR>developerWorks &nbsp;中国网站的另外两篇关于J2ME的文章 &nbsp; &nbsp;<BR>http://www-900.ibm.com/developerWorks/cn/java/wi-j2me/index.shtml，仔细研究 &nbsp;J2ME。 &nbsp; &nbsp;<BR>http://www-900.ibm.com/developerWorks/java/j-j2me/index.shtml，J2ME &nbsp;走向成熟。 &nbsp; &nbsp;<BR>http://www.yesky.com/20011004/199789.shtml，Java嵌入式开发系列一到六，比较全面。 &nbsp; &nbsp;<BR>邮件列表： &nbsp;<BR>&nbsp;<BR>http://archives.java.sun.com/archives/kvm-interest.html，虽然名字是KVM，但是实际上讨论关于J2ME的一切话题。有许多Sun的工程师和其他专家，J2ME的实际开发者积极参与讨论。 &nbsp; &nbsp;<BR>相关书籍： &nbsp;<BR>&nbsp;<BR>前面提到的Bill &nbsp;Day的J2ME资源中列出了主要的J2ME相关英文书籍。 &nbsp; &nbsp;<BR>前面提到的http://www.shiunkle.idv.tw/j2me/articles/index.htm中列出了台湾出版的主要J2ME方面著作。 &nbsp; &nbsp;<BR>电力出版社引进了其中两本： &nbsp; &nbsp;<BR>Palm &nbsp;应用程序设计--使用 &nbsp;Java &nbsp;语言，朱仲杰著；中国电力出版社，2001. &nbsp; &nbsp;<BR>深入Palm应用程序设计：使用Java语言，朱仲杰著；中国电力出版社，2001.&nbsp;&nbsp;<BR>]]></description>
</item><item>
<title><![CDATA[李敖北大演讲全文+视频（在线观看）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=pcthomas&amp;id=8866</link>
<author>pcthomas</author>
<pubDate>2005/9/29 11:35:57</pubDate>
<description><![CDATA[
<P><A>　大家好<BR>主持人：尊敬的各位来宾，老师们、同学们、朋友们，大家上午好。李敖先生北京大学演讲<BR>会现在开始。 首先，请允许我介绍在主席台上的嘉宾，台湾著名作家李敖先生、凤凰卫视<BR>控股有限公司董事局主席、执行总裁刘长乐先生、北京大学校委会主任敏瑞方教授，让我们<BR>对光临北大的各位嘉宾表示热烈的欢迎。现在请求北京大学校委员会敏瑞方教授致欢迎词。<BR>敏：尊敬的李敖先生，尊敬的刘长乐先生，尊敬的各位嘉宾，老师们，同学们，朋友们，今<BR>天在这样一个美好的秋高气爽的日子，我们十分荣幸的邀请到台湾著名学者李敖先生来到北<BR>京大学发表演讲。首先我仅代表北京大学全体师生向首次回到大陆进行神州文化之旅的李敖<BR>先生表示最热烈的欢迎，和致以良好祝愿。 李敖先生是台湾著名作家和文化名人，1935年<BR>生于哈尔滨，1937年随全家迁移北京，先在新鲜胡同小学就读，后在1948年秋考入北京名校<BR>四中，1949年1月转入上海进追（音）中学，对于在北京这段求学历史，李敖先生本人讲过<BR>，北京文化古城与幼时环境是其在志力早熟，从小就养成读书、买书、藏书的癖好，1949年<BR>4月李敖随全家迁居台湾，定居台中，跳班考入台中第一中学读初二，中学时代的李敖便显<BR>示出自己独立思考，绝不追随世俗大流个性，由于对当时台湾的教育不满，他在读完高二后<BR>便自愿休学在家，博览群书，1949年夏他考入台湾大学法律系，未来满一年又自动退学，不<BR>久，再考入台湾大学历史系，1961年，考入台湾大学历史研究所。 李敖先生的作品自成一<BR>家，综论历史，横直终生，嘻笑怒骂，其畅快淋漓的文字及尖锐辛辣的评论，充分展示了李<BR>敖先生的深厚学养和特立独行的人格。 近年来李敖先生主持香港凤凰卫视的《李敖有话说<BR>》节目，使大陆观众对李敖先生有了更加直观的了解和更加生动的印象。 这里，我还要特<BR>别向大家介绍的是，李敖先生的父亲李鼎一先生是我们北大的校友，1921年9月李先生考入<BR>北京大学国文系，于1926年6月毕业，毕业之后，李先生主要从事中国文学史的教学和研究<BR>。另外，李敖先生的大姐李民女士，姐夫周克敏先生，二姐李讯女士也都我们北京大学的校<BR>友。 今天，李敖先生来到他父亲曾经读书的母校发表演讲，我们也迎来了李民、李讯和周<BR>克敏三位老校友返回母校，我们感到十分亲切，让我们对他们的到来再次表示热烈的欢迎。<BR>近年来，我们北京大学在两岸的文教学术交流中扮演了越来越重要的角色，今天，李敖先<BR>生的到访对进一步密切两岸学术界、文化界的联系，促进两岸知识界的良好互动，继续推动<BR>两岸的和平友好交流，具有十分积极的影响，我们也诚挚的欢迎越来越多的台湾学者来大陆<BR>，来北大访问讲学，同心协力，将我们中华文化发扬光大。 最后，预祝李敖先生北京大学<BR>演讲会取得圆满成功！ 李敖：各位终于看到我了，主任，校长，总裁，各位贵宾，各位老<BR>师，各位小朋友！来演讲紧张不紧张，紧张，站在大庭广众面前，很多人可以指挥千军万马<BR>的军队，可是你让他讲几句话，他就宋了不敢讲话，什么原因，胆小，美国人打赢南北战争<BR>的将军歌兰特，指挥千军万马打赢仗，林垦总统请他上台给他勋章，让他几句话，他讲不出<BR>口，为什么？怕这玩意，一讲演就紧张。 前天晚上我编了一个故事，北京大学一个女孩子<BR>进了一个小房间，突然看到一个男的在一个小房间里嘴巴里面念念有词，来回走动，这个女<BR>孩子就问他，你在干吗，他我在背讲演稿，他说你在哪儿讲演，他说我要在北京大学讲演，<BR>女孩子说，你紧张吗？他说我不紧张，女孩子说，如果你不紧张为什么你到女厕所来干什么<BR>。这个人就是连战。<BR>主持人：尊敬的各位来宾，老师们、同学们、朋友们，大家上午好。李敖先生北京大学演讲<BR>会现在开始。<BR>李敖：各位终于看到我了，主任，校长，总裁，各位贵宾，各位老师，各位小朋友！来演讲<BR>紧张不紧张，紧张，站在大庭广众面前，很多人可以指挥千军万马的军队，可是你让他讲几<BR>句话，他就宋了不敢讲话，什么原因，胆小，美国人打赢南北战争的将军歌兰特，指挥千军<BR>万马打赢仗，林垦总统请他上台给他勋章，让他几句话，他讲不出口，为什么？怕这玩意，<BR>一讲演就紧张。<BR>台湾有一位很有名的歌星，崔台新，崔是垂柳，台是台湾人，青是青年，台湾要靠混，靠吹<BR>牛，又是青年人混，连战就是这种人。他可以户龙别人，糊弄不到我们可以糊弄你们。至少<BR>前一阵子糊弄你们，今天一个重要的标准就是你们觉得任何人觉得连战讲演好的人，我就要<BR>警告你们，今天你们可能很失望，为什么呢？因为我无法花一个是小时把这个观念转过来，<BR>因为你们上了连战的当以后我很难把这个观念转过来。<BR>我在这儿买圆一个人，买圆我的老板，凤凰电视台的刘长乐先生，为什么要买圆他，他把我<BR>故求到北京来，对不起，我一看到你们就讲很多乡音，故求到北京来，可是我已经在中国大<BR>陆，在凤凰电视台上讲了有400多场，你们对我相当的熟悉，用一个雄性的眼光来看我，我<BR>今天把这个讲演讲成功，这是高难度的，你们对连战完全不了解，你们看到他吗。所以对我<BR>熟悉，对我是个困难，这个困难是刘长乐老板造成的，所以我今天有所抱怨。<BR>现在开始讲正题了，罗马教皇讲了一句话，他说你演讲的时候不能用稿子，为什么不能用稿<BR>子，用稿子表示你记不住，如果你自己都记不住，你怎么样让听众记得住呢，你这个演讲就<BR>失败了，所以大家看，没有稿子。也没有小抄，可是我带了一些证据是有的，等会会显示证<BR>据。<BR>我必须和大家说，接下来这个演讲的时候是刘长乐老板告诉我，最后我问他一句话，把他问<BR>得冷住了，我说有没有铺红地毯，我进门的时候，他说你没有克林顿有，连战有，你没有，<BR>我说为什么我没有？他说，北大尊敬你，把你当成学术演讲，所以不铺红地毯，校长是不是<BR>这个意思），我说好我做学术演讲，讲得好就是学术演讲，讲不好，讲一半，铺红地毯还来<BR>得及。<BR>为什么我要这样说，不然人家说北京大学视力眼，怎么不给李敖铺红地毯，怎么给当官的，<BR>或者说是政治人物铺红地毯，我在这儿有很多人眼睛看着我，说李敖骂过国民党过民进党，<BR>骂过老美国，骂过小日本，今天你在北京，你敢敢骂共产党，很多人不怀好意，你看幸灾乐<BR>祸看着我。我告诉你，我先不骂共产党，我先赞美共产党和国民党曾经打倒的势力，那就是<BR>北洋军阀，为什么赞美北洋军阀，大家知道吗？北京大学怎么出来的，北洋军阀，什么人叫<BR>蔡元培校长做北京大学校长，那时候他是国民党人的身份，是北洋军阀，北洋军阀有这个肚<BR>量把全国最好的大学交给和他敌对的一个政治势力的守敌，我们现在骂北洋军阀，我们有什<BR>么资格骂北洋军阀呢？<BR>我们不要骂北洋军阀，我们要做历史性的反省。<BR>以前北京大学胡适讲了一段话说，他说，你要为国家牺牲你的自由，可是胡适说，争取你个<BR>人的自由，就是争取国家的自由。克林顿引用这句话的时候没有引用完，就是说，胡适说，<BR>一个真正的开明进步的国家，不是一群奴才造成的，是要有独立个性，有自由思考的人造成<BR>的，所以克林顿的演讲引证有错误，后来又来了一个人，就是连战，他在讲演场里面提到了<BR>四个字，有点犯忌讳的，可是事实上他提到了，叫做“自由主义”。各位，连战对自由主义<BR>的解释完全错误，他请毛但写的说胡适把自由主义带到台湾，所以台湾有一股自由主义的学<BR>风，在学校里面流传下来了，我告诉各位，没这个事，没有人敢这样做，包括连战，他们都<BR>不敢这样做，所以自由主义这四个字虽然在连战的演讲里面，在北大的讲台上面出现了，我<BR>告诉你，没有这个东西，很多人说我李敖是自由主义者，说你自由主义者你在大陆，你在共<BR>产党统治的地区，我们要看你讲什么话，你要不要宣传自由主义，我告诉大家，我要宣传，<BR>可是内容和你们所了解的都出入，什么是自由主义，自由主义我们看到学理上来讲，你出一<BR>本书，他出一书，学理上非常的高深，对我而言，没有复杂，自由主义只是两个部分，一部<BR>分是翻秋中级（音）的部分，一部分是（翻秋中宪法的部分）。<BR>我给大家讲一个故事，台湾在过去清朝统治之前是给郑成功来统治，这是了不起的中国民族<BR>英雄，郑成功的爸爸投降了，郑成功不肯，郑成功妈妈在福建被清朝的兵轮奸了，郑成功发<BR>现母亲被轮奸了，怎么办，我来告诉你怎么办，他把他母亲身体切开，用水冲洗他母亲的尸<BR>体，他认为他母亲被轮奸以后，脏，他母亲脏了，奸是一个动作，污是一个过程，用水冲可<BR>以解自己心理的压力和痛苦。各位想象看，在五四时代，有一个问题只有胡适先生解决了，<BR>别人解决不了，就是有一个北大学生提出来，说他的一个朋友的姐姐被土匪抢走了，绑票了<BR>，当然，也发生了刚才我说的那种不幸的结果，问北大的这些思想家们，你们怎么样解释这<BR>个现象，大家解释不出来，胡适先生做出解释，他说，如果有男人要讨被害的女孩子，我们<BR>要尊敬这个男的，其实在生理上变化很小，心理上难过，所以如果有这个男的能够破除这种<BR>情节，这个男的很了不起，我们应该尊敬他。<BR>世界三大男高音帕瓦罗帝，中间还有一个小胖子斗米一上来就是这个姿势，请你们鼓掌，为<BR>什么鼓掌，因为我太传神了，你们都忘了鼓掌了。你们不习惯我这种讲话的方式，可是我必<BR>须说，我在讲这种方式。<BR>今天我站在这里，大家说，你要不要骂共产党，刚刚我说过，我先替北洋军阀讲了好话，让<BR>我替共产党讲一句好说，说你怎么这样敢为共产党讲好话，为什么不敢，当共产党没有做坏<BR>事情的时候，我们为什么不把真相澄清出来，谁说共产党不许别人讲话，我拿一本书给你们<BR>看《毛泽东文集》，当然你们会笑我你在打着红旗反红旗，其实不是，我给你们看一段蛮有<BR>趣的，念给你们听，我们有你们相反的意见，批评得不负责任。<BR>怕负责任，老虎屁股摸不得，这是很不对的，有了错，一定要自我批评，凡是采取这种态度<BR>的人，人总是要讲的，既然我摸了老虎屁股。我今天给大家做一个重大的宣誓，我告诉大家<BR>，从18世纪19世纪以来，人类所梦想的自由主义这种追溯方法都是这个自由那个自由。<BR>可是自由主义最重要的第一个层面是你心灵能不能解放，如果你心灵是成功式的，那你就困<BR>死了，所以我认为心灵开放是重要的，这一部分自由主义叫做翻秋中级（音）。<BR>都是你自己的事情，你自己没有一个改革开放的自己，永远困扰自己。所以我说，真正的自<BR>由主义者没有人想做，因为太痛苦了，因为太难了，要有很高的文化水平才能做自由主义者<BR>，所以自由主义这一段叫做反求诸己恩（音），成功了，我自己就知道。<BR>我不是正成功，我可能是卖东西的窑子，我是一个处女，这是自由主义的部分，另外一个部<BR>分就是政府有联系，我们人民和政府的联系有几种方式，大家说乡音未改，我没改，可是你<BR>们改了，北京变大了。你们讲的没有我讲的纯，我告诉你，人们和政府的关系第一个关系就<BR>是政府这么坏，我不要活了，我梗了。辛亥革命以前的杨虎生在英国跳海，就是我死了。<BR>第二个感觉我颠了，就是跑了，我玩不过你，孔子说，尾部步入，乱棒之居（音）。第三个<BR>是得（音）了，他住在雍和宫附近，他到北京大学来作客，他在大陆（音）机里面，你找不<BR>到我，我猫起来了，就是在更了，颠了，得（音）的关系就是藏起来了。<BR>第二个感觉是我颠了，就是跑了，我玩不过你，孔子说，尾部步入，乱棒之居。第三个是得<BR>了，他住在雍和宫附近，他到北京大学来作客，他在大陆（音）机里面，你找不到我，我猫<BR>起来了，就是在更颠了，得（音）的关系就是藏起来了。<BR>第四种菘了，小时候我们在北京斗蟋蟀，送了就是我怕了，我不和你玩了，就是人民和政府<BR>，我怕你，不和你玩了。<BR>第五种就是火了，我和你干上了，我生气了，什么时候会反了，人民忍无可忍的时候，再在<BR>找到一个激怒眼的题目就是反。在1932年美国就发生一件事情，在第一次世界大战的时候，<BR>很多美国军人打死了<BR>1918年世界大战结束，很多兵回来了，要政府赔钱，政府说，你们现在年轻力壮，现在不给<BR>，到1945年，你们老了，再给你们钱，大家一听，觉得也好。<BR>结果1932年美国发生经济大恐慌，这些老兵憋不住了，跑到华盛顿广场集会，大家饥饿，由<BR>早到晚，由日到夜，都不解散，中央政府广场被占有，好说怠说都不解散。<BR>一个将军叫做迈克压撒元帅，下面带了一个少将叫做八顿将军，下面带了一个少校叫做艾<BR>森豪威尔，打枪，多少人死掉了，人民在他的中央政府广场里面盘居不屈这是美国的形象吗<BR>？<BR>我给大家看看一个资料，告诉你们这是什么东西，这就是当年《纽约时报》的头条新闻讲到<BR>怎么样的开枪，你们看不清楚，没有关系，证据在这儿，一会主任和校长在这儿可以证明。<BR>看这个表，1932年美国群众在中央政府盘居不屈，政府开枪，153年德国群众盘居不屈开枪<BR>，1956年匈牙利群众盘居不屈开枪，1970年美国又来了，又开枪。<BR>可是人民来讲，逼他开枪，局面造成了我们逼他开枪，我们要不要反省，我们为什么这么笨<BR>呢，看看有没有什么聪明的方法，焦急的方法你不能够把政府摆平，你自己跟着受害，说我<BR>们争取言论自由，我告诉大家，没有人比我李敖古往今来，争取言论自由最多的，我写过10<BR>0多本书，有96本被查禁。<BR>全世界古往今来有没有这么个人写了这么多禁书，而有这么个政府盯着他不放，我把我的书<BR>名、以及被查禁的表，你们看有多长。<BR>我的书和我著作等身，我这个表已经超过我的身高了，能证明什么，我坐牢就坐牢，你们说<BR>，你有抱怨，你抱什么怨，写文章大不了坐牢，你们不愿意，聪明了，觉得你李敖傻，那么<BR>多牢做的干什么，为什么？<BR></A></P>
<P>&nbsp;</P>
<P>我们现在知道有一种觉悟，我告诉大家，虽然这么多禁书不能卖，写了以后就被抢走了，怎<BR>么办呢？在耳渠道，在地摊上和黄色书刊一起卖，鱼目混珠，所以我出的书都是露屁股，看<BR>起来很凉快的。我的读者根本不是我的读者，他是买黄色书刊，买错了就变成我的读者。<BR>所以，我的读者里面有些人是色情狂，你们有没有，我不知道。<BR>我告诉大家，写言论自由争取以后是这个下场，那么我们革命了，项羽这样喊，李自成也可<BR>以这样喊，你不能这样喊，项羽拥有武器，李自成拥有武器，和统治者差不多，你有一把刀<BR>，我有一把刀，差不多。<BR>现在全世界任何政府的统治者用机关枪，坦克车，所以我说，人民要聪明，争取自由要靠智<BR>慧，大家看我这本小说写《北京法院寺》，今天下午我要去法院寺去看看，从来没有去过这<BR>个地方，为什么没有去过能把这个小说写得神龙活现，这就是文学家嘛，就干这个的。<BR>我讲我的心里话给你们听，我回头看，除了我们的刘长乐老板以外，主任及校长都不太笑，<BR>我一回头看，就很紧张。他们不算本领，我在内地最佩服的一个人叫做丁关根，你和他讨论<BR>问题绝对不笑，脸绷着一路绷到底，我真的佩服。<BR>中国历史上有一个人和丁关根一样了不起的，叫包公，他也不笑，所以宋朝人当时有一举言<BR>语叫做包工笑，黄河清，这是不可能的事情。<BR>我今天谈言论自由，他们怕，其实有什么好怕的，我举例给大家看，什么东西开放，言论自<BR>由会更安全，我今天在这儿最想讲的一句话就是这句话。<BR>北欧、瑞典，丹麦他们是全世界性开放最早的地方，丹麦开放A片的那一年全国的强奸犯罪<BR>率减少了16％，不强奸了，看A片就好了，头一年全国偷看女人洗澡减少了80％，觉得不可<BR>思议。<BR>按照我们的标准，一定有伤风化，破坏民心士气，我所佩服的一个将军叫做许士友，以前南<BR>京军区的司令，南京军区不能看《红楼梦》。<BR>现在告诉大家，瑞典的统一数字告诉我们，强奸犯减少16％，偷窥狂减少了80％，当您开放<BR>小电影的时候，大家整天看，已经平常了，反倒没事了，言论自由本身就是这样的。<BR>我在台湾搞了这么多年的言论自由，结果怎么，整天查禁我的书，说李敖闯货，影响民心士<BR>气，现在的书不禁了，可是也没事了。<BR>我拿张照片给大家看，我指着一个老头子，这老头子前一阵子来到北京，他是国民党的上将<BR>叫做许立荣，当年做总政治部的主任，专门查禁我的书<BR>后来变成老朋友，后来他向我道歉，在公开场合向我道歉，他说我们发现不查禁你这么多书<BR>，也不会亡党亡国。<BR>所以今天大家聪明的知道，有些言论开放了以后，是火山一样的喷火口，让它喷出去，言论<BR>自由像看小电影一样，让他讲了，让他骂了，让他说了，老虎屁股让他摸了，没什么了不起<BR>。<BR>我认为这是今天我们国家领导人最愿意知道的一点，可是今天他们知道不知道，还不知道，<BR>为什么不知道，为什么克林顿讲演现场全体全国播出，为连战的演讲现场全体播出，我李敖<BR>在这儿为什么要想想看再播出？<BR>看看主席的词“俏也不挣风春，只把春来抱”，花都开了以后，我在花里面笑，可是我告诉<BR>你，毛主席的真相，他的第一次原稿不是这样的，不是说俏也不挣春，只把春来抱，等到春<BR>花烂漫时，他才笑。<BR>他的原稿是他在旁边笑，他是个旁观者变成在中间，大家知道什么境界呢，看王国维写的诗<BR>“人间词化”，“有我之境，有无我之境”。<BR>现在女孩子穿的是裤袜，以前女孩子穿的是玻璃丝袜，在大腿中间吊着，你把这个袜子送给<BR>美国人，美国很高兴，我有全世界最好的玻璃丝袜，你把这个袜子送给法国女人，她会说我<BR>有了全世界最漂亮的大腿。<BR>她把袜子穿上去以后，所以她有了全世界最漂亮的大腿，袜子没有穿上以前，我有了全世界<BR>最漂亮的丝袜，你有了全世界最漂亮的腿，就是他在旁边笑，丝袜套上大腿，就是他在丛中<BR>笑。<BR>今天我来到这儿，一句俗话就是“不是猛龙不过江”，我敢来，我是个自由主义者，我敢骂<BR>国民党、敢骂小日本和老美，今天我来，不是骂人我也碰人，我碰了北洋军阀给您看。<BR>那个时候北大怎么样对待政府，教育部公文来了退回不看，北大多狠，教育部钱收进来了。<BR>现在的北大太孬了，在我看来，什么原因，怎么样可以不孬，我们的书记站起来，校长站起<BR>来，像我们以前的老校长不就是这样吗。<BR>北大马寅初干了九年的校长，在国民党时代被软禁，后来在北大做校长的时候，本来一看是<BR>很好，本来和毛泽东感情好得很，为了人口两个人的看法变了，马寅初说中国人这样生下去<BR>我们不得了，我们的财政都被吃掉了。<BR>毛主席说，人多没有关系，人多好办事情，结果毛主席赢了，大家斗马寅初，一路斗到马寅<BR>初床前面的墙，都贴了大字报，可是马说我不在乎，我要干到死，我要孤云奋战，结果他没<BR>有死，他活到100岁，别人都死了，他还活着。<BR>这就是北大精神，北大的教育，所以我说今天从北大开始，虽然毛主席说，北京大学水浅王<BR>八多，多几个王八也不是坏事。<BR>我的话其实讲不完的，可是今天的重点大体上就说到这儿了，这些书你们懒得看，我告诉你<BR>，我看得熟不得了，我念一段周总理的话给你们听：人民大众是有充分的思想自由的，只要<BR>其他思想都可以存在。<BR>但要讲，不讲这些，别的我们也允许它的存在。所以今天为我我要替共产党讲好话，大家说<BR>共产党不让人讲话，是错的，是一部分共产党把毛主席周总理根本的精神给它紧缩了，才有<BR>今天的现象。<BR>因为我和大家说，共产党有它自由的成分，过去被打压是一个错误，所以我们总觉得共产党<BR>一党专制是错的，必须说，整个的原因出在原来的马克思那里，可是现在我们知道都有中国<BR>式的社会主义。<BR>我请大家问问，社会主义不够，为什么前面要加中国式的社会主义，因为社会主义不够，可<BR>是不灵了说不出口，夹了一个帽子，中国式的社会主义，不是吗？<BR>我告诉各位，你们都不看毛选集，都有这段话，毛主席最后的一段话，你们听了绝对会惊心<BR>动魄，我念书给你们听，这些骂我们的像农民，像梁春云，我们要把它养起来，养着他们骂<BR>我，让他们骂，骂得无理，我们敢搏，骂得有理我们接受。<BR>这对党对人民，对社会主义比较有利。毛泽东思想里面有一部分是真的懂这个道理的，结果<BR>我们把这一部分毛泽东给忽略掉了，还有一个毛泽东你们知道它是谁吗？<BR>共产党到今天还存在，我愿意它存在一千年，和我们是什么关系，共产党讲两手策略，一手<BR>是软的，一手是硬的。<BR>保住，我们也保住它，共产党愿意为人们服务吗？我们就是人民，让它为我们服务，幸巴达<BR>过河的时候忽然有一个老头子爬上他的脖子让他背着他，你跟着我走结果是星光大道，怎么<BR>样甩他也甩不掉。<BR>你要照顾他，我们希望共产党活1千年，我们在它背上贴着它，哄着它，耐着它，让它为我<BR>们服务，有什么不好，我们不服气要打，玩言论自由你们玩不过我，你们要革命你们玩不过<BR>坦克车，说我们不搞这些，那搞，我们去更了，去颠了，去得了，去反了，用这种不健康的<BR>情绪在家里生闷气。<BR>拍桌子摔板凳是错误的，我们要和共产党合作，其实他们人太多了一点，现在共产党是690<BR>0万，比台湾人口多3倍，可是没有关系，你们要放弃自由，你们救共产党我们欢迎，可是我<BR>们还有老百姓。<BR>13亿人口和6900万比起来是19：1，19个人里面有一个是共产党，我们广大的中国人民要干<BR>什么，我们放弃过去那种念头，就是我们要打天下，我们要和你作对，为什么落伍了，因为<BR>没有可行性。<BR>人民会吃亏，共产党说，下一代的共产党很聪明，我看到胡锦涛真的很聪明，我们也很聪明<BR>，这个时代对我们也很有利，大家都忘了，我们的王冲在书店里看书，死背，为什么要死背<BR>呢，因为没有钱买书。<BR>宋朝的王安石和他的好朋友说，我儿子是神童，看书一遍就看会，他的好朋友说哪家儿子看<BR>两遍，都是一遍看会，因为有高度智慧的人才能看书，今天我们就是这种人，你们北京大学<BR>就是这种人。<BR>各位想想看，等一下我把我爸爸在北大的文凭给你们看，我要送给校长，送给主任，那个时<BR>候毕业，1926年北大毕业，365个人，今天上万，你们学校这么多人，大家想想看，我小时<BR>候一个中学生后面跟着4千个文盲。<BR>我爸爸是北京大学的学生，可是我们想想看，今天你们的责任是什么，就是背后有这么多的<BR>人，他们在精英上精英不过你，本来你们从出生就是胜利者，父母母亲受胎的时候是2亿三<BR>亿的精子往前跑，后来是一个精子才出了你们。<BR>你们赢了13亿，所以你们到了北京大学，不要以为了到美国得了博士就完了，大家可以看到<BR>李文就是典型的例子，到了美国得了博士，得了什么会失落的，所以我和大家说，我们要拥<BR>抱共产党。<BR>共产党不喜欢笑，共产党太严肃，共产党会把冒死想做狭窄的解释，我们把它放宽一点，就<BR>是我今天的主要目的。<BR>我讲这一点很多人提心吊胆，包括我在内，人家说，你到大陆来要不要看长城，我说我可能<BR>没上长城先进了秦城。<BR>为什么说我不伤感，我不能伤感，我看到的北京是什么北京，我到店里的时候，他看我知道<BR>我买不起这杯东西，他会倒杯茶给我，那样彬彬有礼的北京已经没有了，现在是处处设防的<BR>北京，当你对人处处设防的时候，人变心了。<BR>十天以前我离开看到高金素梅去联合国去宣布日本人可恶的时候，我还送了他100万台币，<BR>不要以为我李敖有钱，大家知道我在坐计程车吗……威武不能曲，富贵不能淫，贫富不能贱<BR>，谢谢各位！<BR>今天我做个样板给大家看，我捐了35万块人民币是在北京立通向，就是告诉大家，其实胡适<BR>思想是最温和的，对我们有利的，现在我们开始知道立个铜像给他，当时胡适在我穷困的时<BR>候送了1000元人民币给我，今天我相当于1500倍的人情来还的，你们是这种人吗？可是有钱<BR>舍不得。<BR>问：李敖先生您好，我来自政府管理学院，我的问题和文化有关，我看过您的传记知道您年<BR>轻的时候曾经写过万字以上的长文，主张中国的文化要全盘的西化，过了几十年之后，您是<BR>否仍然持有这种观点，我的问题是，您认为中国文化的发展方向应该是什么样的？是我们要<BR>继续的全盘西化还是保留原有文化，或者说还有其他的道路？<BR>李敖：您刚刚谈到钱穆先生，我在中学的时候写信给他纠正他的错误，他就是当年燕京大学<BR>的教授，你们都受了他的影响，为什么呢？<BR>因为燕京大学有一个未名湖，“未名”两个字就是他起的，当时我谈到所谓全盘西化，这也<BR>算是一个在政治里面的一个罪名，就是不可以搞全盘西化，可是我必须说，我们必须承认，<BR>我们是在全盘西化中最典型的例子。<BR>就是马克思，马克思就是全盘西化，因为他全是洋玩意，这就是我们无法完全避免，国防部<BR>你去问曹刚川部长，他现在不会搞刀枪之类的，一定会搞现代化武器。<BR>过去，说信不能发表，说关公和岳飞来了，都打不过英国人，为什么呢？英国人打我们，他<BR>炮打过来，我们打他，打不到他，甚至看不见他，这就是我们为什么要全盘西化的原因，过<BR>去说是政治的原因特别强调并且挖苦和打击全盘西化，我希望说，现在可以一点了。<BR>问：我是北京大学的学生，我想问您，您是具有独立精神和批判精神的知识分子，与大众传<BR>媒的合作是否影响到了思考的独立性？<BR>李敖：谁影响谁，不错，我和人家合作，人家会对我有所照顾，或者在双方合作的时候会考<BR>虑对方的立场，但是必须说刘长乐先生是个怪人，他有招和一个本领，就是我打球一样打擦<BR>边球，就是很多话我们不能说的，他很技巧的让它说过去，而不出事，这是了不起的。<BR>我告诉大家，争取言论自由就是要用这种方法，就是你要说，说别人能够听得进去，中国有<BR>句老话，情于新，而词于巧，情拿出来是真的，可是词于巧，表达这些感情和事实的时候要<BR>讲求事实。<BR>问：李敖先生您好，非常有幸这次有机会给您提问，在今年的早些时候，敏瑞芳书记曾经提<BR>出一个观点，大概意思是说对于有反动言论的老师应该清出课堂，我想您对这样的观点有什<BR>么评价？<BR>李敖：我觉得作为大学一个特色，什么言论都敢接受，怎么可以叫反动言论呢，怎么可以有<BR>言论课堂呢，医学院里不也叫癌症吗，癌症这我们也要上，所以我们把它当成癌症来看，想<BR>出招来解决这是很重要的，所以我认为，在大学里面，没有什么说是可以害怕的，不能讲的<BR>，是不正确的。<BR>问：我相信您已经看到北大师生的热情了，我非常关心一个问题，您下一次什么时候来北大<BR>？您希望以什么形势与北大学生交流？<BR>李敖：你叫我来干嘛，当胡锦涛请我做北大校长的时候我就来了。<BR>问：李敖先生您好，我是北大学国际关系学院的学生，因为前不久国民党举行了党主席的直<BR>选，您在选举的前夜在王金平的大会上公开表示您不支持马英九作为国民党党主席，我问您<BR>，在马英九已经当选国民党党主席之，您认为他的政策会对两岸关系有什么影响，您对两岸<BR>关系的稳定和平发展有没有信心？<BR>李敖：我来北京就是怕谈台湾问题，果然这个问题就追上来了，我和你讲，这就是政治人物<BR>和思想人物的不同，马英九长了一个脸蛋，人也是一个好人，可是一辈子他不做事的人，我<BR>们叫他不粘锅，什么好事也不做，什么坏事也不做，就是笑嘻嘻的拉选票，很多票就这样给<BR>他的，所以我们认为能够做事的人是很重要的，摆个小脸蛋到处跑是不好的，所以我认为马<BR>英九干出了行了，他应该去演个电影或者做歌星都比较好，至少变个大色狼也比较好。<BR>问：李敖先生我非常尊重您，我对您刚刚那样说马英九先生好像不太公平，我想问一个文化<BR>的问题，您是怎样看待中国的屈原的文化？<BR>李敖：这就是典型的例子，我刚刚讲过了，去年属于我对政府不满，可是我的白打方法就是<BR>第一类的。所以我认为那是个弱者的表达，现在的人类要有不是弱者的表达，要用清醒的，<BR>理性的并且快乐一点的表达。<BR>我最后讲一个例子给大家听，我们都知道王安石，王安石是在中国的宁波做过官，他的小女<BR>儿很可怜，死在了那里，后来他调开了，临走的挖了一个小船，在对面的小船上和他的小女<BR>儿再见。“今夜扁舟来做别，此生从此各东西”。<BR>回家乡是好难的事情，大家看到唐朝人写诗，几乎有一半都是“天上明月光，疑时地上霜”<BR>，都是思故乡的，因为故乡对他们太遥远了，太难得了，为什么我现在说李敖我不还乡呢。<BR>我这次回来不是怀乡，没有乡愁，不是近乡没有情怯，不是还乡没有衣襟，没有眼泪，为什<BR>么我要这样，因为时代不该有乡愁，这是个错误的情趣，屈原有一个错误的情绪，他对政府<BR>是个错误的态度，我希望我们有一个健康快乐的心态来开创我们的未来，谢谢各位！<BR></P><EMBED id=MediaPlayer481 src=http://bbmedia.qq.com/media/news/200509/0921liaobeida1.wmv width=480 height=360 type=application/octet-stream autostart="true" loop="false"></EMBED> 
<P></P>]]></description>
</item>
</channel>
</rss>