﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-it</title><link>http://www.cnitblog.com/lby91772/</link><description>itc</description><language>zh-cn</language><lastBuildDate>Tue, 05 May 2026 00:03:20 GMT</lastBuildDate><pubDate>Tue, 05 May 2026 00:03:20 GMT</pubDate><ttl>60</ttl><item><title>PMP ISSUE</title><link>http://www.cnitblog.com/lby91772/archive/2009/06/22/59529.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Sun, 21 Jun 2009 22:09:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2009/06/22/59529.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/59529.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2009/06/22/59529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/59529.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/59529.html</trackback:ping><description><![CDATA[对顾客而 不是对老板，<a href="http://www.cnitblog.com/Files/lby91772/bayou.rar">对事而不是对人</a>175 163 130 102<br>项目经理角色顺序：指引、<a href="http:///Files/lby91772/bayou.rar">教练</a>、支持、委派<br>实验设计：各种相互因素对产品、结果、过程的影响<br>如果组织没有质量政策，和客户等一起制定然后由管理团队通知各个干系人、团队负责实施<br>风险应对完成后：1、添加工作任务 2、重新分析发现风险<br>对采购管理而言，价格是固定因素不存在风险<br>应急储备金包括风险应对成本、<br>一个承包商受雇建一个仓库，执行成本是1500美元、物料是6500美元，再加50%的奖励金，承包商在130小时内完成任务、实际物料成本是6200美元，承包商被支付了7850美元，这个项目使用的是那种合同 A CPFF&nbsp; B CPPC&nbsp; C FPIF&nbsp; D CPIF&nbsp;&nbsp; 费用或者叫做利润<br>FPIF 有最高价的限制、CPIF有最高费用的限制<br>资源直方图：某种资源随时间需要分配的工作时数。<br>对于培训或者服务性外包一般使用unit price 合同<br>工作说明书：目的战略产品 范围说明书：产品标准要求 要求说明书：符合工作的要求表格等<br>范围可以有WBS解释、支付产品或服务的总和。范围的完成是以项目计划<br>量级-50到100&nbsp;&nbsp; 预算估算-10到25（支持决策）&nbsp;&nbsp;&nbsp; 精确估算&nbsp; -5到10<br>方差越大风险越大&nbsp; 68&nbsp; 95&nbsp; 99.7&nbsp; 99.99<br>compromise&nbsp; smoothly 两种方式的异同<br>冲突来自&nbsp; 谈判三个来源 变更因素<br>产品实用性=可靠性和可维护性 重要测量指标<br>减少标准差衡量的随机偏差：改进生产系统<br>某一领域比如质量计划变更后要进行项目计划的变更<br>决定并交付所有求的质量水准是经理和管理团队的责任<br>经理：厉害关系者管理、双重责任管理、合同谈判中经理列席就技术质量等陈述<br>矩阵中管理汇报是经理，管理绩效是智能部门经理<br>合同谈判中特别关注非口头而不是书面正式<br>分解和活动定义的区别<br>识别后你要定量发起人要定性，你说你是专家，不建议定量。谁专业谁决定。<br>交了成果，客户没反应，记录并存档不对要向管理层求助<br>某项目具备以下特征、汇报2000.利润1000.项目成本800.生命期成本1200，项目收益成本比率是：2.5<br>如果乙方的工作很不满意，甲方可以终止和乙方的合作，另选一个<br>要为项目计划资源，应该使用RAM 而不是人力管理计划<br>完工预算、完工估算、完工尚需估算的区别<br>关键链=期限缓冲。资源平衡<br>活动-工作包-规划组合-控制账户&nbsp; 什么是控制账户 什么是规划组合<br>天气货物晚了2天，A采取纠正措施，降低影响 B审阅绩效确定关键路径的影响。选B 等于是新的风险<br>如果没有范围要求你工作，你应该怎么做？约见管理层陈述你面临的问题<br>收尾，所有过程完成，从而结束阶段或者项目<br>关键路径30天，管理层要求20天，那么关键路径期限如何变化？是不变的。采用赶工或跟进<br>人力规划限制：企业环境因素：组织、技术、人际、后勤保障、政治性制约公会谈判经济条件组织结构<br>情景题中，发起人和客户会对项目进行影响<br>为什么预算需要资源日历<br>关于采购文件的描述？<br>识别特性-记录变更-控制评审变更及状态<br>BAC最初估算有效 EV AC PV ETC EAC<br>刚接手一个项目，除了要看SPI CPI还要看WBS主要是考虑变更<br>海兹伯格无成就感时，缺少活力但不会流露出不满<br>一个变更可以不通过任何CCB的批准而自动进行在什么情况下：不是新法令而是紧急情况下的结果出现<br>过程组跨越阶段还是阶段跨越过程组&nbsp; 前者对<br>ADM PDM的区别 一个是活动位置一个是虚活动<br>变量抽样和属性抽样：变量规模小信息多但需要专业<br>项目的成功：预算内满足产品需求。&nbsp; 满足产品需求符合客户但项目不一定成功<br>满足需求（质量层面） 不等于 项目成功 项目管理就是要使项目成功<br>确认的缺陷补救、确认的交付物、推荐的缺陷补救措施是QC 只有控制才能决定。QA重改进和过程<br>
<img src ="http://www.cnitblog.com/lby91772/aggbug/59529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2009-06-22 06:09 <a href="http://www.cnitblog.com/lby91772/archive/2009/06/22/59529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>俞敏洪北大讲座</title><link>http://www.cnitblog.com/lby91772/archive/2009/04/12/56281.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Sun, 12 Apr 2009 05:07:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2009/04/12/56281.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/56281.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2009/04/12/56281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/56281.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/56281.html</trackback:ping><description><![CDATA[<p>各位同学、各位领导：&nbsp;&nbsp;&nbsp; 大家上午好！（掌声）<br>&nbsp;&nbsp;&nbsp; 非常高兴许校长给我这么崇高的荣誉，谈一谈我在北大的体会。（掌声）<br>&nbsp;&nbsp;&nbsp; 可以说，北大是改变了我一生的地方，是提升了我自己的地方，使我从一个农村孩子最后走向了世界的地方。毫不夸</p>
<p>张地说，没有北大，肯定就没有我的今天。北大给我留下了一连串美好的回忆，大概也留下了一连串的痛苦。正是在美好</p>
<p>和痛苦中间，在挫折、挣扎和进步中间，最后找到了自我，开始为自己、为家庭、为社会能做一点事情。<br>&nbsp;&nbsp;&nbsp; 学生生活是非常美好的，有很多美好的回忆。我还记得我们班有一个男生，每天都在女生的宿舍楼下拉小提琴，（笑</p>
<p>声）希望能够引起女生的注意，结果后来被女生扔了水瓶子。我还记得我自己为了吸引女生的注意，每到寒假和暑假都帮</p>
<p>着女生扛包。（笑声、掌声）后来我发现那个女生有男朋友，（笑声）我就问她为什么还要让我扛包，她说为了让男朋友</p>
<p>休息一下（笑声、掌声）。我也记得刚进北大的时候我不会讲普通话，全班同学第一次开班会的时候互相介绍，我站起来</p>
<p>自我介绍了一番，结果我们的班长站起来跟我说："俞敏洪你能不能不讲日语？"（笑声）我后来用了整整一年时间，拿着</p>
<p>收音机在北大的树林中模仿广播台的播音，但是到今天普通话还依然讲得不好。<br>&nbsp;&nbsp;&nbsp; 人的进步可能是一辈子的事情。在北大是我们生活的一个开始，而不是结束。有很多事情特别让人感动。比如说，我</p>
<p>们很有幸见过朱光潜教授。在他最后的日子里，是我们班的同学每天轮流推着轮椅在北大里陪他一起散步。（掌声）每当</p>
<p>我推着轮椅的时候，我心中就充满了对朱光潜教授的崇拜，一种神圣感油然而生。所以，我在大学看书最多的领域是美学</p>
<p>。因为他写了一本《西方美学史》，是我进大学以后读的第二本书。<br>&nbsp;&nbsp;&nbsp; 为什么是第二本呢？因为第一本是这样来的，我进北大以后走进宿舍，我有个同学已经在宿舍。那个同学躺在床上看</p>
<p>一本书，叫做《第三帝国的兴亡》。所以我就问了他一句话，我说："在大学还要读这种书吗？"他把书从眼睛上拿开，看</p>
<p>了我一眼，没理我，继续读他的书。这一眼一直留在我心中。我知道进了北大不仅仅是来学专业的，要读大量大量的书。</p>
<p>你才能够有资格把自己叫做北大的学生。（掌声）所以我在北大读的第一本书就是《第三帝国的兴亡》，而且读了三遍。</p>
<p>后来我就去找这个同学，我说："咱们聊聊《第三帝国的兴亡》"，他说："我已经忘了。"（笑声）<br>　　我也记得我的导师李赋宁教授，原来是北大英语系的主任，他给我们上《新概念英语》第四册的时候，每次都把板书</p>
<p>写得非常的完整，非常的美丽。永远都是从黑板的左上角写起，等到下课铃响起的时候，刚好写到右下角结束。（掌声）</p>
<p>我还记得我的英国文学史的老师罗经国教授，我在北大最后一年由于心情不好，导致考试不及格。我找到罗教授说："这</p>
<p>门课如果我不及格就毕不了业。"，罗教授说："我可以给你一个及格的分数，但是请你记住了，未来你一定要做出值得我</p>
<p>给你分数的事业。"（掌声）所以，北大老师的宽容、学识、奔放、自由，让我们真正能够成为北大的学生，真正能够得</p>
<p>到北大的精神。当我听说许智宏校长对学生唱《隐形的翅膀》的时候，我打开视频，感动得热泪盈眶。因为我觉得北大的</p>
<p>校长就应该是这样的。（掌声）<br>&nbsp;&nbsp;&nbsp; 我记得自己在北大的时候有很多的苦闷。一是普通话不好，第二英语水平一塌糊涂。尽管我高考经过三年的努力考到</p>
<p>了北大----因为我落榜了两次，最后一次很意外地考进了北大。我从来没有想过北大是我能够上学的地方，她是我心中一</p>
<p>块圣地，觉得永远够不着。但是那一年，第三年考试时我的高考分数超过了北大录取分数线七分，我终于下定决心咬牙切</p>
<p>齿填了"北京大学"四个字。我知道一定会有很多人比我分数高，我认为自己是不会被录取的。没想到北大的招生老师非常</p>
<p>富有眼光，料到了三十年后我的今天。（掌声）但是实际上我的英语水平很差，在农村既不会听也不会说，只会背语法和</p>
<p>单词。我们班分班的时候，五十个同学分成三个班，因为我的英语考试分数不错，就被分到了A班，但是一个月以后，我</p>
<p>就被调到了C班。C班叫做"语音语调及听力障碍班"。（笑声）<br>&nbsp;&nbsp;&nbsp; 我也记得自己进北大以前连《红楼梦》都没有读过，所以看到同学们一本一本书在读，我拼命地追赶。结果我在大学</p>
<p>差不多读了八百多本书，用了五年时间（掌声）。但是依然没有赶超上我那些同学。我记得我的班长王强是一个书癖，现</p>
<p>在他也在新东方，是新东方教育研究院的院长。他每次买书我就跟着他去，当时北大给我们每个月发二十多块钱生活费，</p>
<p>王强有个癖好就是把生活费一分为二，一半用来买书，一半用来买饭菜票。买书的钱绝不动用来买饭票。如果他没有饭菜</p>
<p>票了就到处借，借不到就到处偷。（笑声）后来我发现他这个习惯很好，我也把我的生活费一份为二，一半用来买书，一</p>
<p>半用来买饭菜票，饭票吃完了我就偷他的。（笑声掌声）<br>&nbsp;&nbsp;&nbsp; 毫不夸张地说，我们班的同学当时在北大，真是属于读书最多的班之一。而且我们班当时非常地活跃，光诗人就出了</p>
<p>好几个。后来挺有名的一个诗人叫西川，真名叫刘军，就是我们班的。（掌声）我还记得我们班开风气之先，当时是北大</p>
<p>的优秀集体，但是有一个晚上大家玩得高兴了，结果跳起了贴面舞，第二个礼拜被教育部通报批评了。那个时候跳舞是必</p>
<p>须跳得很正规的，男女生稍微靠近一点就认为违反风纪。所以你们现在比我们当初要更加幸福一点。不光可以跳舞，而且</p>
<p>可以手拉手地在校园里面走，我们如果当时男女生手拉手在校园里面走，一定会被扔到未名湖里，所以一般都是晚上十二</p>
<p>点以后再在校园里面走。（笑声掌声）<br>&nbsp;&nbsp;&nbsp; 我也记得我们班五十个同学，刚好是二十五个男生二十五个女生，我听到这个比例以后当时就非常的兴奋（笑声），</p>
<p>我觉得大家就应该是一个配一个。没想到女生们都看上了那些外表英俊潇洒、风流倜傥的男生。像我这样外表不怎么样，</p>
<p>内心充满丰富感情、未来有巨大发展潜力的，女生一般都看不上。（笑声掌声）<br>&nbsp;&nbsp;&nbsp; 我记得我奋斗了整整两年希望能在成绩上赶上我的同学，但是就像刚才吕植老师说的，你尽管在中学高考可能考得很</p>
<p>好，是第一名，但是北大精英人才太多了，你的前后左右可能都是智商极高的同学，也是各个省的状元或者说第二名。所</p>
<p>以，在北大追赶同学是一个非常艰苦的过程，尽管我每天几乎都要比别的同学多学一两个小时，但是到了大学二年级结束</p>
<p>的时候我的成绩依然排在班内最后几名。非常勤奋又非常郁闷，也没有女生来爱我安慰我。（笑声）这导致的结果是，我</p>
<p>在大学三年级的时候得了一场重病，这个病叫做传染性侵润肺结核。当时我就晕了，因为当时我正在读《红楼梦》，正好</p>
<p>读到林黛玉因为肺结核吐血而亡的那一章，（笑声）我还以为我的生命从此结束，后来北大医院的医生告诉我现在这种病</p>
<p>能够治好，但是需要在医院里住一年。我在医院里住了一年，苦闷了一年，读了很多书，也写了六百多首诗歌，可惜一首</p>
<p>诗歌都没有出版过。从此以后我就跟写诗结上了缘，但是我这个人有丰富的情感，但是没有优美的文笔，所以终于没有成</p>
<p>为诗人。后来我感到非常的庆幸，因为我发现真正成为诗人的人后来都出事了。我们跟当时还不太出名的诗人海子在一起</p>
<p>写过诗。后来他写过一首优美的诗歌，叫做《面朝大海，春暖花开》，我们每一个同学大概都能背。后来当我听说他卧轨</p>
<p>自杀的时候，嚎啕大哭了整整一天。从此以后，我放下笔，再也不写诗了。（掌声）<br>&nbsp;&nbsp;&nbsp; 记得我在北大的时候，到大学四年级毕业时，我的成绩依然排在全班最后几名。但是，当时我已经有了一个良好的心</p>
<p>态。我知道我在聪明上比不过我的同学，但是我有一种能力，就是持续不断的努力。所以在我们班的毕业典礼上我说了这</p>
<p>么一段话，到现在我的同学还能记得，我说："大家都获得了优异的成绩，我是我们班的落后同学。但是我想让同学们放</p>
<p>心，我决不放弃。你们五年干成的事情我干十年，你们十年干成的我干二十年，你们二十年干成的我干四十年"。（掌声</p>
<p>）我对他们说："如果实在不行，我会保持心情愉快、身体健康，到八十岁以后把你们送走了我再走。"（笑声掌声）<br>&nbsp;&nbsp;&nbsp; 有一个故事说，能够到达金字塔顶端的只有两种动物，一是雄鹰，靠自己的天赋和翅膀飞了上去。我们这儿有很多雄</p>
<p>鹰式的人物，很多同学学习不需要太努力就能达到高峰。很多同学后来可能很轻松地就能在北大毕业以后进入哈佛、耶鲁</p>
<p>、牛津、剑桥这样的名牌大学继续深造。有很多同学身上充满了天赋，不需要学习就有这样的才能，比如说我刚才提到的</p>
<p>我的班长王强，他的模仿能力就是超群的，到任何一个地方，听任何一句话，听一遍模仿出来的绝对不会两样。所以他在</p>
<p>北大广播站当播音员当了整整四年。我每天听着他的声音，心头咬牙切齿充满仇恨。（笑声）所以，有天赋的人就像雄鹰</p>
<p>。但是，大家也都知道，有另外一种动物，也到了金字塔的顶端。那就是蜗牛。蜗牛肯定只能是爬上去。从低下爬到上面</p>
<p>可能要一个月、两个月，甚至一年、两年。在金字塔顶端，人们确实找到了蜗牛的痕迹。我相信蜗牛绝对不会一帆风顺地</p>
<p>爬上去，一定会掉下来、再爬、掉下来、再爬。但是，同学们所要知道的是，蜗牛只要爬到金字塔顶端，它眼中所看到的</p>
<p>世界，它收获的成就，跟雄鹰是一模一样的。（掌声）所以，也许我们在座的同学有的是雄鹰，有的是蜗牛。我在北大的</p>
<p>时候，包括到今天为止，我一直认为我是一只蜗牛。但是我一直在爬，也许还没有爬到金字塔的顶端。但是只要你在爬，</p>
<p>就足以给自己留下令生命感动的日子。（掌声）<br>&nbsp;&nbsp;&nbsp; 我常常跟同学们说，如果我们的生命不为自己留下一些让自己热泪盈眶的日子，你的生命就是白过的。我们很多同学</p>
<p>凭着优异的成绩进入了北大，但是北大绝不是你们学习的终点，而是你们生命的起点。在一岁到十八岁的岁月中间，你听</p>
<p>老师的话、听父母的话，现在你真正开始了自己的独立生活。我们必须为自己创造一些让自己感动的日子，你才能够感动</p>
<p>别人。我们这儿有富裕家庭来的，也有贫困家庭来的，我们生命的起点由不得你选择出生在富裕家庭还是贫困家庭，如果</p>
<p>你生在贫困家庭，你不能说老爸给我收回去，我不想在这里待着。但是我们生命的终点是由我们自己选择的。我们所有在</p>
<p>座的同学过去都走得很好，已经在十八岁的年龄走到了很多中国孩子的前面去，因为北大是中国的骄傲，也可以说是世界</p>
<p>的骄傲。但是，到北大并不意味着你从此大功告成，并不意味着你未来的路也能走好，后面的五十年、六十年，甚至一百</p>
<p>年你该怎么走，成为了每一个同学都要思考的问题。就本人而言，我觉得只要有两样东西在心中，我们就能成就自己的人</p>
<p>生。<br>&nbsp;&nbsp;&nbsp; 第一样叫做理想。我从小就有一种感觉，希望穿越地平线走向远方，我把它叫做"穿越地平线的渴望"。也正是因为这</p>
<p>种强烈的渴望，使我有勇气不断地高考。当然，我生命中也有榜样。比如我有一个邻居，非常的有名，是我终生的榜样，</p>
<p>他的名字叫徐霞客。当然，是五百年前的邻居。但是他确实是我的邻居，江苏江阴的，我也是江苏江阴的。因为崇拜徐霞</p>
<p>客，直接导致我在高考的时候地理成绩考了九十七分。（掌声）也是徐霞客给我带来了穿越地平线的这种感觉，所以我也</p>
<p>下定决心，如果徐霞客走遍了中国，我就要走遍世界。而我现在正在实现自己这一梦想。所以，只要你心中有理想，有志</p>
<p>向，同学们，你终将走向成功。你所要做到的就是在这个过程要有艰苦奋斗、忍受挫折和失败的能力，要不断地把自己的</p>
<p>心胸扩大，才能够把事情做得更好。&nbsp; <br>&nbsp;&nbsp;&nbsp; 第二样东西叫良心。什么叫良心呢？就是要做好事，要做对得起自己对得起别人的事情，要有和别人分享的姿态，要</p>
<p>有愿意为别人服务的精神。有良心的人会从你具体的生活中间做的事情体现出来，而且你所做的事情一定对你未来的生命</p>
<p>产生影响。我来讲两个小故事，讲完我就结束我的讲话，已经占用了很长的时间。<br>&nbsp;&nbsp;&nbsp; 第一个小故事。有一个企业家和我讲起他大学时候的一个故事，他们班有一个同学，家庭比较富有，每个礼拜都会带</p>
<p>六个苹果到学校来。宿舍里的同学以为是一人一个，结果他是自己一天吃一个。尽管苹果是他的，不给你也不能抢，但是</p>
<p>从此同学留下一个印象，就是这个孩子太自私。后来这个企业家做成功了事情，而那个吃苹果的同学还没有取得成功，就</p>
<p>希望加入到这个企业家的队伍里来。但后来大家一商量，说不能让他加盟，原因很简单，因为在大学的时候他从来没有体</p>
<p>现过分享精神。所以，对同学们来说在大学时代的第一个要点，你得跟同学们分享你所拥有的东西，感情、思想、财富，</p>
<p>哪怕是一个苹果也可以分成六瓣大家一起吃。（掌声）因为你要知道，这样做你将来能得到更多，你的付出永远不会是白</p>
<p>白付出的。<br>&nbsp;&nbsp;&nbsp; 我再来讲一下我自己的故事。在北大当学生的时候，我一直比较具备为同学服务的精神。我这个人成绩一直不怎么样</p>
<p>，但我从小就热爱劳动，我希望通过勤奋的劳动来引起老师和同学的的注意，所以我从小学一年级就一直打扫教室卫生。</p>
<p>到了北大以后我养成了一个良好的习惯，每天为宿舍打扫卫生，这一打扫就打扫了四年。所以我们宿舍从来没排过卫生值</p>
<p>日表。另外，我每天都拎着宿舍的水壶去给同学打水，把它当作一种体育锻炼。大家看我打水习惯了，最后还产生这样一</p>
<p>种情况，有的时候我忘了打水，同学就说"俞敏洪怎么还不去打水"。（笑声）。但是我并不觉得打水是一件多么吃亏的事</p>
<p>情。因为大家都是一起同学，互相帮助是理所当然的。同学们一定认为我这件事情白做了。又过了十年，到了九五年年底</p>
<p>的时候新东方做到了一定规模，我希望找合作者，结果就跑到了美国和加拿大去寻找我的那些同学，他们在大学的时候都</p>
<p>是我生命的榜样，包括刚才讲到的王强老师等。我为了诱惑他们回来还带了一大把美元，每天在美国非常大方地花钱，想</p>
<p>让他们知道在中国也能赚钱。我想大概这样就能让他们回来。后来他们回来了，但是给了我一个十分意外的理由。他们说</p>
<p>："俞敏洪，我们回去是冲着你过去为我们打了四年水。"（掌声）他们说："我们知道，你有这样的一种精神，所以你有</p>
<p>饭吃肯定不会给我们粥喝，所以让我们一起回中国，共同干新东方吧。"才有了新东方的今天。（掌声）<br>&nbsp;&nbsp;&nbsp; 人的一生是奋斗的一生，但是有的人一生过得很伟大，有的人一生过得很琐碎。如果我们有一个伟大的理想，有一颗</p>
<p>善良的心，我们一定能把很多琐碎的日子堆砌起来，变成一个伟大的生命。但是如果你每天庸庸碌碌，没有理想，从此停</p>
<p>止进步，那未来你一辈子的日子堆积起来将永远是一堆琐碎。所以，我希望所有的同学能把自己每天平凡的日子堆砌成伟</p>
<p>大的人生。（掌声）<br>&nbsp;&nbsp;&nbsp; 最后，我代表全体老校友向在座的三千多位新生表一个心意，我代表全体老校友和新东方把两百万人民币捐给许校长</p>
<p>，为在座同学们的学习、活动和成长提供一点帮助。（掌声）</p>
<img src ="http://www.cnitblog.com/lby91772/aggbug/56281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2009-04-12 13:07 <a href="http://www.cnitblog.com/lby91772/archive/2009/04/12/56281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>看电影学英语</title><link>http://www.cnitblog.com/lby91772/archive/2009/04/12/56280.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Sun, 12 Apr 2009 05:05:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2009/04/12/56280.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/56280.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2009/04/12/56280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/56280.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/56280.html</trackback:ping><description><![CDATA[<p>看电影学外语四步曲 </p>
<p>第一步：硬着头皮看电影。在看一部新电影之前，千万不要看剧本，看不懂也要硬着头皮上，至少能对情节有所了解。 </p>
<p>第二步：边看电影边研读剧本。不要以为考完了托福、GRE等就可以应付一切阅读。实际上，电影中的有些对话看起来很</p>
<p>费劲，里面充斥着习惯用法和美国人独有的思维方式，要多看多听，才能适应它。 </p>
<p>第三步：反复精听。争取听懂每一个单词，可以采取听写的方法。 </p>
<p>第四步：背诵。一开始可以用中文思考美国人的逻辑思维，边思考边背诵，大约坚持10天左右。之后可以大体上用英文思</p>
<p>考，把美国人的逻辑慢慢变为自己的了。背诵时重视模仿。 </p>
<p>很偶然，在一次考试后我看了一盘原文的《黑衣人》VCD，里面有大量的非常诙谐的英文对白，这让我在笑得前仰后合之</p>
<p>余突然对英语产生了很大的兴趣。由于电影里运用了大量的美国本土俚语，为此我还专门买了一本俚语词典。也是巧合，</p>
<p>那段时间我接着看了好几部欧美的喜剧片，台词中那种对英语异常熟练的驾驭，不断涌现的轻松幽默的谈吐以及演员精湛</p>
<p>的演出，让我对英语的兴趣大幅度提升。从这以后我保留了看原文电影的习惯；所以我的绝招就是看电影学英语。 </p>
<p>1000,000</p>
<p>无庸赘言，这种方法最大的好处就是可以锻炼听力。这种电影听力不像听磁带那样干巴巴的，你可以通过事件发展的逻辑</p>
<p>推理，感觉到台词的意思，或者可以多看几遍电影，熟知内容后对台词自然就有感觉了。 </p>
<p>在词汇学习上，你可以将词汇的用法做详尽的分析，挖掘词语的深层含义，对词汇有一个全方位的认识，而不仅仅停留在</p>
<p>"就词论词"上。例如《阿甘正传》中，阿甘在表达自己极爱吃巧克力时说，自己可以吃下"一百五十万块巧克力"，I </p>
<p>could eat a bout a million and a half of these. "million"一词在本句中是大量的意思，而并非说阿甘有过人之处</p>
<p>，通过对"million"用法的分析，我对美国人的日常用语中用夸张的语气表示数量多的用法，有了一个更直观的了解。 </p>
<p>另外，电影是文化的传播者，无论是故事的叙述，情节的发展以及人物关系的变迁都有着很多和中式思维不太相同的地方</p>
<p>，而这些通过语言表达出来的文化差异，却不能仅仅用语言分析透彻，这就需要我们对西方文化，尤其是美国文化的一些</p>
<p>特点加以了解，在了解的基础上再逐点分析，不断地加以总结，用心体会东西方价值观念的不同，以及由此产生的思维方</p>
<p>式的差异，通过对西方历史文化等方面的综合理解，将语言上升到真正意义上的交流，让英语"活"起来。 </p>
<p>当然，学外语也不能把精力全放到看电影上，这只能是一种学习的辅助方法。更重要的还是要你自己下工夫努力学习，我</p>
<p>所强调的不过就是在学习里加上一些快乐和兴趣，毕竟让学习很快乐是一件幸福的事。 </p>
<p>时下非常流行的一种学习方法是看电影学英语。通过电影能够掌握常用的口语句型，更重要的是学生可以通过电影情节非</p>
<p>常容易的理解这种句型的适用语境，以至于有的人认为看好几部电影就能够学好英语口语了。然而，大部分学员在通过电</p>
<p>影学习英语过程中有很大的随意性和盲目性，更多的时候是在看电影而不是在学习。作为北文英语学校英文电影赏析课的</p>
<p>设计者和主要操作者，本人对此有一些看法，希望能够对广大学员有所帮助。 </p>
<p>利用英文电影学习英语应该从硬件设施，电影选择，以及看片方法等多个方面加以注意。 </p>
<p>首先，看英文电影最好做好物质准备。最好能够利用DVD影碟机或者电脑的DVD光驱。这一点尤其重要，因为DVD具有能够</p>
<p>轻易调入调出字幕，中英文字幕随意切换的优点，这一点是VCD或者RM格式所难以达到的。绝大多数学员在看电影的过程</p>
<p>中都离不开字幕的帮助。如果条件上不具备大家可以上网下载一些电影的DVD drip，另外再去一些字幕网站寻找这个电影</p>
<p>的中英文字幕文件就是了。 </p>
<p>适当的英文电影的选择可以说决定了学习效果的好坏，对于初级学员，我建议大家选择电影的时候以题材轻松、内容简单</p>
<p>、画面对语言说明作用强为原则。这样有助于大家通过电影的画面情节猜出语言的含义，避免学习中因听不懂、看不懂而</p>
<p>去寻求字典等其他手段帮助而导致的疲劳现象。推荐电影：Sound of Music, Finding Nemo, Lion King， Beauty and </p>
<p>Beast 等等 </p>
<p>中级水平的学员除了学习语言本身外，更要提高对英语文化背景知识的了解。因此选择一些历史题材的影片进行学习非常</p>
<p>重要。推荐电影：Forest Gump， Heaven Earth, Troy, Patriot, Brave Heart, Gone With the Wind 等等。 </p>
<p>对自己的水平比较有信心的同学可以选择Sex and the City, Friends 等等时下比较流行的肥皂剧，通过剧情学习一些比</p>
<p>较地道的口语表达，让自己的英语显得更加的地道。 </p>
<p>在英国几年下来，平均每年要在电影院里看20部左右的电影，最多的时候，一个月看了5部。尤其近年来新片大片不断，</p>
<p>而且买两张学生票的价格比国内一个人看场电影还要便宜，所以好电影自然不容错过。 </p>
<p>但是，电影看得精彩，语言却经常是个障碍。自然生活对话的语速，抢白时快急得台词，而且在美国电影中还有大量的本</p>
<p>土俚语，都是会令人沮丧的因素。如何将那些对话听得明白呢？如何理解那些经常出现的俚语呢？如何意会英语中不同于</p>
<p>中文的幽默呢？在这里浅谈几点经验，希望能抛砖引玉。 </p>
<p>首先看英文原版的电影能够锻炼听力，从而提高英语的听力水平，应该是大家都承认的。所以从基础来讲，你必须有一定</p>
<p>的单词量，尤其是对英语中千变万化的词组要尽可能的学习和了解。因为在日常生活中，你会发现英国人最喜欢用的大多</p>
<p>是词组的灵活搭配，从而来体现细腻的神情或动作描写。那么这在看电影的时候，就已经起了相当大的作用。 </p>
<p>那么是否要很大的词汇量和词组量才能看懂电影呢？答案是否定的。雅思的词汇量可能大家都知道，而只要具备雅思的词</p>
<p>汇量，照笔者看来，就已经足够能看懂电影了。尤其在电影院里，坐在英国本地人中间，很多电影外的因素本身就会大大</p>
<p>的帮助你融入到电影的情节之中。譬如说，对很多学生来讲，看喜剧片非常困难，因为涉及到对词组潜台词的理解以及文</p>
<p>化背景的限制。但是，当别的观众笑的时候，你已经得到了一个完全充分的信号和理由说，刚才的对白和台词是一段幽默</p>
<p>。那么时间一久，看电影时对语言的信心就会大大增加了。 </p>
<p>另外一些小的技巧也值得一提： </p>
<p>1．看电影前一定先看懂它的介绍，并且对其情节有一定的掌握。对介绍中的生词和词组预先查字典了解中文的大致函（</p>
<p>注：经常中文不好翻或不准确对有些词的应用）。 </p>
<p>2．看电影时，抓住关键字词。这一点很重要，经常在为一句台词没听懂而发愁时，你可能又错过了一句能帮助你理解上</p>
<p>一句台词含义的句子。所以，如果你的词汇量不是很大，记住，对理解电影起重要作用的是出现在影片中的：人名，地名</p>
<p>，形容人或事件的形容词，动词或短语等。 </p>
<p>3．如果是系列电影的话，如指环王，哈利波特，看电影前先看他们的小说也会大大帮助对电影的理解。当然这里的小说</p>
<p>是指英文原版的。 <br>那么，看懂电影够了吗？答案还是否定的。我们从电影中要得到的可能除了娱乐放松外，还有真正的想过把瘾-让电影感</p>
<p>染你。很多好的电影通过画面和音乐就做到这一点了，但是力求上进的你，不是想把文字在台词中的如何运用也了解一下</p>
<p>吗？如果是的话，这就是看电影时语言给我们的最大挑战了。不过不用担心的是，你已经有相当的词汇量，对俚语也有些</p>
<p>基础，看电影时的信心也和以前不同了。所以我的经验是，用最基本的方法，让自己有一个质的飞跃。是什么呢？笔记。</p>
<p>对，这可能是让本文读者有些失望，这么老的方法！但是很管用。好记性不如烂笔头。当你把经常错过的，听不懂的，常</p>
<p>用的语言句子词组写在本本上，经过十来部电影后，你会马上体会到这个方法会带给你得巨大收获。当然这不能在电影院</p>
<p>里进行，通常电视机上有字幕的电影是最好的。以后到电影院里看电影的时候，你就甚至可以和同去的伙伴解释他们没听</p>
<p>懂的台词了。 </p>
<p>好了，就让我们在英国，看电影，学英语，找乐趣。 </p>
<p>在语言环境中耳濡目染，才能真正&#8220;活学&#8221;，掌握语音、词汇、句型、思维和文化；在语言环境中入乡随俗，也才能真正&#8220;</p>
<p>活用&#8221;，达到理解和表达、交流和沟通。但是中国人在跟电影学英语时，多数人走入只看不听，或只听不看；只泛不精，</p>
<p>或只精不泛的误区，以致看了一些英文电影，但是听和说却没有本质的提高。 </p>
<p>但是学好英语，又必须从听说入手。因为学习英语听说可以使英语不再是望而生畏、死气沉沉的学问，而成为妙趣横生、</p>
<p>鲜活灵动的实践。但是学习听说不等于&#8220;习得听说&#8221;，美籍华人的英语好是因为具备了&#8220;习得听说&#8221;的必要条件：英语环境。</p>
<p>但是我们没有条件，可以创造条件，比如看美国电影和情景喜剧，有意识地给自己营造出一种国外的英语环境强迫自己用</p>
<p>耳朵接受英语，同时开口说英文，就能在轻松、愉快的氛围中&#8220;习得听说&#8221;。 </p>
<p>英语听说包括语音、语调节奏、用词、句式、思维和文化六部分。首先，对于任何一门语言，语音是基础，它不仅包括单</p>
<p>词的发音，还包括真实交际中词汇、习语的连读、失爆、弱化、浊化、重音、缩读等许多音变形式。至于语调节奏，则是</p>
<p>地道流利表达英语的润滑剂，没有接触过地道的老外，没有和他们有过面对面的交谈，是很难感受到语调节奏在表达思想</p>
<p>中的巨大作用和强大震撼力的。语言是文化的载体，用词和句式的正确与否直接体现了对异国文化了解的程度。可以说，</p>
<p>达到前三者就达到了与美国人的形似，若是又学会了美国人的思维和文化，能够用美国文化思维则可达到神似的效果。这</p>
<p>就是立体英语教育模式，电影则是最好的媒介。 </p>
<p>做到语言、文化双丰收。1、融入原则：不要把自己看成旁观者，而要是当成局内人看待，要与角色同呼吸、共命运，产</p>
<p>生场景感觉。2、突破原则：关键在于模仿，模仿不能离开背诵，熟练直到能脱口而出。3、扩展原则：首先要在词汇和句</p>
<p>式层面上扩展；其次是在此基础上，&#8220;泛看&#8221;电影，电影题材可以不受很大限制，但每部影片都至少要看三遍以上。4、挖</p>
<p>掘原则：此时不能仅限于看懂表面意思，而是要透过现象看本质，去挖掘语言背后深刻的文化内涵，变被动为主动，以此</p>
<p>达到听说的最高境界。周宁人暑期看电影学地道英语身临其境的快感英语听说六要素影视学习四原则影视选材原则1、生</p>
<p>活类影片：这是最好的语言素材，向大家推荐的书目有：初级———《情归巴黎》、中级———《阿甘正传》、《西雅图不眠夜</p>
<p>》、《漂亮女人》、高级———《旅行冒险记》2、美国情景喜剧：代表作是七、八年前在电视上播出的那部《成长的烦恼》</p>
<p>，当代最流行的有《森弗一家》、《朋友》等，更多内容可参看：《美国&#8220;情景喜剧&#8221;俚语百分百》。</p>
<p>首先、确定你自己的英语水平。中国大学毕业生的通病是，书面阅读还可以，口语不行，听力很差，书写凑合。但每个人</p>
<p>具体情况又都不一样，有人阅读专业书一目十行，但读报纸很费劲。有人听新闻可以，听别的不行。你必须首先了解自己</p>
<p>，然后针对你的情况对症下药。 <br>这种评估工作最好找英语好的人帮你做，如果不方便，只能自己评自己，就要尽量做到客观。 <br>其次、确定自己的发音水平。我有个朋友对我说他的发音没问题，可实际上他说得很多词我都听不懂。 <br>你学的是英国音还是美国音都无所谓，反正最终从你嘴里出来的肯定是中国音。最重要的是发音要合理。英语每一个单词</p>
<p>都有自己的念法，你不能凭空想象。比如，有人把RESUME读做RE-SOOM，这样，别人说RE-SIU-MAY，你不知道是什么。你</p>
<p>念RE-SOOM，别人也听不懂。 <br>再次、确定自己的英语学习目标。我这里仅把口语交流做为目标。 <br>最后、开始学习。 <br>1、口语学习的关键是要模仿人家的说话。这包括语音和语调两部分。中国英语教学重视语调的很少，尽管很多时候语调</p>
<p>可能比语音更重要。 <br>2、买一台录音机，找一合磁带。根据你的水平，可以选择新概念第二或第三册，也可以到图书馆借一套有书和磁带的小</p>
<p>故事集。注意：一定要有书，故事篇幅不能太长，生词量要小，过于简单没有关系。 <br>我倾向于使用故事，而不是对话或新闻听力材料。 <br>3、进行跟读训练。放磁带，看着书，搞明白每一个单词的意思，理解整个故事情节。然后，放一句，暂停，学着人家读</p>
<p>一句，然后，放下一句，暂停，再学一句，继续。 <br>4、跟读过程中要注意的几点：一定要尽力模仿发音和语调，越象越好。 <br>开始时速度可以比较慢，要逐步使自己跟上人家的速度。中间可以回倒重放，但我倾向于让大家完成一小段后再回去重来</p>
<p>。 <br>5、同步阅读。当你对文章发音、语调完全掌握之后，就要在放录音的同时同步跟读。争取让自己的声音与他完全重合。</p>
<p>注意语调和语音。如果中间有结巴的地方也不要紧，继续读下去，然后再回来重读。 <br>6、关掉录音机，朗诵课文。注意使用学到的语音语调。 <br>带滚瓜烂熟之后，可以进入下一篇课文。 <br>这样，一两个月之后，当你&#8220;精读&#8221;过五到十篇约一千字篇幅的文章之后，你会发现你的英语发音和听力有了明显的进步。 <br>再配合其他学习，如与人聊天，看电视，听广播，等等，口语水平会得到显著提高。 <br></p>
<img src ="http://www.cnitblog.com/lby91772/aggbug/56280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2009-04-12 13:05 <a href="http://www.cnitblog.com/lby91772/archive/2009/04/12/56280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>富士康</title><link>http://www.cnitblog.com/lby91772/archive/2009/04/12/56279.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Sun, 12 Apr 2009 05:04:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2009/04/12/56279.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/56279.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2009/04/12/56279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/56279.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/56279.html</trackback:ping><description><![CDATA[<p>郭台铭手谕曝光：富士康航母急刹车</p>
<p>深圳的龙华镇和观澜镇，50栋曾经住过数万富士康员工的宿舍楼，如今已人去楼空。</p>
<p>这家赫赫有名的台资消费电子加工制造业航母，正遭遇历史上前所未有的衰退。在此之前，富士康经历连续三年的急速增</p>
<p>长，曾经创下一周内新招8000人的公司最高纪录，并使旗下生产基地遍布国内16个城市。</p>
<p>&#8220;风暴来袭&#8221;</p>
<p>8月底，在香港上市的富士康国际控股（FoxconnInternationalHoldings，简称FIH，2038.HK）公布了2008年上半年业绩</p>
<p>报告：净利润1.42亿美元，同比大幅减少56.1%。该公司2007年净利润7.214亿美元，2006年为7.18亿美元。</p>
<p>据说在准备这份财务报表时，富士康总财务长黄秋莲大感头疼，彻夜难眠，因为她预见到结果将令人相当难堪。</p>
<p>早在半年前，富士康员工内部甚至有传言&#8220;公司第一季度盈利只有区区8万美元！&#8221;这一说法过于惊人而且无从证实，但一</p>
<p>度为母公司鸿海集团贡献30%以上利润的FIH，今年以来业务的迅速下滑却是难以回避的现实。</p>
<p>与此同时，郭台铭掌控的鸿海集团旗下各上市公司表现也差强人意。台湾鸿海精密工业股份有限公</p>
<p>司（HonHaiPrecisionIndustryCo.，简称鸿海精密，2317.TW）今年上半年净利润同比下降10%，建汉科技（3062.TW）净</p>
<p>利润下降46%。</p>
<p>深圳，是富士康中国总部及规模最大的生产基地所在，从1996年开始，作为这艘逐渐成形的制造业航母的引擎，深圳基地</p>
<p>一直处于加速运转状态，仅龙华和观澜两个厂区，就聚集了工人30多万。但2007年下半年起，观澜厂区首先出现了异常的</p>
<p>波动迹象。</p>
<p>富士康一位知情人士透露，观澜厂区主要是为苹果公司做代工生产，但后者的新订单并未如预期那样继续增长，人力资源</p>
<p>部门不得不通过停止招工和人员的自然淘汰，逐步缩减掉工人数量。该厂区正是富士康2005年扩张最为猛烈时所开建。</p>
<p>富士康内部的有心人早已感觉到山雨欲来之时的丝丝凉意，不过当老板郭台铭亲自出面承认危机来临时，还是令他们震动</p>
<p>不已。</p>
<p>7月28日，富士康10大事业群主管和人力资源主管，收到了刚刚在台湾君悦酒店举行盛大婚礼的郭台铭签署的警示手谕。</p>
<p>在这份手谕中，郭台铭直言&#8220;风暴已经来袭&#8221;。他要求旗下各事业群要在开源方面做到选对客户、选对产品，加强市场行销</p>
<p>以扩大市场占有率。更重要的是，他特别要求各事业群主管和人力资源部门，严格执行节流策略，即人力冻结，扩厂冻结</p>
<p>，提升效率，加强训练，改善提案，节省费用20%。最后，郭台铭还将节流的任务分解到每一个季度：从2008年第四季度</p>
<p>起一年内完成20%的节流，每个季度降低费用5%。手谕的最后落款是郭台铭的英文签名。</p>
<p>&#8220;富士康现在需要不断地输血，已经不再是以前的现金母牛了。&#8221;一位知情人士称。</p>
<p>三年&#8220;跃进&#8221;</p>
<p>走进戒备森严的深圳富士康龙华厂区大门，就像置身于一座设施完善的城市。在这座&#8220;城市&#8221;里，每天都有30多万人在不同</p>
<p>的时段里活动。每逢交接班，身穿蓝色工服的男工和红色工服的女工，如潮水一般在厂区大门出入口处汇集和散去，熙熙</p>
<p>攘攘数小时不断，现场蔚为壮观。</p>
<p>富士康所有厂房以白色为基调。无论是历史较长的龙华厂区还是2005年才开建的观澜厂区，都有一座座五六层楼高的白色</p>
<p>厂房，外立面上布满各种形状的裂纹。&#8220;这是富士康特有的印象派艺术。&#8221;富士康内部员工这样戏谑说。</p>
<p>事实上，厂区里这些随处可见的&#8220;印象派艺术&#8221;，不过是勾补厂房外表裂缝的水泥痕迹。据员工介绍，厂房结构上没有什么</p>
<p>问题，只是当初建设时工期催得太紧，还没等墙体完全干透就刷上外面的涂料，立即安装生产线投入生产，以应付纷至沓</p>
<p>来的订单。换言之，它们都是过去两三年富士康超高速发展最有力的证据。</p>
<p>凡是2003年时就已加入富士康的员工，都对公司那一段疯狂扩张的劲头感到惊讶。2003年底，富士康龙华厂区员工不过五</p>
<p>六万人，经过2005、2006及2007上半年的翻番增长，最高峰的时候其深圳两大厂区总共有30多万员工。</p>
<p>老员工们回忆，整个龙华镇一带可用的楼房都被租完了，有时候公司还将一整个工业园区全部租下来，24小时加班在厂房</p>
<p>内加装灯管和卫生间，搭建上下铺，改造为员工宿舍。新招聘的工人们可能会先在铺了凉席的地上睡一晚，等第二天床安</p>
<p>装好了，就从通铺搬到床上。有一段时间，租房的速度实在赶不上员工的扩招速度，上下铺被改造成了3层的床铺来应急</p>
<p>。</p>
<p>一周内新招8000人，这是急速扩张年代的富士康曾经创下的最高招聘纪录。</p>
<p>高潮已过？</p>
<p>富士康发展最快的三年，正是世界经济增长最好的三年。在此大环境下，全球消费类电子市场一片繁荣。</p>
<p>然而，风云突变。今年上半年，富士康深圳龙华、观澜两个厂区外租的宿舍越来越多地退租，因为要重新编排分配，部分</p>
<p>一线员工不到半年里已搬过好几次宿舍了。据估计这段时间内富士康已退掉将近50栋楼房，里面曾住满几万人。</p>
<p>负责富士康内部土建工程的营建处，曾是最繁忙的部门之一：没完没了的项目等着他们去安排处理，接待室里挤满了盼望</p>
<p>分一杯羹的承包商，连那架复印机也一刻不停地工作，&#8220;吐出&#8221;外包工程所需的各种文件。但如今这栋绿树掩映下的平房内</p>
<p>外却显得格外冷清。</p>
<p>&#8220;工程都停了，没事做了。&#8221;习惯忙碌的营建处员工，突然闲下来后似乎有点不适应。</p>
<p>2000年，富士康杀入手机代工领域，2003年营业额即突破100亿美元，2004年营业额增长61%，2005年再增长65%，一举成</p>
<p>为全球最大的手机代工厂。2006年，其营业额突破了400亿美元，并坐上了全球最大数码相机模块代工厂的宝座。</p>
<p>2007年，富士康营业额虽然超过500亿美元，但年增长率仅略高于30%，已由前三年平均水平回落一半。这也是1996年富士</p>
<p>康成立以来最低的增长率。</p>
<p>据三星经济研究院中国研究中心统计，2007年富士康中国大陆员工达75万人之多，所代工产品线覆盖电脑、手机、网络通</p>
<p>讯设备、液晶显示器以及游戏主机等。</p>
<p>而根据一份统计截止日期为2008年7月25日的富士康内部文件显示，富士康10大事业群在中国大陆的员工为65万</p>
<p>人，与2007年相比，整整减少了10万人。有可靠资料表明，深圳一地就缩编了近4万人。</p>
<p>富士康遭遇&#8220;十面埋伏&#8221;</p>
<p>对于郭台铭来说，富士康这艘开足马力全速冲刺已超过5年的制造航母所面临的最大考验，毫无疑问是全球经济下行风险</p>
<p>对制造业的直接冲击。</p>
<p>但是，敌人绝不仅仅只有一个。</p>
<p>经济下滑牵累</p>
<p>富士康为各客户的代工量是绝对的机密，但是，从其主要客户最新的经营状况变化可以推测，富士康订单数量很可能遭到</p>
<p>削减，至少增长速度受到了抑制。</p>
<p>对于所代工的客户资料，富士康一直以严格遵守协议为由三缄其口，但诺基亚、戴尔、惠普和苹果等国际知名电子消费类</p>
<p>品牌均为其提供大量订单，已是业界公开的秘密。据说去年一年，仅来自诺基亚的订单量就占了富士康手机代工业务的一</p>
<p>半。它们的市场出货量，对富士康的业绩起着决定性作用。</p>
<p>研究机构Gartner预计，全球性经济下行趋势将影响2008年全年手机市场的增长。以手机行业的大哥大诺基亚为例：它占</p>
<p>了全球手机市场的四成，今年第一季度出货量比去年第四季度减少了13.5%；它在中国手机市场同样拥有四成的份额，但</p>
<p>今年第二季度出货量下降了16％。</p>
<p>目前排名全球第二的个人电脑制造商戴尔公布的财报显示，今年第二季度盈利减少17%。而凭借iPhone切入手机市场的苹</p>
<p>果，其全球市场占有率也没有实现预想中的增长。根据IDC（全球著名信息技术咨询服务商）的研究报告，今年第一季</p>
<p>度iPhone手机在美国智能手机市场占有率比上季度降低了7.5%。</p>
<p>与此同时，苹果iPod音乐播放器的增长势头今年也遭遇了阻力，第二季度发货量下调10%~15%。</p>
<p>富士康为各客户的代工量是绝对的机密，即使是富士康内部人士，也没有几个人清楚了解各品牌的订单有多少。某个产品</p>
<p>的一线工人，如果擅自进入另一产品的加工车间，就会被毫不留情地开除。但是，从其主要客户最新的经营状况变化可以</p>
<p>推测，富士康订单数量很可能遭到削减，至少增长速度受到了抑制。</p>
<p>同城对手狙击</p>
<p>据知情人士透露，5年来富士康有近500名骨干员工跳槽至比亚迪，其中包括许多高级技术人才和高层管理人员，他们不仅</p>
<p>将技术带到了比亚迪，往往将大额订单也带走了。</p>
<p>除了遭遇全球市场的寒冬外，同城对手比亚迪对富士康展开的围追堵截，也是郭台铭一大心病。</p>
<p>1995年，比亚迪在深圳成立，主营业务为手机电池。2003年，比亚迪切入手机代工领域。经过5年发展，其手机代工业务</p>
<p>已覆盖电池、键盘以及除手机芯片之外的所有手机零部件。2006年，比亚迪手机代工业务收入达51亿元人民币，比2005年</p>
<p>大幅增长169.3%。</p>
<p>自从比亚迪加入手机代工业务战团以来，富士康的人才流失就一直令郭台铭不安。据知情人士透露，5年来富士康有近500</p>
<p>名骨干员工跳槽至比亚迪，其中包括许多高级技术人才和高层管理人员，他们不仅将技术带到了比亚迪，往往将大额订单</p>
<p>也带走了。为此，富士康还以保护知识产权的名义，与比亚迪打了一场声势不小的官司，去年12月才艰难胜出。</p>
<p>&#8220;虽然名义上富士康赢了，但实质上是输了。&#8221;上述知情人士称。因为此后摩托罗拉的大笔订单还是从富士康流到了比亚迪</p>
<p>。</p>
<p>事实上，摩托罗拉、诺基亚等主要厂商为了防止富士康垄断整个制造环节，正在尝试将自身的部分订单转移给比亚迪。这</p>
<p>种市场上不可避免的制衡安排，加速了比亚迪发展的同时，对富士康这艘航母的高速前进也起到了刹车作用。</p>
<p>&#8220;山寨机&#8221;蚕食</p>
<p>&#8220;走出实验室，没有高科技。&#8221;这句出自郭台铭语录的名言，如今正在被山寨手机、山寨相机、山寨笔记本电脑等山寨大军</p>
<p>以另外一种方式诠释着：昔日代表高科技的3C产品，如今被大批廉价克隆，再像白菜一样卖出去。</p>
<p>&#8220;产品生命周期短，必须快速占据市场，满足消费者需要，否则面临被淘汰的危险。&#8221;这是消费类电子产品的公认特性。富</p>
<p>士康多年来的高速发展，也得益于对此特性的深刻理解。</p>
<p>然而，作为全球最大的消费类电子产品制造者，富士康不得不面对的现实是，市场上已经出现了一支对上述特性理解更深</p>
<p>的手机杂牌军——&#8220;山寨机&#8221;。它们正在大肆蚕食品牌手机市场，进而削减富士康的代工业务。</p>
<p>有机构估计，2007年中国市场上销售的&#8220;山寨机&#8221;总量为4000万台，接近整个市场的1/3，其余超过1亿台远销国外，蚕食着</p>
<p>品牌手机的全球市场。</p>
<p>据知情人士介绍，目前深圳从事&#8220;山寨机&#8221;设计的公司就有几千家，生产其外壳、电池和显示屏等相关配件的企业上万家，</p>
<p>几十万人靠这条产业链吃饭，&#8220;保守估计，这是一个数百亿元的市场。&#8221;</p>
<p>&#8220;不少外地人来深圳的一个必选项目，就是买台&#8216;山寨机&#8217;回去。&#8221;上述知情人士说。</p>
<p>2007年10月，国务院发布文件取消手机牌照制度，为&#8220;山寨机&#8221;发展提供了名正言顺的机会。更为可怕的是，除了手机领域</p>
<p>，&#8220;山寨机&#8221;制造者正毫不客气地向数码相机、液晶显示器等其他消费类电子产品进军，两三百元一台的数码相机已经不再</p>
<p>是新闻。</p>
<p>与富士康一墙之隔的华为，堪称国内最具有危机意识的企业。由于OEM（贴牌生产）手机也是其业务之一，他们看到了&#8220;山</p>
<p>寨机&#8221;对自身的威胁以及整个电子市场的冲击，并且一直在研究其冒起的原因。2008年上半年，华为派出战略与市场部门</p>
<p>的精兵强将，经过调查得出了一份调研报告：《山寨机的蓝海战略》。</p>
<p>这份报告中认为，&#8220;山寨机&#8221;大行其道，根本原因是其制造者将手机定位为人们的日常快速消费品，而不是当做一种高科技</p>
<p>产品，最大的特点是价格低廉、功能多样。人人都可以用几百块钱买到样式新、功能全的手机，用一段时间后扔掉也不可</p>
<p>惜。</p>
<p>诺基亚、摩托罗拉等手机厂商已开始重视&#8220;山寨机&#8221;对自身造成的威胁，甚至为此调整了经营策略。</p>
<p>&#8220;走出实验室，没有高科技。&#8221;这句出自郭台铭语录的名言，如今正在被山寨手机、山寨相机、山寨笔记本电脑等山寨大军</p>
<p>以另外一种方式诠释着：昔日代表高科技的3C产品，如今被大批廉价克隆，再像白菜一样卖出去。</p>
<p>命运牵动16城市</p>
<p>一旦富士康遭遇的衰退扩散，减少的绝不仅仅是其全国60多万员工的收入，各城市生产基地所在地区也将感受寒意。</p>
<p>根据三星经济研究院中国研究中心的统计，2007年富士康深圳生产基地创造的出口额约占深圳市出口总额的20%，缴纳税</p>
<p>款约50亿元人民币。</p>
<p>目前，富士康深圳厂区是全球最大的计算机和消费电子产品生产基地，富士康的规模优势为深圳乃至周边地区的经济发展</p>
<p>起到了巨大的推动作用。</p>
<p>富士康龙华厂区所在的龙华镇，大到包装、物流企业，小到卖煎饼的地摊，整个经济几乎全靠富士康大规模生产以及几十</p>
<p>万员工的消费而带动。</p>
<p>迄今为止，富士康在深圳、北京、上海、太原、晋城、昆山、南京、嘉善、淮安、杭州、烟台、天津、秦皇岛、廊坊、武</p>
<p>汉、沈阳等16个城市建立了不同产品类别的生产基地。有富士康人士担心，公司订单锐减，或多或少会影响到这些基地的</p>
<p>发展。</p>
<p>业内人士测算，仅仅是富士康深圳基地订单减少10%，就意味着至少2万人失业，富士康不景气，影响到的不仅仅是其深圳</p>
<p>30多万员工的收入，拥有200万人口的龙华经济将不可避免地受到牵连。以此类推，一旦富士康遭遇的衰退扩散，减少的</p>
<p>绝不仅仅是其全国60多万员工的收入，各城市生产基地所在地区也将感受寒意。</p>
<p>事实上，各地政府为了引来富士康这只&#8220;凤凰&#8221;，不仅给予优惠政策，还不惜血本地进行配套投资。2007年，为了吸引富士</p>
<p>康到武汉投资，当地政府花在直接配套设施上的资金就达人民币28亿元，其中包括建造一条12公里长的专用铁路线。</p>
<p>对于这些投入巨资的城市来说，无论从就业还是从GDP贡献率的角度出发，富士康发展停滞甚至衰退，都是他们不愿看到</p>
<p>的梦魇。</p>
<p>&#8220;幸福时光&#8221;之后</p>
<p>65万包喜糖，从徐福记总部广东东莞，汇往全国十几个省份的不同城市。这些喜糖传递的信息是：总裁郭台铭结婚了。</p>
<p>在全国16个城市统一建有白色厂房的工业区内，有65万人收到了喜糖。正是这65万人，每天、每时每刻，在为同一个人创</p>
<p>造着最大的利润。</p>
<p>深圳富士康龙华厂区是一座名副其实的&#8220;城市&#8221;，各种基础设施应有尽有，几十万人不分日夜在这座城市中忙碌着。郭台铭</p>
<p>的总裁办公室并不如外界想象的那样，设在这座他一手缔造的&#8220;制造之城&#8221;中到处可见的那些高楼大厦上，而是设在绿树和</p>
<p>花草后一排临时搭建起的铁皮平房中，这些平房前面是中共富士康党委总部。郭台铭的办公室陈设简朴，一张旧办公桌摆</p>
<p>在中央，这也是他引以为傲的艰苦奋斗作风的无声宣示。</p>
<p>如果碰巧，富士康员工们可以看到郭台铭穿着拖鞋，从树丛后的铁皮平房中悠闲地走到对面的&#8220;御膳房&#8221;用餐。</p>
<p>除了郭台铭，没有几个人能完全了解这座&#8220;制造之城&#8221;的整个运行机制。但是这座城市中的每一个人都在享受着郭老板安排</p>
<p>的便利和好处。</p>
<p>在富士康厂区内，快餐店、书店以及超市对员工都提供折扣价格。在快餐店德克士内，所有餐饮都对富士康员工打6.5折</p>
<p>，外面一份卖到14.5元的韩式泡菜嫩鸡饭，员工只需花费9.5元。富士康曾经有意让麦当劳和肯德基进驻厂区，前提就是</p>
<p>对方开先例，在全国统一价格上再打折，最终因为麦当劳和肯德基认为条件过于苛刻而被拒之门外。</p>
<p>在富士康观澜厂区的&#8220;金融一条街&#8221;上，仅工商银行深圳富士康支行内的自动取款机就有30台，其他银行所设的厂区支行规</p>
<p>模也不相上下。在这座城市中，必须有足够的银行和取款机，因为在每个月的某一天，同时有30多万人领到工资，30多万</p>
<p>人取钱存钱。</p>
<p>警觉到风暴来袭的郭台铭决意放缓脚步，压缩成本，而收到老板喜糖的这座&#8220;制造之城&#8221;里30多万富士康员工以及数量同样</p>
<p>众多的全国各地同事们，也许有不少人都在担心，下个月发薪日时，他们领到的是薪水，还是一笔遣散费？</p>
<p>新闻视野</p>
<p>出口部门每年为中国GDP增长直接贡献4个百分点</p>
<p>如果出口增长速度放慢或者下滑，中国GDP的增长速度将势必放缓</p>
<p>制造业告急动摇中国经济增长根基</p>
<p>今年7月初，清华大学经管学院召开年会，数十位世界500强企业的CEO齐聚清华园，鸿海集团老板郭台铭也在其中。</p>
<p>当有人问到郭台铭如何看待行业形势时，他直言人民币升值及生产成本提高是出口型企业共同面对的挑战，关键在于采取</p>
<p>何种对策，富士康的做法是将一些技术含量不高的生产基地转移到成本更低的东南亚国家。</p>
<p>当时郭台铭还不失乐观地预言，全球经济步入下降周期，也是大量机会涌现的时候。财大气粗的他或许有理由保持淡定，</p>
<p>但更多的中小制造业同行却正为生死存亡而苦苦挣扎。</p>
<p>制造业冬天来了</p>
<p>与深圳毗邻的东莞，2007年GDP达到3151.01亿元。中国被公认为&#8220;世界工厂&#8221;，东莞则是名副其实的中国&#8220;制造之都&#8221;。</p>
<p>然而，昔日繁荣发展、熙熙攘攘的&#8220;制造之都&#8221;，如今已呈萧条之势。</p>
<p>&#8220;那一片以前都是厂房。现在都荒废了。&#8221;东莞某镇一位村民指着不远处的房屋说。由于过去一段时间不计其数的加工厂或</p>
<p>倒闭或外迁，当地厂房和工人宿舍大面积地闲置了。</p>
<p>几年前，这位村民家里建起了6层楼房，除了自住一层外，其余都分成小间，租给当地工厂做工人宿舍。去年下半年开始</p>
<p>，周边的工厂一家家倒掉了，工人们走了，房子也就空出来了。</p>
<p>&#8220;没了这份收入，现在真不知道干点什么好。&#8221;多年来唯一固定的工作就是每月收房租的他无奈地说。</p>
<p>长期研究珠三角加工产业的中商流通生产力促进中心分析师曹志强在东莞石排镇调研时发现，当地一家企业占地面积5000</p>
<p>平方米的生产车间、2000平方米的宿舍以及500平方米的办公室，最新的年租金还不到6万元，2006年同地段、同样面积的</p>
<p>厂房租金至少在10万元以上。而这种厂房物业租金下降的趋势在东莞随处可见。</p>
<p>三星经济研究院中国研究中心首席研究员邱罡指出，在东莞和江浙等制造业高度聚集的地区，大批企业已被迫停工，中小</p>
<p>企业更是苦不堪言。该中心一份最新报告显示，2008年第一季度，不少企业账上的流动资金甚至少于流动负债，企业面临</p>
<p>资金链断裂的风险。</p>
<p>8月份，国家发改委中小企业司统计表明，2008年上半年全国有6.7万家规模以上的中小企业倒闭，尤其是劳动密集型产业</p>
<p>举步维艰。以纺织行业为例，已经有超过1万家的中小企业倒闭，2/3的纺织企业不得不重整，超过2000万工人被解聘。</p>
<p>不仅仅是中小企业，国有大型企业面对全球经济气候的变化也不敢怠慢。前不久，国资委向央企发出经济可能下滑的预警</p>
<p>，并提醒企业防范因资金短缺造成正常业务运营中断的危险，准备应付至少为期两年的紧缩货币政策。</p>
<p>政府出手救援</p>
<p>在深圳和东莞，大多数制造企业依靠出口订单来生存和发展。但统计数据显示，今年以来中国对美国、欧洲及亚洲的出口</p>
<p>增速全线下滑，形势相当不妙。</p>
<p>由于美国国内楼市萎靡和金融危机蔓延，居民消费不振，中国对美国出口增速持续下滑，今年上半年中国出口到美国的产</p>
<p>品占到中国出口产品总数的17.53%，2006年同期这一比例为21.24%。</p>
<p>今年上半年中国对欧洲的出口占到出口总额的24%，但近期增速已跌至最低水平，从年初的30%多降至8月份的22%，对日本</p>
<p>的出口也已呈下降趋势，并且此趋势还有可能持续。</p>
<p>此外，中国对新兴市场的出口增长也明显放慢，对俄罗斯的出口甚至连续两个月出现负增长。</p>
<p>雪上加霜的是，珠三角的出口企业以OEM代工为主，这些企业的生存法则就是依靠廉价劳动力获得成本优势，然后再靠拼</p>
<p>价格争取订单。玫瑰石顾问公司董事谢国忠认为，它们实质上是跨国公司生态链上的一环，并没有独立谋生的能力，一旦</p>
<p>跨国公司客户销售放缓，它们必遭池鱼之殃。</p>
<p>2007年中国全年GDP人民币246619亿元，全年出口额为12180亿美元，按照当时的汇率计算，出口额接近GDP的40%。谢国忠</p>
<p>估算，出口部门每年为中国GDP增长直接贡献4个百分点。</p>
<p>显然，如果出口增长速度放慢或者下滑，中国GDP的增长速度将势必放缓。</p>
<p>对此，中央政府高层在7月份前后进行了密集调研并迅速作出反应。8月4日，央行同意调增2008年商业银行信贷规模，对</p>
<p>全国性商业银行在原有信贷规模基础上调增5%，地方性商业银行调增10%。国家财政部为帮助中小企业渡过难关，安排</p>
<p>了35亿元的专项资金，还出台了促进信用担保体系建设、实施税收优惠等六大政策。</p>
<p>在中小制造企业&#8220;重灾区&#8221;浙江，省级财政承诺今明两年内拿出7亿元，补贴外贸出口前景好、压力重的企业。同时政府在</p>
<p>增加中小企业贷款额度，加大中小企业集合中期债券发行力度等常规政策之外，还利用当地民间资本充裕的优势，设立产</p>
<p>业发展基金，引导发行小企业集合债，发展小额贷款公司等，以接济有需要的企业渡过难关。</p>
<p>谁能扭转乾坤</p>
<p>&#8220;昨天经济还是繁荣似锦，怎么就突然一下子变得危机四伏了？&#8221;清华大学国情研究中心博士管清友说，&#8220;这不是一个单一</p>
<p>因素能够解释的问题，但可以肯定的是，全球范围内的经济下滑甚至危机后，调整的绝不仅仅是经济，人们的观念以及人</p>
<p>类对自然、环境的态度都会发生深刻的变化。&#8221;</p>
<p>管清友相信，最明显的就是贸易保护主义的重新抬头。他将此看做是全球经济一体化潮流以来遇到的第一次严峻挑战。</p>
<p>一位不愿具名的经济学家分析，当前的大气候使得企业界对将来收益的可靠性突然产生怀疑，一旦怀疑开始，就会迅速扩</p>
<p>散。这也就是资本边际收益率（企业投资每增加一块钱，能够产生的预期收益）突然崩溃的原因，而资本边际收益率恰恰</p>
<p>是经济发展方向的决定性因素。</p>
<p>他认为，资本边际收益率的严重下降也会对消费倾向产生不利影响，因为这将引起股票市场的剧烈下跌。对于投身于股市</p>
<p>的人们来说，股票投资价值的涨落甚至比他们收入多寡的变化，更能改变他们的消费倾向。</p>
<p>股票市场剧烈下跌而引起的消费萎缩，对于资本边际收益率进一步下降具有推波助澜的作用。这种状况，正是英国经济学</p>
<p>家凯恩斯在《就业、利息和货币通论》中谈到的可能进入经济危机的一种前兆。</p>
<p>凯恩斯的药方是，避免或者解救这种危机，只有政府投资才能做到。</p>
<p>风暴来临谁受损？</p>
<p>美国华尔街风暴中金融机构数万人大裁员令人惊心动魄，但在大洋彼岸的中国又是怎样的情景？富士康&#8220;半年内退掉50栋</p>
<p>租用楼&#8221;，10万名员工被辞退。这是中国受金融风暴影响最直接的表现。自去年底中国股市暴跌，资产价格大幅缩水以来</p>
<p>，人们议论最多的是所谓&#8220;中产阶级财产受损&#8221;。</p>
<p>从数量上看，中产阶级受损远在农民工之上，楼市不涨，股市下跌，中产阶级们在股市、楼市上的损失可能达几万、几十</p>
<p>万或上百万元；而农民工丢了饭碗，如果一年找不到工作，不过损失了几千元、一万多元的工资，两者不在一个级别上。</p>
<p>但从质量上看，则两者的性质就完全不同了。前者的损失大概是这个黄金周没心情出国度假了，而后者则是衣食无着的生</p>
<p>存之忧。实际上中产阶级损失的大多是账面损失，受影响的只是减少了外出旅游度假和购买高档消费品的钱，而在同样情</p>
<p>况下农民工受损的则是养家糊口的钱。</p>
<p>市场经济发展历程，从来就不是一个利益均沾的过程，而是一个财富再分配，成本再分摊的过程。中国的市场经济发展模</p>
<p>式是以制造业为主，出口型为主。对风险成本承担对象的要求也有其特定标准。</p>
<p>首先是成本规模。因为面向的是国际市场，没有规模是无法满足国际市场要求的。特别是劳动密集型制造业为先导的出口</p>
<p>行业。中国之所以能成为世界上服装、鞋帽、玩具、电子产品、家用电器等产品最大生产国，其背后是有了能够支撑这些</p>
<p>个行业规模成本的承担者，就是农民工。据统计，目前我国农民工的数量约在1.2亿。这几乎是全世界任何国家都不具备</p>
<p>的规模成本。据调查显示，农民工在我国第二产业从业人员中占58％，在第三产业从业人员中占52％。有了这样的规模，</p>
<p>才能承担起这样的成本风险。</p>
<p>其次是成本价格。只有规模优势而没有价格优势也是不行的。由于中国的特殊国情，劳动力价格之低也是其他国家几乎不</p>
<p>可能替代的。中国农民工的工资价格竞争力不但其他国家无法竞争，就是在国内也是最具优势的。据有关部门对湖南、四</p>
<p>川和河南三省的抽样调查，农民工实际劳动小时工资只相当于城镇职工的1/4。而据2006年公布的《中国农民工调研报告</p>
<p>》，被调查农民工的月工资均主要集中在500~800元之间。其中，每月收入在300元以下的占3.58％，300~500元的占29.26</p>
<p>％，500~800元的占39.26％，800元以上的占27.90％。即使如此低廉的成本价格，农民工还要具备劳动时间长、劳动强度</p>
<p>大，危险性高，每天工作大多超过8小时的工作特征。</p>
<p>再次是风险成本弹性。因为这种面向国际市场的发展模式不确定因素非常多，生产对应的不是一个国家一个市场，而是众</p>
<p>多国家和众多市场。好的时候需要生产急速扩张，不好的时候就要迅速缩减。对承担风险成本的弹性要非常大。这是一般</p>
<p>国家或是市场很难做到的。而中国有了农民工这样的特定群体就可以做到。所以对农民工的需求就是&#8220;招之即来，挥之即</p>
<p>去&#8221;。而能满足这种风险成本要求的恐怕也只有中国了。据上述报告调查，与用人单位签订用工合同的农民工仅占53.70％</p>
<p>。这种模式下劳动力用与不用的成本均不高，自然非常适合外向型经济了。</p>
<p>有了规模大，成本低，弹性大的经济特点，当风暴来临时，风险成本承担就有了去处。昨日里还是车水马龙事业兴旺，今</p>
<p>日里就是人去楼空满目苍凉。虽然是恍如隔世之变，但无惊无险。东莞的厂房空空荡荡，龙华镇里不再风光。往日熙熙攘</p>
<p>攘的农民工都去哪了？城市的失业率却还是控制在4.5％以下，这其中给人们留下无限遐想。 <br></p>
<img src ="http://www.cnitblog.com/lby91772/aggbug/56279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2009-04-12 13:04 <a href="http://www.cnitblog.com/lby91772/archive/2009/04/12/56279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20090406</title><link>http://www.cnitblog.com/lby91772/archive/2009/04/06/56071.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Mon, 06 Apr 2009 06:59:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2009/04/06/56071.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/56071.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2009/04/06/56071.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/56071.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/56071.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnsiString StringtoChar(char *P_BCD,int length,char *tmpget)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; AnsiString returnstring="";<br>&nbsp;&nbsp;&nbsp; charhigh_char,low_char,temp;<br>&nbsp;&nbsp;&nbsp; for(inti=0;i&lt;length;i)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; temp=*P_BCD;<br>&nbsp;&nbsp;&nbsp;&nbsp; high_char=(temp&amp;0xf0)&gt;&gt;4;<br>&nbsp;&nbsp;&nbsp;&nbsp; low_char=temp&amp;0x0f;<br>&nbsp;&nbsp;&nbsp;&nbsp; if((high_char&gt;=0x00)&amp;&amp;(high_char&lt;=0x09))high_char=0x30;<br>&nbsp;&nbsp;&nbsp;&nbsp; if((high_char&gt;=0x0A)&amp;&amp;(high_char&lt;=0x0F))high_char=0x37;<br>&nbsp;&nbsp;&nbsp;&nbsp; if((low_char&gt;=0x00)&amp;&amp;(low_char&lt;=0x09))low_char=0x30;<br>&nbsp;&nbsp;&nbsp;&nbsp; if((low_char&gt;=0x0A)&amp;&amp;(low_char&lt;=0x0F))low_char=0x37;<br>&nbsp;&nbsp;&nbsp;&nbsp; returnstring=AnsiString(high_char) + AnsiString(low_char);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmpget[i] = returnstring.c_str();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnsiString SendCommand( );<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AnsiString strtmp,strGet;<br>&nbsp;&nbsp;&nbsp; char *Charget;<br>&nbsp;&nbsp;&nbsp; strGet ="";<br>&nbsp;&nbsp;&nbsp; for (i=0;i&lt;13;i++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strtmp = .AsString;<br>&nbsp;&nbsp;&nbsp;&nbsp; if (strtmp&nbsp; == "") {strGet=strGet+"0"}<br>&nbsp;&nbsp;&nbsp;&nbsp; if ( strtmp != "") <br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( strtmp.Length()&gt;16&nbsp; ){ strtmp = strtmp.SubString( 0,16 ) }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strGet=strGet+IntToStr(strtmp.Length());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strGet=strGet+strtmp;<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringtoChar( strGet.c_str(),strGet.Length(),Charget );&nbsp; //get 字符指针串</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WinSocket-&gt;SendBuf();<br>&nbsp;&nbsp; }<br><br><br>&nbsp;a=BCD_to_AnsiString(a.c_str(),a.Length());//a="31323334";&nbsp;&nbsp; eg:a="1234";<br>&nbsp;&nbsp;&nbsp; //char chartmp='a'&nbsp;&nbsp; int inttmp; tmpint = (int)chartmp;&nbsp; chartmp = (char)inttmp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp; #include&nbsp;&nbsp; &lt;stdio.h&gt;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include&nbsp;&nbsp; &lt;stdlib.h&gt;&nbsp;&nbsp; <br>&nbsp; int&nbsp;&nbsp; main(int&nbsp;&nbsp; argc,&nbsp;&nbsp; char&nbsp;&nbsp; *argv[])&nbsp;&nbsp; <br>&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; a[]&nbsp;&nbsp; =&nbsp;&nbsp; "ABCDE";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; *cp&nbsp;&nbsp; =&nbsp;&nbsp; "ABCDE";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; *cp2&nbsp;&nbsp; =&nbsp;&nbsp; "ABCDE";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%p&nbsp;&nbsp; %p&nbsp;&nbsp; %p\n",&nbsp;&nbsp; a,&nbsp;&nbsp; cp,&nbsp;&nbsp; cp2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system("PAUSE");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; 0;&nbsp;&nbsp; <br>&nbsp; }&nbsp;&nbsp; <br>&nbsp; 输出：0022FF60&nbsp;&nbsp; 00401290&nbsp;&nbsp; 00401290&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp; 可见，a分配在栈里，和所有的局部变量一样，cp,&nbsp;&nbsp; cp2作为指针，<br>&nbsp; 其本身也存储在栈里，但是"ABCDE"作为一个字符串常量，<br>&nbsp; cp,&nbsp;&nbsp; cp2指向同一块内存区域，这点需要注意。</p>
<p>&nbsp; char*&nbsp;&nbsp; string;&nbsp;&nbsp;&nbsp;&nbsp; string="chenchao";&nbsp;&nbsp; <br>&nbsp; char&nbsp;&nbsp; string[10];&nbsp;&nbsp;&nbsp;&nbsp; string="chenchao";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; */<br></p>
<img src ="http://www.cnitblog.com/lby91772/aggbug/56071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2009-04-06 14:59 <a href="http://www.cnitblog.com/lby91772/archive/2009/04/06/56071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>the mythical man-month</title><link>http://www.cnitblog.com/lby91772/archive/2008/04/22/42618.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Tue, 22 Apr 2008 08:37:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2008/04/22/42618.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/42618.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2008/04/22/42618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/42618.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/42618.html</trackback:ping><description><![CDATA[<font color=#5566aa>不同的社会经验，不同的思想状态，对读本书的心得也不一样，我在此说说我的读后感，书中有许多非常好的观点，但我只把我感触最深的写下来。 这确实是一本很值得多次阅读的好书，每次阅读可能都能从中得到一些提示。</font>
<p>&nbsp;&nbsp;&nbsp; 1.外科手术队伍The Surgical Team</p>
<p>&nbsp;&nbsp;&nbsp; <a href="http://www.csai.cn/incsearch/search.asp?key=%CF%EE%C4%BF%BE%AD%C0%ED" target=_blank><font color=#0000ff>项目经理</font></a>在项目的初期必须清楚的估计项目的人月运作模式（时间、人力在项目各阶段的分配），例如什么时候需要出什么样成果，决定了什么时候需要什么样的人加入项目，这是项目经理的责任。</p>
<p>&nbsp;&nbsp;&nbsp; 2.贵族专制，民主政治Aristocracy,Democracy,System</p>
<p>&nbsp;&nbsp;&nbsp; 要获得概念的完整性，设计必须由一个人或具有共识的小组来完成。</p>
<p>&nbsp;&nbsp;&nbsp; 有四个问题：</p>
<p>&nbsp;&nbsp;&nbsp; 1。如何得到概念的完整性</p>
<p>&nbsp;&nbsp;&nbsp; 2。是否要有一位杰出的精英，或者说是结构设计师的贵族专制.....</p>
<p>&nbsp;&nbsp;&nbsp; 3.如何避免结构设计师产出无法实现或代价高昂的技术规格说明，使大家陷入困境。</p>
<p>&nbsp;&nbsp;&nbsp; 4。如何才能与实现人员就技术说明的琐碎细节充分<a href="http://www.csai.cn/incsearch/search.asp?key=%B9%B5%CD%A8" target=_blank><font color=#0000ff>沟通</font></a>，以确保设计被正确地理解，并精确地整合到产品中。</p>
<p>&nbsp;&nbsp;&nbsp; 对1。2。4的回答基本上都可以找到，但第3个似乎找不到。</p>
<p>&nbsp;&nbsp;&nbsp; 3.画蛇添足The Second-System Effect</p>
<p>&nbsp;&nbsp;&nbsp; 讲述的基本都是基于<a href="http://www.csai.cn/incsearch/search.asp?key=IBM" target=_blank><font color=#0000ff>IBM</font></a> 360<a href="http://www.csai.cn/incsearch/search.asp?key=%B2%D9%D7%F7%CF%B5%CD%B3" target=_blank><font color=#0000ff>操作系统</font></a>以及编译程序等方面的经验，讲述如何避免开发第二个系统的<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%E7%CF%D5" target=_blank><font color=#0000ff>风险</font></a>，作者认为开发第二个系统的设计师设计出来的系统是最危险的,因此要求他们自律。</p>
<p>&nbsp;&nbsp;&nbsp; 4.贯彻执行Passing the word</p>
<p>&nbsp;&nbsp;&nbsp; 印象比较深刻的是"体系结构设计人员必须为自己描述的任何特性准备一种实现方法，但他不应该支配具体的实现过程。"</p>
<p>&nbsp;&nbsp;&nbsp; 5.为什么巴比伦塔会失败Why did the Tower of Babel Fail?</p>
<p>&nbsp;&nbsp;&nbsp; 讲述巴比伦塔会失败的原因是缺乏交流。</p>
<p>&nbsp;&nbsp;&nbsp; 6.胸有成竹Calling the Shot</p>
<p>&nbsp;&nbsp;&nbsp; 主要讲述如何计算编程时间，以及提出几个人的经验算法。</p>
<p>&nbsp;&nbsp;&nbsp; 讲述的各种算法可能都不太适合与现在的高级语言，但Portman的观点仍然适合现在，即编程人员实际的编程时间只有50%，其他的时间都花在了无关的琐碎事情上。</p>
<p>&nbsp;&nbsp;&nbsp; 7.削足适履Ten Pounds in a Five-Pound Sack</p>
<p>&nbsp;&nbsp;&nbsp; 主要讲述程序占用的空间等，在70年代比较突出，但现在好多了。</p>
<p>&nbsp;&nbsp;&nbsp; 8.提纲擎领The Documentary Hypothesis</p>
<p>&nbsp;&nbsp;&nbsp; 说明文档的作用</p>
<p>&nbsp;&nbsp;&nbsp; 9.未雨绸缪Plan to Throw One Away</p>
<p>&nbsp;&nbsp;&nbsp; 唯一不变的是变化本身。</p>
<p>&nbsp;&nbsp;&nbsp; 在大型项目中，项目经理需要有两个和三个顶级<a href="http://www.csai.cn/incsearch/search.asp?key=%B3%CC%D0%F2%D4%B1" target=_blank><font color=#0000ff>程序员</font></a>作为技术轻骑兵，当工作繁忙最密集的时候，他们能急驰飞奔，解决各种问题。 讲述技术人员与项目人员的互换是，对我有一定的提示，但图中IBM的两条职位晋升线，不太理解。<br><br>10.干将莫邪Sh<a href="http://www.csai.cn/incsearch/search.asp?key=arp" target=_blank><u><font color=#0000ff>arp</font></u></a> Tools</p>
<p>&nbsp;&nbsp;&nbsp; 主要讲述项目中管理好各种工具的重要性，<a href="http://www.csai.cn/incsearch/search.asp?key=%CF%EE%C4%BF%BE%AD%C0%ED" target=_blank><u><font color=#0000ff>项目经理</font></u></a><clk>首先要制定一种策略，让各种工具成为公用的工具，这样才能使<nobr oncontextmenu="return false;" onmousemove=kwM(6); id=clickeyekey6 onmouseover="kwE(event,6, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,6)" onmouseout=kwL(event,this) target="_blank">开发</nobr>、维护和使用这种工具的开发人员的效率更高，这种工具可能是开发人员开发出来的，也可能是使用现有的，可能是通用的，也可能是专用的或个人偏好的。比如：文档编写工具、开发工具（包括各种不同开发</clk><a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target=_blank><u><font color=#0000ff>平台</font></u></a>）、调试工具、<a href="http://www.csai.cn/incsearch/search.asp?key=%B2%E2%CA%D4%B9%A4%BE%DF" target=_blank><u><font color=#0000ff>测试工具</font></u></a>、数据库工具、版本管理、<a href="http://www.csai.cn/incsearch/search.asp?key=%CF%EE%C4%BF%B9%DC%C0%ED%B9%A4%BE%DF" target=_blank><u><font color=#0000ff>项目管理工具</font></u></a>等。</p>
<p>&nbsp;&nbsp;&nbsp; 11.整体部分The Whole and the Parts</p>
<p><clk>&nbsp;&nbsp;&nbsp; 一读这一章，就让我感触颇深，特别是这句话"BELL实验室监控系统项目的V.A.Vyssotsky提出,'关键的<nobr oncontextmenu="return false;" onmousemove=kwM(0); id=clickeyekey0 onmouseover="kwE(event,0, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,0)" onmouseout=kwL(event,this) target="_blank">工作</nobr>是产品定义。许许多多的失败完全源于那些产品未精确定义的地方',细致的功能定义，详细的规格说明，规范话的功能描述说明以及这些方法的实施，大大减少了系统中必须查找的BUG数量"。虽然这句话的意思只是说明精确定义产品将减少BUG的数量，但我看到了系统分析的最重要的工作——产品定义。现在，许多 开发人员嘴里口口声声说也做过需求调研、系统分析、系统<nobr oncontextmenu="return false;" onmousemove=kwM(1); id=clickeyekey1 onmouseover="kwE(event,1, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,1)" onmouseout=kwL(event,this) target="_blank">设计</nobr>，但大多数没有涉及到产品定义的深度，严格意义上不能叫做系统分析。这句话对我的以后想从事系统分析工作有很大的帮助。</clk></p>
<p><clk>&nbsp;&nbsp;&nbsp; 这一章余下的内容，也值得一看，虽然有些地方有些过时，但剔除BUG的设计以及部分<nobr oncontextmenu="return false;" onmousemove=kwM(8); id=clickeyekey8 onmouseover="kwE(event,8, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,8)" onmouseout=kwL(event,this) target="_blank">测试</nobr>/调试方法仍值得一看。</clk></p>
<p>&nbsp;&nbsp;&nbsp; 12.祸起萧墙Hatching a Catastrophe</p>
<p><clk>&nbsp;&nbsp;&nbsp; 这章节说明使项目进度拖后的最大原因不是重要的<nobr oncontextmenu="return false;" onmousemove=kwM(4); id=clickeyekey4 onmouseover="kwE(event,4, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,4)" onmouseout=kwL(event,this) target="_blank">事件</nobr>，如</clk><a href="http://www.csai.cn/incsearch/search.asp?key=%D0%C2%BC%BC%CA%F5" target=_blank><u><font color=#0000ff>新技术</font></u></a>、重组等，而是一些琐碎的小事，每件小事只耽误半天或一天时间，但这种小事多以后，将使项目的进度严重拖后。</p>
<p><clk>&nbsp;&nbsp;&nbsp; 项目对于公司就如<nobr oncontextmenu="return false;" onmousemove=kwM(3); id=clickeyekey3 onmouseover="kwE(event,3, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,3)" onmouseout=kwL(event,this) target="_blank">程序</nobr>对测试工程师一样，如果不了解它，它就是一个黑盒子，如果不打开这个黑盒子，你可能永远不知道盒子里面有什么。</clk></p>
<p>这部分描写项目经理以及小组主管的一些心理，值得一看。</p>
<p>&nbsp;&nbsp;&nbsp; 13.另外一面The other face</p>
<p>&nbsp;&nbsp;&nbsp; 本章说明程序的另一面——文档。</p>
<p><clk>&nbsp;&nbsp;&nbsp; 不了解，就无法真正拥有——歌德，作者引用的歌德的话来描述文档对客户的重要性，提出客户需要什么样的文档以及文档的<nobr oncontextmenu="return false;" onmousemove=kwM(13); id=clickeyekey13 onmouseover="kwE(event,13, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,13)" onmouseout=kwL(event,this) target="_blank">格式</nobr>和包含的内容，指出当时存在的大多数文档只描述了树木，形容了树叶，但没有整个森林的图案。</clk></p>
<p><clk>&nbsp;&nbsp;&nbsp; 想想，这种情况在现在仍然没有改变。于是<nobr oncontextmenu="return false;" onmousemove=kwM(7); id=clickeyekey7 onmouseover="kwE(event,7, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,7)" onmouseout=kwL(event,this) target="_blank">作者</nobr>提出了两个观点：</clk></p>
<p>&nbsp;&nbsp;&nbsp; 1.流程图：流程图是被吹捧得最过分的一种程序文档。许多程序甚至不需要流程图，很少程序需要一页以上的流程图</p>
<p><clk>&nbsp;&nbsp;&nbsp; 2.自文档化（self-documenting）的程序：提出文档与程序合为一体，能很好的解决文档与程序分开造成的文档过时的<nobr oncontextmenu="return false;" onmousemove=kwM(2); id=clickeyekey2 onmouseover="kwE(event,2, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,2)" onmouseout=kwL(event,this) target="_blank">问题</nobr>，并说明了在程序中加入文档的一些方法和技巧。2002年，我看到一位网友关于文档与程序合一的文章，当时就觉得是个好方法，没想到70年代，老美已经提出来了。</clk></p>
<p>&nbsp;&nbsp;&nbsp; 14.没有银弹-<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%ED%BC%FE%B9%A4%B3%CC" target=_blank><u><font color=#0000ff>软件工程</font></u></a>中的根本和次要问题(No Silver Bullet-Essence and Accident in software Engineering)</p>
<p>&nbsp;&nbsp;&nbsp; 这是一篇论文，发表于1986年,我自认为我的理论水平没有上升到可以对他的论点和论据做出怀疑或质疑的结论，我只是说说我的感想。</p>
<p><clk>&nbsp;&nbsp;&nbsp; 人狼是传说中的妖怪，只有银弹才能杀死他。作者认为<nobr oncontextmenu="return false;" onmousemove=kwM(5); id=clickeyekey5 onmouseover="kwE(event,5, this);" style="BACKGROUND: url(http://control.clickeye.com.cn/images/line5.gif) repeat-x 50% bottom; PADDING-BOTTOM: 2px; COLOR: #6600ff" onclick="return kwC(event,5)" onmouseout=kwL(event,this) target="_blank">软件</nobr>项目具有人狼的特性，因为软件项目也可能变成一个怪物，一个落后进度、超出预算、存在大量缺陷的怪物。</clk></p>
<p>&nbsp;&nbsp;&nbsp; 作者通过软件系统的内在特性复杂性、一致性、可变性和不可见性来分析说明了软件天生就没有银弹。<br>作者试图通过分析软件问题的本质和很多侯选银弹的特征来探究其中的原因。他行动的第一步是将大块的&#8220;巨无霸理论&#8221;替换成&#8220;微生物理论&#8221;。这个变化的过程告诉你，进步是逐步取得的，伴随着辛勤的劳动，对规范化过程应</p>
<p>&nbsp;&nbsp;&nbsp; 进行持续不懈的努力，而这个努力的过程相应的就诞生了<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%ED%BC%FE%B9%A4%B3%CC" target=_blank><font color=#0000ff>软件工程</font></a>。作者对软件工程诞生的原因做出这样的解释，我觉得符合外国思维的特点，这正是国人所缺乏。记得有一位朋友说过，中国妈妈与德国妈妈的区别，他说，如果手里拿的针掉到地上了，中国妈妈的第一反应是估计针掉下去的范围，然后在这个范围里面找，可能很快就找到了，也可能一直都找不到；但德国妈妈不同，她会拿一根粉笔来，把整个屋子画成一个大圈，接着把大圈分成许许多多的小圈，然后再到每个小圈里找，虽然比较慢，但最终肯定可以找到。仔细想象，大多数情况下，中国妈妈都会找到得比较快，这确实符合大多数中国妈妈的思维习惯，每个中国妈妈都这样找，这好象是与生俱来的本事，但为什么德国妈妈没有这个本事呢？是德国妈妈笨吗？为什么中国妈妈也有找不到的情况？而德国妈妈，虽然速度慢了点，却始终能够找得到？如果把这件故事推而广之，多年以后，德国妈妈创建了找针工程，她通过多次找针的实验数据，分析出针掉到整个房间中各个小圈的概率，总结出针在哪个小圈的概率最大，很快就可以找到针，找针速度早已高过中国妈妈，而中国妈妈还在依循与生俱来的本事。你能说德国妈妈笨吗？为什么中国妈妈和德国妈妈会有这么大的区别？是德国妈妈把大块的&#8220;巨无霸理论&#8221;替换成&#8220;微生物理论&#8221;吗？我觉得是是，你说呢？作者在后面的论述中用数学和物理的发展为例子也说明了，这种思想的成立。</p>
<p>&nbsp;&nbsp;&nbsp; 余下的作者把软件工程按&#8220;巨无霸理论&#8221;替换成&#8220;微生物理论&#8221;的过程详细的说明，值得看，我关注的不是具体的内容，具体内容可能有些不合适宜，我关注的是作者的思考方式以及处理方法，这是非常重要的。</p>
<p>&nbsp;&nbsp;&nbsp; 在&#8220;以往解决次要困难的一些突破&#8221;和&#8220;银弹的希望&#8221;章节，从概念上讲述了软件的发展，其中讲到&#8220;专家系统&#8221;时，使我想起一部科幻电影，忘了电影名字了，有个情节大致是这样的，一位非常有经验的主管死后，有一名较优 秀的下属接任，但这时出现了一位非常厉害的敌人，这位新主管无论如何也战胜不了敌人，这时想起了以前的主管，心想前主管一定有办法对付这个敌人，而前主管的大脑就存放在系统里，于是新主管调出前主管的大脑，把敌人的各种特征都描述给'他'听，就好象前主管仍然活着一样，他与前主管的大脑通话后，前主管的大脑告诉了他对付敌人的方法，后来通过这个方法真的把敌人打败了。这是否专家系统的最佳境界呢？</p>
<p>&nbsp;&nbsp;&nbsp; 还有讲到&#8220;自动&#8221;编程章节时，使我想起我以前也有过类似的想法，但没想到这些想法竟然早就有人提出过。还有记得&#8220;图形化编程&#8221;好象也风行过一段日子。</p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp; 15.再论《没有银弹》No Silver Bullet Refired</strong></p>
<p>&nbsp;&nbsp;&nbsp; 看完再论《没有银弹》后，虽然作者说有不少人对他的观点持反对或不同意见，但我始终觉得他的观点是对的——根本和次要问题的划分以及定义。作者认为软件开发困难的部分是概念的结构，如规格化、设计和测试等概念的结构，而不是概念的表述和实现概念，虽然实现概念可能占用了小于90%的时间，就如现今的软件开发一样，系统分析通常占用的整个项目开发时间不超过20%，而80%的时间花在编程上一样。&nbsp; </p>
<img src ="http://www.cnitblog.com/lby91772/aggbug/42618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2008-04-22 16:37 <a href="http://www.cnitblog.com/lby91772/archive/2008/04/22/42618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>procedure 破解 SQL decrypt 2004</title><link>http://www.cnitblog.com/lby91772/archive/2008/04/02/41839.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Wed, 02 Apr 2008 09:27:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2008/04/02/41839.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/41839.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2008/04/02/41839.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/41839.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/41839.html</trackback:ping><description><![CDATA[<p>&nbsp;SQL Server Decryption Tool </p>
<div class=postText>
<p>create&nbsp; PROCEDURE sp_decrypt(@objectname varchar(50))<br>AS<br>begin<br>set nocount on<br>--CSDN：j9988 copyright:2004.07.15 <br>--V3.2 <br>--破解字节不受限制，适用于SQLSERVER2000存储过程，函数，视图，触发器<br>--修正上一版"视图触发器"不能正确解密错误<br>--发现有错，请E_MAIL：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#67;&#83;&#68;&#78;&#106;&#57;&#57;&#56;&#56;&#64;&#116;&#111;&#109;&#46;&#99;&#111;&#109;"><font color=#000080>CSDNj9988@tom.com</font></a><br>begin tran<br>declare @objectname1 varchar(100),@orgvarbin varbinary(8000)<br>declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)<br>DECLARE&nbsp; @OrigSpText1 nvarchar(4000),&nbsp; @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)<br>declare&nbsp; @i int,@status int,@type varchar(10),@parentid int<br>declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int<br>select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@objectname)</p>
<p>create table&nbsp; #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)<br>insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments&nbsp; WHERE id = object_id(@objectname)<br>select @number=max(number) from #temp<br>set @k=0</p>
<p>while @k&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#61;&#64;&#110;&#117;&#109;&#98;&#101;&#114;"><font color=#000080>=@number</font></a> <br>begin<br>if exists(select 1 from syscomments where id=object_id(@objectname) and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a>)<br>begin<br>if @type='P'<br>set @sql1=(case when @number&gt;1 then 'ALTER PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '<br>&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; else 'ALTER PROCEDURE '+ @objectname+' WITH ENCRYPTION AS '<br>&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; end)</p>
<p>if @type='TR'<br>begin<br>declare @parent_obj varchar(255),@tr_parent_xtype varchar(10)<br>select @parent_obj=parent_obj from sysobjects where id=object_id(@objectname)<br>select @tr_parent_xtype=xtype from sysobjects where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#100;&#61;&#64;&#112;&#97;&#114;&#101;&#110;&#116;&#95;&#111;&#98;&#106;"><font color=#000080>id=@parent_obj</font></a><br>if @tr_parent_xtype='V'<br>begin<br>set @sql1='ALTER TRIGGER <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 '<br>end<br>else<br>begin<br>set @sql1='ALTER TRIGGER <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '<br>end</p>
<p>end<br>if @type='FN' or @type='TF' or @type='IF'<br>set @sql1=(case @type when 'TF' then <br>'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '<br>when 'FN' then<br>'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'<br>when 'IF' then<br>'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'<br>end)</p>
<p>if @type='V'<br>set @sql1='ALTER VIEW <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> WITH ENCRYPTION AS SELECT 1 as f'</p>
<p>set @q=len(@sql1)<br>set @sql1=@sql1+REPLICATE('-',4000-@q)<br>select @sql2=REPLICATE('-',8000)<br>set @sql3='exec(@sql1'<br>select @colid=max(colid) from #temp where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a> <br>set @n=1<br>while @n&lt;=CEILING(1.0*(@colid-1)/2) and len(@sql3)&lt;=3996<br>begin <br>set @sql3=@sql3+'+@'<br>set @n=@n+1<br>end<br>set @sql3=@sql3+')'<br>exec sp_executesql @sql3,N'@sql1 nvarchar(4000),@ varchar(8000)',@sql1=@sql1,@=@sql2</p>
<p>end<br>set @k=@k+1<br>end</p>
<p>set @k=0<br>while @k&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#61;&#64;&#110;&#117;&#109;&#98;&#101;&#114;"><font color=#000080>=@number</font></a> <br>begin</p>
<p>if exists(select 1 from syscomments where id=object_id(@objectname) and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a>)<br>begin<br>select @colid=max(colid) from #temp where <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a> <br>set @n=1</p>
<p>while @n&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#61;&#64;&#99;&#111;&#108;&#105;&#100;"><font color=#000080>=@colid</font></a><br>begin<br>select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp&nbsp; WHERE <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#108;&#105;&#100;&#61;&#64;&#110;"><font color=#000080>colid=@n</font></a> and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a></p>
<p>SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectname) and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#111;&#108;&#105;&#100;&#61;&#64;&#110;"><font color=#000080>colid=@n</font></a> and <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#110;&#117;&#109;&#98;&#101;&#114;&#61;&#64;&#107;"><font color=#000080>number=@k</font></a>)<br>if @n=1<br>begin<br>if @type='P'<br>SET @OrigSpText2=(case when @number&gt;1 then 'CREATE PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS '<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else 'CREATE PROCEDURE '+ @objectname +' WITH ENCRYPTION AS '<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end)</p>
<p><br>if @type='FN' or @type='TF' or @type='IF'<br>SET @OrigSpText2=(case @type when 'TF' then <br>'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '<br>when 'FN' then<br>'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end'<br>when 'IF' then<br>'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a'<br>end)</p>
<p>if @type='TR' <br>begin</p>
<p>if @tr_parent_xtype='V'<br>begin<br>set @OrigSpText2='CREATE TRIGGER <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 '<br>end<br>else<br>begin<br>set @OrigSpText2='CREATE TRIGGER <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '<br>end</p>
<p>end</p>
<p>if @type='V'<br>set @OrigSpText2='CREATE VIEW <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#39;&#43;&#64;&#111;&#98;&#106;&#101;&#99;&#116;&#110;&#97;&#109;&#101;&#43;&#39;"><font color=#000080>'+@objectname+'</font></a> WITH ENCRYPTION AS SELECT 1 as f'</p>
<p>set @q=4000-len(@OrigSpText2)<br>set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)<br>end<br>else<br>begin<br>SET @OrigSpText2=REPLICATE('-', 4000)<br>end<br>SET @i=1</p>
<p>SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))</p>
<p>WHILE @i&lt;=datalength(@OrigSpText1)/2<br>BEGIN</p>
<p>SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^<br>&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; (UNICODE(substring(@OrigSpText2, @i, 1)) ^<br>&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; UNICODE(substring(@OrigSpText3, @i, 1)))))<br>&nbsp;SET @i=@i+1<br>END<br>set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))<br>set @resultsp=(case when @encrypted=1 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then @resultsp <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else convert(nvarchar(4000),case when @status&amp;2=2 then uncompress(@orgvarbin) else @orgvarbin end)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end)<br>print @resultsp</p>
<p>set @n=@n+1</p>
<p>end</p>
<p>end<br>set @k=@k+1<br>end</p>
<p>drop table #temp<br>rollback tran<br>end</p>
<p>&nbsp;</p>
<p>GO<br>－－－－－－－－－－－－－－－－－<br>使用方法：exec '要揭密的存储过程、触发器的名称'</p>
</div>
<a href="http://www.cnitblog.com/Files/lby91772/view.txt">sql</a>
<img src ="http://www.cnitblog.com/lby91772/aggbug/41839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2008-04-02 17:27 <a href="http://www.cnitblog.com/lby91772/archive/2008/04/02/41839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>.net 面試題</title><link>http://www.cnitblog.com/lby91772/archive/2008/04/01/41761.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Tue, 01 Apr 2008 04:15:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2008/04/01/41761.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/41761.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2008/04/01/41761.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/41761.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/41761.html</trackback:ping><description><![CDATA[1.简述 private、 protected、 public、 internal 修饰符的访问权限。<br>答 . private :&nbsp;&nbsp; 私有成员, 在类的内部才可以访问。 <br>&nbsp;&nbsp;&nbsp;&nbsp; protected : 保护成员，该类内部和继承类中可以访问。 <br>&nbsp;&nbsp;&nbsp;&nbsp; public :&nbsp;&nbsp;&nbsp;&nbsp;公共成员，完全公开，没有访问限制。 <br>&nbsp;&nbsp;&nbsp;&nbsp; internal:&nbsp;&nbsp; 在同一命名空间内可以访问。<br>2 .列举ASP.NET 页面之间传递值的几种方式。 <br>答. 1.使用QueryString,&nbsp;&nbsp;如....?id=1; response. Redirect().... <br>&nbsp;&nbsp;&nbsp;&nbsp;2.使用Session变量 <br>&nbsp;&nbsp;&nbsp;&nbsp;3.使用Server.Transfer<br>3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......&nbsp;&nbsp;求第30位数是多少， 用递归算法实现。<br>答：public class MainClass <br>&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main()&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(Foo(30)); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static int Foo(int i) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (i &lt;= 0) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i &gt; 0 &amp;&amp; i &lt;= 2) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else return Foo(i -1) + Foo(i - 2); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;} <br>4.C#中的委托是什么？事件是不是一种委托？<br>答 ：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>委托可以把一个方法作为参数代入另一个方法。<br>委托可以理解为指向一个函数的引用。<br>是，是一种特殊的委托<br>5.override与重载的区别<br>答 ：<br>override 与重载的区别。重载是方法的名称相同。参数或参数类型不同，进行多次重载以适应不同的需要<br>Override 是进行基类中函数的重写。为了适应需要。<br>6.如果在一个B/S结构的系统中需要传递变量值，但是又不能使用Session、Cookie、Application，您有几种方法进行处理？<br>答 ： <br>this.Server.Transfer<br>7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty？<br>答：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (System.Windows.Forms.Control control in this.Controls)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>if (control is System.Windows.Forms.TextBox)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; <br>&nbsp;&nbsp;&nbsp;&nbsp; tb.Text = String.Empty ;<br>}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>8.请编程实现一个冒泡排序算法？<br>答：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int [] array = new int ;<br>int temp = 0 ;<br>for (int i = 0 ; i &lt; array.Length - 1 ; i++)<br>{<br>&nbsp;&nbsp;for (int j = i + 1 ; j &lt; array.Length ; j++)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp; if (array[j] &lt; array)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;temp = array ;<br>&nbsp;&nbsp;&nbsp;&nbsp;array = array[j] ;<br>&nbsp;&nbsp;&nbsp;&nbsp;array[j] = temp ;<br>&nbsp;&nbsp; }<br>&nbsp;&nbsp;}<br>}<br>9.描述一下C#中索引器的实现过程，是否只能根据数字进行索引？<br>答：不是。可以用任意类型。<br>10.求以下表达式的值，写出您想到的一种或几种实现方法： 1-2+3-4+&#8230;&#8230;+m<br>答：<br>&nbsp;&nbsp;&nbsp;&nbsp;int Num = this.TextBox1.Text.ToString() ;<br>int Sum = 0 ;<br>for (int i = 0 ; i &lt; Num + 1 ; i++)<br>{<br>&nbsp;&nbsp;if((i%2) == 1)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp; Sum += i ;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp; Sum = Sum&nbsp;&nbsp;- I ;<br>&nbsp;&nbsp;}<br>}<br>System.Console.WriteLine(Sum.ToString());<br>System.Console.ReadLine() ;<br>11.用.net做B/S结构的系统，您是用几层结构来开发，每一层之间的关系以及为什么要这样分层？<br>答：一般为3层<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据访问层，业务层，表示层。<br>数据访问层对数据库进行增删查改。<br>业务层一般分为二层，业务表观层实现与表示层的沟通，业务规则层实现用户密码的安全等。<br>表示层为了与用户交互例如用户添加表单。<br>优点：&nbsp;&nbsp;分工明确，条理清晰，易于调试，而且具有可扩展性。<br>缺点：&nbsp;&nbsp;增加成本。<br>12.在下面的例子里<br>&nbsp;&nbsp;&nbsp;&nbsp; using System;<br>&nbsp;&nbsp;&nbsp;&nbsp; class A<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public A()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFields();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public virtual void PrintFields(){}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class B:A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public B()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y=-1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override void PrintFields()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("x={0},y={1}",x,y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>当使用new B()创建B的实例时，产生什么输出？<br>答：X=1,Y=0;x= 1 y = -1<br>13.什么叫应用程序域？<br>答：应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。<br>14.CTS、CLS、CLR分别作何解释？<br>答：CTS：通用语言系统。CLS：通用语言规范。CLR：公共语言运行库。<br>15.什么是装箱和拆箱？<br>答：从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。<br>16.什么是受管制的代码？<br>答：unsafe：非托管代码。不经过CLR运行。<br>17.什么是强类型系统？<br>答：RTTI：类型识别系统。<br>18.net中读写数据库需要用到那些类？他们的作用？<br>答：DataSet:数据存储器。<br>&nbsp;&nbsp;&nbsp;&nbsp;DataCommand:执行语句命令。<br>&nbsp;&nbsp;&nbsp;&nbsp;DataAdapter:数据的集合，用语填充。<br>19.ASP.net的身份验证方式有哪些？分别是什么原理？<br>答：10。Windwos(默认)用IIS...From(窗体)用帐户....Passport(密钥)<br>20.什么是Code-Behind技术？<br>答：代码后植。<br>21.在.net中，配件的意思是？<br>答：程序集。（中间语言，源数据，资源，装配清单）<br>22.常用的调用WebService的方法有哪些？<br>答：1.使用WSDL.exe命令行工具。<br>&nbsp;&nbsp;&nbsp;&nbsp;2.使用VS.NET中的Add Web Reference菜单选项<br>23..net Remoting 的工作原理是什么？<br>答：服务器端向客户端发送一个进程编号，一个程序域编号，以确定对象的位置。<br>24.在C＃中，string str = null 与 string str = &#8220;&#8221; 请尽量使用文字或图象说明其中的区别。 <br>答：string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。<br>25.请详述在dotnet中类(class)与结构(struct)的异同？<br>答：Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的. <br>26.根据委托(delegate)的知识，请完成以下用户控件中代码片段的填写： <br>namespace test <br>{ <br>public delegate void OnDBOperate(); <br>public class UserControlBase : System.Windows.Forms.UserControl <br>{ <br>public event OnDBOperate OnNew; <br>privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)<br>{ <br>if(e.Button.Equals(BtnNew)) <br>{ <br>//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。<br>} <br>} <br>}<br>答：if( OnNew != null ) <br>&nbsp;&nbsp;&nbsp;&nbsp;OnNew( this, e ); <br>27.分析以下代码，完成填空 <br>string strTmp = "abcdefg某某某"; <br>int i= System.Text.Encoding.Default.GetBytes(strTmp).Length; <br>int j= strTmp.Length; <br>以上代码执行完后，i= j= <br>答：i=13,j=10 <br>28.SQLSERVER服务器中，给定表 table1 中有两个字段 ID、LastUpdateDate，ID表示更新的事务号， LastUpdateDate表示更新时的服务器时间，请使用一句SQL语句获得最后更新的事务号<br>答：Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1) <br>29.根据线程安全的相关知识，分析以下代码，当调用test方法时i&gt;10时是否会引起死锁?并简要说明理由。<br>public void test(int i) <br>{ <br>&nbsp;&nbsp; lock(this) <br>{ <br>&nbsp;&nbsp; if (i&gt;10) <br>&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp; i--; <br>&nbsp;&nbsp;&nbsp;&nbsp; test(i); <br>&nbsp;&nbsp; } <br>} <br>}<br>答：不会发生死锁，（但有一点int是按值传递的，所以每次改变的都只是一个副本，因此不会出现死锁。但如果把int换做一个object，那么死锁会发生）<br>30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。<br>答：WS主要是可利用HTTP，穿透防火墙。而Remoting可以利用TCP/IP，二进制传送提高效率。<br>31.公司要求开发一个继承System.Windows.Forms.ListView类的组件，要求达到以下的特殊功能：点击ListView各列列头时，能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识，请简要谈一下您的思路<br>答：根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。<br>32.给定以下XML文件，完成算法流程图。<br>&lt;FileSystem&gt; <br>&lt; DriverC &gt; <br>&lt;Dir DirName=&#8221;MSDOS622&#8221;&gt; <br>&lt;File FileName =&#8221; Command.com&#8221; &gt;&lt;/File&gt; <br>&lt;/Dir&gt; <br>&lt;File FileName =&#8221;MSDOS.SYS&#8221; &gt;&lt;/File&gt; <br>&lt;File FileName =&#8221; IO.SYS&#8221; &gt;&lt;/File&gt; <br>&lt;/DriverC&gt; <br>&lt;/FileSystem&gt; <br>请画出遍历所有文件名（FileName）的流程图(请使用递归算法)。<br>答：<br>void FindFile( Directory d ) <br>{ <br>&nbsp;&nbsp; FileOrFolders = d.GetFileOrFolders(); <br>&nbsp;&nbsp; foreach( FileOrFolder fof in FileOrFolders ) <br>&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp; if( fof is File ) <br>&nbsp;&nbsp;&nbsp;&nbsp; You Found a file; <br>&nbsp;&nbsp;&nbsp;&nbsp; else if ( fof is Directory ) <br>&nbsp;&nbsp;&nbsp;&nbsp; FindFile( fof ); <br>&nbsp;&nbsp;&nbsp;&nbsp;} <br>}<br>33.写出一条Sql语句：取出表A中第31到第40记录（SQLServer,以自动增长的ID作为主键,注意：ID可能不是连续的。<br>答：解1:&nbsp;&nbsp;select top 10 * from A where id not in (select top 30 id from A) <br>&nbsp;&nbsp;&nbsp;&nbsp;解2:&nbsp;&nbsp;select top 10 * from A where id &gt; (select max(id) from (select top 30 id from A )as A) <br>34.面向对象的语言具有________性、_________性、________性<br>答：封装、继承、多态。<br>35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。<br>答：IEnumerable 、 GetEnumerator。<br>36.GC是什么? 为什么要有GC?<br>答：GC是垃圾收集器。程序员不用担心内存管理，因为垃圾收集器会自动进行管理。要请求垃圾收集，可以调用下面的方法之一： <br>&nbsp;&nbsp;System.gc()<br>&nbsp;&nbsp;Runtime.getRuntime().gc()<br>37.String s = new String("xyz");创建了几个String Object?<br>答：两个对象，一个是&#8220;xyx&#8221;,一个是指向&#8220;xyx&#8221;的引用对象s。<br>38.abstract class和interface有什么区别?<br>答：<br>声明方法的存在而不去实现它的类被叫做抽象类（abstract class），它用于要创建一个体现某些基本行为的类，并为该类声明方法，但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量，其类型是一个抽象类，并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现，否则它们也是抽象类为。取而代之，在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。<br>接口（interface）是抽象类的变体。在接口中，所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的，没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似，除了该实现类不能从接口定义中继承行为。当类实现特殊接口时，它定义（即将程序体给予）所有这种接口的方法。然后，它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类，它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换，instanceof 运算符可以用来决定某对象的类是否实现了接口。<br>39.启动一个线程是用run()还是start()?<br>答：启动一个线程是调用start()方法，使线程所代表的虚拟处理机处于可运行状态，这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。<br>40.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?<br>答：接口可以继承接口。抽象类可以实现(implements)接口，抽象类是否可继承实体类，但前提是实体类必须有明确的构造函数。<br>41.构造器Constructor是否可被override?<br>答：构造器Constructor不能被继承，因此不能重写Overriding，但可以被重载Overloading。<br>42.是否可以继承String类?<br>答：String类是final类故不可以继承。<br>43.try {}里有一个return语句，那么紧跟在这个try后的finally {}里的code会不会被执行，什么时候被执行，在return前还是后?<br>答：会执行，在return前执行。<br>44.两个对象值相同(x.equals(y) == true)，但却可有不同的hash code，这句话对不对?<br>答：不对，有相同的hash code。<br>45.swtich是否能作用在byte上，是否能作用在long上，是否能作用在String上?<br>答：switch（expr1）中，expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。<br>47.当一个线程进入一个对象的一个synchronized方法后，其它线程是否可进入此对象的其它方法?<br>不能，一个对象的一个synchronized方法只能由一个线程访问。<br>48.abstract的method是否可同时是static,是否可同时是native，是否可同时是synchronized?<br>答：都不能。<br>49.List, Set, Map是否继承自Collection接口?<br>答：List，Set是Map不是<br>50.Set里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?<br>答：Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。<br>equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值。<br>51.数组有没有length()这个方法? String有没有length()这个方法？<br>答：数组没有length()这个方法，有length的属性。String有有length()这个方法。<br>52.sleep() 和 wait() 有什么区别?<br>答：sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后，线程不一定立即恢复执行。这是因为在那个时刻，其它线程可能正在运行而且没有被调度为放弃执行，除非(a)&#8220;醒来&#8221;的线程具有更高的优先级<br>(b)正在运行的线程因为其它原因而阻塞。<br>wait()是线程交互时，如果线程对一个同步对象x 发出一个wait()调用，该线程会暂停执行，被调对象进入等待状态，直到被唤醒或等待时间到。<br>53.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?<br>答：short s1 = 1; s1 = s1 + 1;有错，s1是short型，s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。<br>54.谈谈final, finally, finalize的区别。<br>答：<br>final—修饰符（关键字）如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此&nbsp;&nbsp;&nbsp;&nbsp; 一个类不能既被声明为 abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中&nbsp;&nbsp;&nbsp;&nbsp; 不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为&nbsp;&nbsp;&nbsp;&nbsp; final的方法也同样只能使用，不能重载<br>finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch 子句就会&nbsp;&nbsp;&nbsp;&nbsp; 执行，然后控制就会进入 finally 块（如果有的话）。<br>finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理&nbsp;&nbsp;&nbsp;&nbsp; 工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的&nbsp;&nbsp;&nbsp;&nbsp; ，因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;方法是在垃圾收集器删除对象之前对这个对象调用的。<br>55.如何处理几十万条并发数据？<br>答：用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.<br>56.Session有什么重大BUG，微软提出了什么方法加以解决？<br>答：是iis中由于有进程回收机制，系统繁忙的话Session会丢失，可以用Sate&nbsp;&nbsp; server或SQL&nbsp;&nbsp; Server数据库的方式存储Session不过这种方式比较慢，而且无法捕获Session的END事件。<br>57.进程和线程的区别？<br>答：进程是系统进行资源分配和调度的单位；线程是CPU调度和分派的单位，一个进程可以有多个线程，这些线程共享这个进程的资源。<br>58.堆和栈的区别？<br>答：<br>&nbsp;&nbsp;&nbsp;&nbsp;栈：由编译器自动分配、释放。在函数体中定义的变量通常在栈上。<br>&nbsp;&nbsp;&nbsp;&nbsp;堆：一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。<br>59.成员变量和成员函数前加static的作用？<br>答：它们被称为常成员变量和常成员函数，又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量，类成员函数负责这种统计的动作。<br>60.ASP。NET与ASP相比，主要有哪些进步？<br>答：asp解释形，aspx编译型，性能提高，有利于保护源码。<br>61.产生一个int数组，长度为100，并向其中随机插入1-100，并且不能重复。<br>int[] intArr=new int[100];<br>ArrayList myList=new ArrayList();<br>Random rnd=new Random();<br>while(myList.Count&lt;100)<br>{<br>int num=rnd.Next(1,101);<br>if(!myList.Contains(num))<br>myList.Add(num);<br>}<br>&nbsp;&nbsp;for(int i=0;i&lt;100;i++)<br>&nbsp;&nbsp; intArr=(int)myList;<br>62.请说明在.net中常用的几种页面间传递参数的方法，并说出他们的优缺点。<br>答：session(viewstate) 简单，但易丢失<br>&nbsp;&nbsp;&nbsp;&nbsp;application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;全局<br>&nbsp;&nbsp;&nbsp;&nbsp;cookie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简单，但可能不支持，可能被伪造<br>&nbsp;&nbsp;&nbsp;&nbsp;input ttype="hidden"&nbsp;&nbsp;&nbsp;&nbsp; 简单，可能被伪造<br>&nbsp;&nbsp;&nbsp;&nbsp;url参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;简单，显示于地址栏，长度有限<br>&nbsp;&nbsp;&nbsp;&nbsp;数据库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 稳定，安全，但性能相对弱<br>63.请指出GAC的含义？<br>答：全局程序集缓存。<br>64.向服务器发送请求有几种方式？<br>答：get,post。get一般为链接方式，post一般为按钮方式。<br>65.DataReader与Dataset有什么区别？<br>答：一个是只能向前的只读游标，一个是内存中的表。<br>66.软件开发过程一般有几个阶段？每个阶段的作用？<br>答：需求分析，架构设计，代码编写，QA，部署<br>67.在c#中using和new这两个关键字有什么意义，请写出你所知道的意义？using 指令 和语句 new 创建实例 new 隐藏基类中方法。<br>答：using 引入名称空间或者使用非托管资源<br>&nbsp;&nbsp;&nbsp;&nbsp;new 新建实例或者隐藏父类方法<br>68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.<br>答：string inputStr=" xx&nbsp;&nbsp; xx&nbsp;&nbsp;";<br>inputStr=Regex.Replace(inputStr.Trim()," *"," ");<br>69.下面这段代码输出什么？为什么？<br>int i=5;<br>int j=5;<br>if (Object.ReferenceEquals(i,j))<br>Console.WriteLine("Equal");<br>else<br>Console.WriteLine("Not Equal");<br>答：不相等，因为比较的是对象<br>70.什么叫做SQL注入，如何防止？请举例说明。<br>答：利用sql关键字对网站进行攻击。过滤关键字'等<br>71.什么是反射？<br>答：动态获取程序集信息<br>72.用Singleton如何写设计模式<br>答：static属性里面new ,构造函数private<br>73.什么是Application Pool？<br>答：Web应用，类似Thread Pool，提高并发性能。<br>74.什么是虚函数？什么是抽象函数？<br>答：虚函数：没有实现的，可由子类继承并重写的函数。抽象函数：规定其非虚子类必须实现的函数，必须被重写。<br>75.什么是XML？<br>答：XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号，通过此种标记，计算机之间可以处理包含各种信息的文章等。如何定义这些标记，即可以选择国际通用的标记语言，比如HTML，也可以使用象XML这样由相关人士自由决定的标记语言，这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。<br>76.什么是Web Service？UDDI？<br>答：Web Service便是基于网络的、分布式的模块化组件，它执行特定的任务，遵守具体的技术规范，这些规范使得Web Service能与其他兼容的组件进行互操作。<br>　&nbsp;&nbsp;UDDI 的目的是为电子商务建立标准；UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范，同时也包含一组使企业能将自身提供的Web Service注册，以使别的企业能够发现的访问协议的实现标准。<br>77.什么是ASP.net中的用户控件？<br>答：用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。<br>78.列举一下你所了解的XML技术及其应用<br>答：xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config<br>79.ADO.net中常用的对象有哪些？分别描述一下。<br>答：Connection 数据库连接对象<br>&nbsp;&nbsp;&nbsp;&nbsp;Command 数据库命令<br>&nbsp;&nbsp;&nbsp;&nbsp;DataReader 数据读取器<br>&nbsp;&nbsp;&nbsp;&nbsp;DataSet 数据集<br>80.什么是code-Behind技术。<br>答：ASPX,RESX和CS三个后缀的文件，这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.<br>81.什么是SOAP,有哪些应用。<br>答：simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议..<br>82.C#中 property 与 attribute的区别，他们各有什么用处，这种机制的好处在哪里？<br>答：一个是属性，用于存取类的字段，一个是特性，用来标识类，方法等的附加性质<br>83.XML 与 HTML 的主要区别<br>答：1. XML是区分大小写字母的，HTML不区分。 <br>&nbsp;&nbsp;&nbsp;&nbsp;2. 在HTML中，如果上下文清楚地显示出段落或者列表键在何处结尾，那么你可以省略&lt;/p&gt;或者&lt;/li&gt;之类的结束&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 标记。在XML中，绝对不能省略掉结束标记。 <br>&nbsp;&nbsp;&nbsp;&nbsp;3. 在XML中，拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找结束标记了。 <br>&nbsp;&nbsp;&nbsp;&nbsp;4. 在XML中，属性值必须分装在引号中。在HTML中，引号是可用可不用的。 <br>&nbsp;&nbsp;&nbsp;&nbsp;5. 在HTML中，可以拥有不带值的属性名。在XML中，所有的属性都必须带有相应的值。<br>84.c#中的三元运算符是？<br>答：？：。<br>85.当整数a赋值给一个object对象时，整数a将会被？<br>答：装箱。<br>86.类成员有_____种可访问形式？<br>答：this.;new Class().Method;<br>87.public static const int A=1;这段代码有错误么？是什么？<br>答：const不能用static修饰。<br>88.float f=-123.567F; int i=(int)f;i的值现在是_____? <br>答：-123。<br>89.委托声明的关键字是______?<br>答：delegate.<br>90.用sealed修饰的类有什么特点？<br>答：密封，不能继承。<br>91.在Asp.net中所有的自定义用户控件都必须继承自________?<br>答：Control。<br>92.在.Net中所有可序列化的类都被标记为_____? <br>答：[serializable]<br>93.在.Net托管代码中我们不用担心内存漏洞，这是因为有了______?<br>答：GC。<br>94.下面的代码中有什么错误吗？_______<br>&nbsp;&nbsp;&nbsp;&nbsp; using System;<br>&nbsp;&nbsp;&nbsp;&nbsp; class A<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public virtual void F(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("A.F");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abstract class B:A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public abstract override void F();&nbsp;&nbsp;答：abstract override 是不可以一起修饰. <br>&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; // new public abstract void F(); <br>95.当类T只声明了私有实例构造函数时，则在T的程序文本外部，___可以___（可以 or 不可以）从T派生出新的类，不可以____（可以 or 不可以）直接创建T的任何实例。<br>答：不可以，不可以。<br>96.下面这段代码有错误么？<br>&nbsp;&nbsp;&nbsp;&nbsp;switch (i){<br>&nbsp;&nbsp;&nbsp;&nbsp;case():&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;答：//case()条件不能为空<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CaseZero();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;case 1:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CaseOne();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;case 2:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dufault;&nbsp;&nbsp; 答：//wrong，格式不正确<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CaseTwo();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp; }<br>97.在.Net中，类System.Web.UI.Page 可以被继承么？<br>答：可以。<br>98..net的错误处理机制是什么？<br>答：.net错误处理机制采用try-&gt;catch-&gt;finally结构，发生错误时，层层上抛，直到找到匹配的Catch为止。<br>99.利用operator声明且仅声明了==，有什么错误么?<br>答：要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="<br>100.在.net（C# or vb.net）中如何用户自定义消息，并在窗体中处理这些消息。<br>答：在form中重载DefWndProc函数来处理消息:<br>protected override void DefWndProc ( ref System.WinForms.Message m ) <br>{ <br>&nbsp;&nbsp;switch(m.msg) <br>&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;case WM_Lbutton : <br>　&nbsp;&nbsp;///string与MFC中的CString的Format函数的使用方法有所不同 <br>　&nbsp;&nbsp;string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam); <br>　&nbsp;&nbsp;MessageBox.Show(message);///显示一个消息框 <br>　&nbsp;&nbsp;break; <br>&nbsp;&nbsp;&nbsp;&nbsp;case USER:<br>&nbsp;&nbsp;&nbsp;&nbsp;处理的代码<br>&nbsp;&nbsp;&nbsp;&nbsp;default: <br>　&nbsp;&nbsp;base.DefWndProc(ref m);///调用基类函数处理非自定义消息。 <br>　&nbsp;&nbsp;break; <br>&nbsp;&nbsp;} <br>}<br>101.在.net（C# or vb.net）中如何取消一个窗体的关闭。<br>答：private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Cancel=true;<br>&nbsp;&nbsp; } <br>102.在.net（C# or vb.net）中，Appplication.Exit 还是 Form.Close有什么不同？<br>答：一个是退出整个应用程序，一个是关闭其中一个form。<br>103.在C#中有一个double型的变量，比如10321.5，比如122235401.21644，作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122，235，401.22而在英国则为￡10&nbsp;&nbsp;321.50和￡122&nbsp;&nbsp;235&nbsp;&nbsp;401.22<br>答：System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");<br>&nbsp;&nbsp;&nbsp;&nbsp;//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");为英&nbsp;&nbsp;&nbsp;&nbsp;国&nbsp;&nbsp;货币类型<br>&nbsp;&nbsp;&nbsp;&nbsp;decimal y = 9999999999999999999999999999m;<br>&nbsp;&nbsp;&nbsp;&nbsp;string str = String.Format(MyCulture,"My amount = {0:c}",y);<br>104.某一密码仅使用K、L、M、N、O共5个字母，密码中的单词从左向右排列，密码单词必须遵循如下规则：<br>（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 密码单词的最小长度是两个字母，可以相同，也可以不同<br>（2）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K不可能是单词的第一个字母<br>（3）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果L出现，则出现次数不止一次<br>（4）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M不能使最后一个也不能是倒数第二个字母<br>（5）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K出现，则N就一定出现<br>（6）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; O如果是最后一个字母，则L一定出现<br>问题一：下列哪一个字母可以放在LO中的O后面，形成一个3个字母的密码单词？<br>&nbsp;&nbsp;A) K&nbsp;&nbsp; B)L&nbsp;&nbsp; C) M&nbsp;&nbsp;&nbsp;&nbsp;D) N<br>答案:B<br>问题二：如果能得到的字母是K、L、M，那么能够形成的两个字母长的密码单词的总数是多少？<br>&nbsp;&nbsp;A)1个&nbsp;&nbsp;B)3个&nbsp;&nbsp;C)6个&nbsp;&nbsp;D）9个<br>答案:A<br>问题三：下列哪一个是单词密码？<br>&nbsp;&nbsp;A) KLLN&nbsp;&nbsp; B) LOML&nbsp;&nbsp; C) MLLO&nbsp;&nbsp; D)NMKO<br>答案:C<br>8. 62-63=1 等式不成立，请移动一个数字（不可以移动减号和等于号），使得等式成立，如何移动？<br>答案:62移动成2的6次方<br>105.对于这样的一个枚举类型：<br>enum Color:byte<br>{<br>&nbsp;&nbsp;Red,<br>&nbsp;&nbsp;Green,<br>&nbsp;&nbsp;Blue,<br>&nbsp;&nbsp;orange<br>}<br>答：string[] ss=Enum.GetNames(typeof(Color));<br>&nbsp;&nbsp;&nbsp;&nbsp;byte[] bb=Enum.GetValues(typeof(Color));<br>106. C#中 property 与 attribute的区别，他们各有什么用处，这种机制的好处在哪里？<br>答：attribute:自定义属性的基类;property :类中的属性<br>107.C#可否对内存进行直接的操作？<br>答：在.net下，.net引用了垃圾回收（GC）功能，它替代了程序员&nbsp;&nbsp;不过在C#中，不能直接实现Finalize方法，而是在析构函数中调用基类的Finalize()方法<br>108.ADO。NET相对于ADO等主要有什么改进？<br>答：1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持<br>109.写一个HTML页面，实现以下功能，左键点击页面时显示&#8220;您好&#8221;，右键点击时显示&#8220;禁止右键&#8221;。并在2分钟后自动关闭页面。<br>答：&lt;script language=javascript&gt;<br>setTimeout('window.close();',3000);<br>function show()<br>{<br>&nbsp;&nbsp;if (window.event.button == 1)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp; alert("左");<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (window.event.button == 2)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp; alert("右");<br>&nbsp;&nbsp;}<br>}<br>&lt;/script&gt;<br>110.大概描述一下ASP。NET服务器控件的生命周期<br>答：初始化&nbsp;&nbsp;加载视图状态&nbsp;&nbsp;处理回发数据&nbsp;&nbsp;加载&nbsp;&nbsp;发送回发更改通知&nbsp;&nbsp;处理回发事件&nbsp;&nbsp;预呈现&nbsp;&nbsp;保存状态&nbsp;&nbsp;呈现&nbsp;&nbsp;处置&nbsp;&nbsp;卸载<br>111.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)?<br>答：不能，可以实现接口<br>112.Static Nested Class 和 Inner Class的不同，说得越多越好<br>答：Static Nested Class是被声明为静态（static）的内部类，它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。<br>113.，&amp;和&amp;&amp;的区别。<br>&amp;是位运算符，表示按位与运算，&amp;&amp;是逻辑运算符，表示逻辑与（and）.<br>114.HashMap和Hashtable的区别。<br>答：HashMap是Hashtable的轻量级实现（非线程安全的实现），他们都完成了Map接口，主要区别在于HashMap允许空（null）键值（key）,由于非线程安全，效率上可能高于Hashtable.<br>115.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?<br>答：short s1 = 1; s1 = s1 + 1; （s1+1运算结果是int型，需要强制转换类型）<br>short s1 = 1; s1 += 1;（可以正确编译）<br>116.Overloaded的方法是否可以改变返回值的类型?<br>答：Overloaded的方法是可以改变返回值的类型。<br>117.error和exception有什么区别?<br>答：error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。<br>exception 表示一种设计或实现问题。也就是说，它表示如果程序运行正常，从不会发生的情况。<br>118.&lt;%# %&gt; 和 &lt;%&nbsp;&nbsp;%&gt; 有什么区别？<br>答：&lt;%# %&gt;表示绑定的数据源<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;% %&gt;是服务器端代码块<br>119.你觉得ASP.NET 2.0（VS2005）和你以前使用的开发工具（.Net 1.0或其他）有什么最大的区别？你在以前的平台上使用的哪些开发思想（pattern / architecture）可以移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)<br>答：1&nbsp;&nbsp;ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.<br>&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 法 在页面嵌入服务器端代码获得帮助提示,<br>&nbsp;&nbsp;&nbsp;&nbsp;3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢<br>&nbsp;&nbsp;&nbsp;&nbsp;4 在绑定数据,做表的分页.Update,Delete,等操作都可以可视化操作,方便了初学者<br>&nbsp;&nbsp;&nbsp;&nbsp;5 在ASP.NET中增加了40多个新的控件,减少了工作量<br>120.重载与覆盖的区别？<br>答：1、方法的覆盖是子类和父类之间的关系，是垂直关系；方法的重载是同一个类中方法之间的关系，是水平关系<br>&nbsp;&nbsp;&nbsp;&nbsp;2、覆盖只能由一个方法，或只能由一对方法产生关系；方法的重载是多个方法之间的关系。<br>&nbsp;&nbsp;&nbsp;&nbsp;3、覆盖要求参数列表相同；重载要求参数列表不同。<br>&nbsp;&nbsp;&nbsp;&nbsp;4、覆盖关系中，调用那个方法体，是根据对象的类型（对象对应存储空间类型）来决定；重载关系，是根据调&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用时的实参表与形参表来选择方法体的。<br>121.描述一下C#中索引器的实现过程，是否只能根据数字进行索引？ <br>答：不是。可以用任意类型。<br>122.在C＃中，string str = null 与 string str = " " 请尽量使用文字或图象说明其中的区别。<br>答：null是没有空间引用的；<br>&nbsp;&nbsp;&nbsp;&nbsp;" " 是空间为0的字符串；<br>123.分析以下代码，完成填空<br>string strTmp = "abcdefg某某某"; <br>int i= System.Text.Encoding.Default.GetBytes(strTmp).Length; <br>int j= strTmp.Length; <br>以上代码执行完后，i= j= <br>答：i=13.j=10<br>124.SQLSERVER服务器中，给定表 table1 中有两个字段 ID、LastUpdateDate，ID表示更新的事务号， LastUpdateDate表示更新时的服务器时间，请使用一句SQL语句获得最后更新的事务号<br>答：Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1) <br>125.分析以下代码。<br>public static void test(string ConnectString) <br>{ <br>System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(); <br>conn.ConnectionString = ConnectString; <br>try <br>{ <br>conn.Open(); <br>&#8230;&#8230;. <br>}<br>catch(Exception Ex) <br>{ <br>MessageBox.Show(Ex.ToString()); <br>}<br>finally <br>{ <br>if (!conn.State.Equals(ConnectionState.Closed)) <br>conn.Close(); <br>} <br>}<br>请问 <br>1)以上代码可以正确使用连接池吗？ <br>答：回答：如果传入的connectionString是一模一样的话，可以正确使用连接池。不过一模一样的意思是，连字符的空格数，顺序完全一致。 <br>2)以上代码所使用的异常处理方法，是否所有在test方法内的异常都可以被捕捉并显示出来？ <br>答：只可以捕捉数据库连接中的异常吧. （finally中，catch中，如果有别的可能引发异常的操作，也应该用try,catch。所以理论上并非所有异常都会被捕捉。） <br>126.公司要求开发一个继承System.Windows.Forms.ListView类的组件，要求达到以下的特殊功能：点击ListView各列列头时，能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识，请简要谈一下您的思路：<br>答：根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中<br>127.什么是WSE？目前最新的版本是多少？<br>答：WSE (Web Service Extension) 包来提供最新的WEB服务安全保证，目前最新版本2.0。<br>128.在下面的例子里<br>&nbsp;&nbsp;&nbsp;&nbsp; using System;<br>&nbsp;&nbsp;&nbsp;&nbsp; class A<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public A(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFields();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public virtual void PrintFields(){}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class B:A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int x=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public B(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y=-1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override void PrintFields(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("x={0},y={1}",x,y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>当使用new B()创建B的实例时，产生什么输出？<br>答：X=1,Y=0<br>129.下面的例子中<br>&nbsp;&nbsp;&nbsp;&nbsp; using System;<br>&nbsp;&nbsp;&nbsp;&nbsp; class A<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static int X;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static A(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=B.Y+1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Y=A.X+1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static B(){}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("X={0},Y={1}",A.X,B.Y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>产生的输出结果是什么？<br>答：x=1,y=2<br>130.abstract class和interface有什么区别?<br>答：声明方法的存在而不去实现它的类被叫做抽象类（abstract class），它用于要创建一个体现某些基本行为的类，并为该类声明方法，但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量，其类型是一个抽象类，并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现，否则它们也是抽象类为。取而代之，在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。<br>接口（interface）是抽象类的变体。在接口中，所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的，没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似，除了该实现类不能从接口定义中继承行为。当类实现特殊接口时，它定义（即将程序体给予）所有这种接口的方法。然后，它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类，它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换，instanceof 运算符可以用来决定某对象的类是否实现了接口。<br>姓名：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日期：<br>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;填空: (1)面向对象的语言具有________性、_________性、________性。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3)列举ADO.net中的五个主要对象_______________、_____________、_______________、_______________、_________________。<br>2. 不定项选择：<br>(1) 以下叙述正确的是： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A. 接口中可以有虚方法。&nbsp;&nbsp;&nbsp;&nbsp; B. 一个类可以实现多个接口。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C. 接口不能被实例化。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D. 接口中可以包含已实现的方法。<br>&nbsp;&nbsp; (2) 从数据库读取记录，你可能用到的方法有：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A. ExecuteNonQuery&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B. ExecuteScalar<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C. Fill&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D. ExecuteReader<br>3. 简述 private、 protected、 public、 internal 修饰符的访问权限。<br>4. 写出一条Sql语句： 取出表A中第31到第40记录（SQLServer, 以自动增长的ID作为主键,&nbsp;&nbsp;注意：ID可能不是连续的。）<br>5 .列举ASP.NET 页面之间传递值的几种方式。<br>6. 写出程序的输出结果<br>class Class1&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private string str = "Class1.str";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private int i = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void StringConvert(string str)&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str = "string being converted.";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void StringConvert(Class1 c)&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.str = "string being converted.";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Add(int i)&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void AddWithRef(ref int i)&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; static void Main()&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i1 = 10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i2 = 20;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string str = "str";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class1 c = new Class1();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add(i1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AddWithRef(ref i2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add(c.i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringConvert(str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringConvert(c);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(i1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(i2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(c.i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(c.str);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>7.写出程序的输出结果<br>public abstract class A&nbsp;&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public A()&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine('A');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public virtual void Fun()&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("A.Fun()");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>public class B: A&nbsp;&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public B() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine('B');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public new void Fun()&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("B.Fun()");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main()&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A a = new B();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.Fun();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;写出程序的输出结果：<br>public class A&nbsp;&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public virtual void Fun1(int i) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void Fun2(A a)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.Fun1(1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fun1(5);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>public class B : A&nbsp;&nbsp;<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public override void Fun1(int i)&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.Fun1 (i + 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static void Main()&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B b = new B();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A a = new A();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.Fun2(b);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.Fun2(a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... <br>&nbsp;&nbsp; 求第30位数是多少， 用递归算法实现。(C#语言)<br>10.&nbsp;&nbsp;程序设计: 猫大叫一声，所有的老鼠都开始逃跑，主人被惊醒。(C#语言)<br>要求：&nbsp;&nbsp;1.要有联动性，老鼠和主人的行为是被动的。<br>2.考虑可扩展性，猫的叫声可能引起其他联动效应。<br>参考答案:<br>1. (1)&nbsp;&nbsp;继承性、封装性、多态性。（考基本概念）<br>&nbsp;&nbsp; (2)&nbsp;&nbsp;IEnumerable 、 GetEnumerator (对foreach机制的理解，本来不想出这题的，凑分)<br>&nbsp;&nbsp; (3)&nbsp;&nbsp;... (送分题, 对ADO.net的了解)&nbsp;&nbsp;<br>
<img src ="http://www.cnitblog.com/lby91772/aggbug/41761.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2008-04-01 12:15 <a href="http://www.cnitblog.com/lby91772/archive/2008/04/01/41761.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp tips</title><link>http://www.cnitblog.com/lby91772/archive/2008/04/01/41760.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Tue, 01 Apr 2008 04:09:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2008/04/01/41760.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/41760.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2008/04/01/41760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/41760.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/41760.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网络命令：netstat -a-n1。在gridview里面选中删除一行。在GridView中添加一个模板列：LinkButton.设置CommandName="Delete"，OnClientClick="return confirm('确认要删除吗？');"Html代码如下：&lt;asp:TemplateField&nbsp;HeaderText="删除"&gt;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cnitblog.com/lby91772/archive/2008/04/01/41760.html'>阅读全文</a><img src ="http://www.cnitblog.com/lby91772/aggbug/41760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2008-04-01 12:09 <a href="http://www.cnitblog.com/lby91772/archive/2008/04/01/41760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp.net status</title><link>http://www.cnitblog.com/lby91772/archive/2008/04/01/41759.html</link><dc:creator>lby</dc:creator><author>lby</author><pubDate>Tue, 01 Apr 2008 04:06:00 GMT</pubDate><guid>http://www.cnitblog.com/lby91772/archive/2008/04/01/41759.html</guid><wfw:comment>http://www.cnitblog.com/lby91772/comments/41759.html</wfw:comment><comments>http://www.cnitblog.com/lby91772/archive/2008/04/01/41759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/lby91772/comments/commentRss/41759.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/lby91772/services/trackbacks/41759.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ASP.NET状态管理                            2007-11-28 04:24                                        第一部分：页面状态介绍Http协议————&#8220;无状态协议&#8221;Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的&#8220;无状态&#8221;链接。...&nbsp;&nbsp;<a href='http://www.cnitblog.com/lby91772/archive/2008/04/01/41759.html'>阅读全文</a><img src ="http://www.cnitblog.com/lby91772/aggbug/41759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/lby91772/" target="_blank">lby</a> 2008-04-01 12:06 <a href="http://www.cnitblog.com/lby91772/archive/2008/04/01/41759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>