﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java-fly-随笔分类-java</title><link>http://www.blogjava.net/yusiwei/category/44908.html</link><description>Where there is a will,there is a way!</description><language>zh-cn</language><lastBuildDate>Fri, 18 Mar 2011 00:24:36 GMT</lastBuildDate><pubDate>Fri, 18 Mar 2011 00:24:36 GMT</pubDate><ttl>60</ttl><item><title>20个值得收藏的网页设计开放课件</title><link>http://www.blogjava.net/yusiwei/archive/2011/03/17/346440.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Wed, 16 Mar 2011 23:45:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2011/03/17/346440.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/346440.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2011/03/17/346440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/346440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/346440.html</trackback:ping><description><![CDATA[诸如加州大学伯克利分校、华盛顿大学和麻省理工学院等著名学府都提供网页设计和开发课程。这些课程所覆盖的内容和这些大学的课程教学内容是一样的。你可以不付学费，并且在家按自己的步骤来学习。下面就是网页设计的20门课程。（全部均免费！）
<ul>
    <li>1. <a href="http://webcast.berkeley.edu/course_details.php?seriesid=1906978395" rel="nofollow" target="_blank">《计算机简介》</a>：这是加州大学伯克利分校的一门计算机基础课程，非常适用于新手。初学者应先学习这门课程后再学习其他课程。</li>
</ul>
<ul>
    <li>2. <a href="http://wally.cs.iupui.edu/n241_06/" rel="nofollow" target="_blank">《网页设计简介》</a>：印第安纳大学的这门课覆盖从HTML到CSS和多媒体设计等内容。</li>
</ul>
<ul>
    <li>3. <a href="http://www.outreach.washington.edu/openuw/asp/transform.asp?course=Htmlbasics&amp;xml=htmlbasics_intro1" rel="nofollow" target="_blank">《HTML基础》</a>：华盛顿大学的这门课深入讲解HTML的基础结构，还有HTML设计中的所有基础标签。</li>
</ul>
<ul>
    <li>4. <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewiTunesUCollection?id=381369485" rel="nofollow" target="_blank">《网页设计 II》</a>：此课程详细讲解网页设计，并且可以下载到iTunes上。学完迈阿密达德学院的这门课后，你会使用Dreamweaver和Fireworks等软件。</li>
</ul>
<ul>
    <li>5. <a href="http://stellar.mit.edu/S/course/6/fa07/6.837/materials.html" rel="nofollow" target="_blank">《计算机图形学》</a>：麻省理工的这门课程将帮助你学习视觉设计，以及如何在网站上使用计算机图形学相关知识。</li>
</ul>
<ul>
    <li>6. <a href="http://www.cs.ubc.ca/%7Etmm/courses/cpsc533c-06-fall/" rel="nofollow" target="_blank">《网页设计》</a>：（加拿大）英属哥伦比亚大学的这门课程有助提高你在网页设计中的布局能力。</li>
</ul>
<ul>
    <li>7. <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewiTunesUCollection?id=381369375" rel="nofollow" target="_blank">《插图 I和II》</a>：迈阿密达德学院的这门课将教你学习使用Adobe Illustrator，以提升网页设计水平。此课程同样可以下载到iTunes。</li>
</ul>
<ul>
    <li>8. <a href="http://www.aduni.org/courses/web/" rel="nofollow" target="_blank">《Web应用的软件工程》</a>：ADU大学的这门课程主要内容是设计动态网站的基本原理，包括数据库后台、Cookie、脚本语言、SQL和HTML。</li>
</ul>
<ul>
    <li>9. <a href="http://ocw.usq.edu.au/course/view.php?id=15" rel="nofollow" target="_blank">《创建交互性多媒体》</a>：南昆士兰大学的这门课程帮助学生培养交互性多媒体相关技能。比如，创建一个适用于网络浏览器的交互性多媒体简单样例。</li>
</ul>
<ul>
    <li>10. <a href="http://sofia.fhda.edu/gallery/flash/" rel="nofollow" target="_blank">《Flash MX简介》</a>：这门课程是有关Macromedia Flash多媒体创作，来自（保加利亚）索菲亚大学。</li>
</ul>
<ul>
    <li>11. <a href="http://www.csse.monash.edu.au/%7Ecema/courses/FIT5900/lectNotes.html" rel="nofollow" target="_blank">《多媒体编程简介》</a>：（澳大利亚）莫纳什大学的这门课程覆盖了信息设计、导航和编程。</li>
</ul>
<ul>
    <li>12. <a href="http://www.cs.washington.edu/education/courses/454/" rel="nofollow" target="_blank">《高级互联网和网络服务》</a>：华盛顿大学的这门课程介绍诸如搜索引擎和爬虫架构等互联网高级服务。</li>
</ul>
<ul>
    <li>13. <a href="http://sofia.fhda.edu/gallery/html/" rel="nofollow" target="_blank">《网页制作》</a>：该课程来自索菲亚大学，介绍HTML。</li>
</ul>
<ul>
    <li>14. <a href="http://www.planetphotoshop.com/color-theory-101-2.html" rel="nofollow" target="_blank">《颜色理论 101》</a>：该课程有Planet Photoshop提供，向学生讲授如何在网页设计中合理使用颜色。创造性地使用颜色是让网页设计变得栩栩如生的最简单方式之一。</li>
</ul>
<ul>
    <li>15. <a href="http://openlearn.open.ac.uk/course/view.php?name=M873_1" rel="nofollow" target="_blank">《用户界面设计》</a>：此课程由英国开放大学（也称&#8220;空中大学&#8221;）提供，重点讲授用户接界面（UI）设计。你将学习到如何使用文本、颜色和声音来创作美观实用的用户界面。</li>
</ul>
<ul>
    <li>16. <a href="http://openlearn.open.ac.uk/course/view.php?name=T211_1" rel="nofollow" target="_blank">《以人为本的设计》</a>：这门课也是开放大学提供的，着重讲创作实用方便人们使用的设计。</li>
</ul>
<ul>
    <li>17. <a href="http://openlearn.open.ac.uk/course/view.php?name=T173_1" rel="nofollow" target="_blank">《设计》</a>：这是开放大学的用户界面设计基础课程。</li>
</ul>
<ul>
    <li>18. <a href="http://www.wdvl.com/Internet/Law/Copyright/" rel="nofollow" target="_blank">《互联网和版权法》</a>：版权法有关知识同样适用于互联网的信息发布。这门课程是发布网站之前的必修课。</li>
</ul>
<ul>
    <li>19. <a href="http://openlearn.open.ac.uk/course/view.php?id=2643" rel="nofollow" target="_blank">《电子商务和分布式应用程序简介》</a>：开放大学的这门课程有助你理解电子商务，并了解其如何运作。</li>
</ul>
<ul>
    <li>20. <a href="http://openlearn.open.ac.uk/course/view.php?id=2057" rel="nofollow" target="_blank">《无障碍交互设计》</a>：该课程也是开放大学的，主要探讨如何使网站对所有人（包括残疾人）都无障碍访问。如今，无障碍环境已是网页设计中的重要一项内容。</li>
</ul>
<p>　　从这些课程中，你可以学到很多网页设计相关知识。在你了解这些知识好处之前，你会为自己设计并发布网站，或为客户搭建网站。随着时光流逝，当你需要一门复习课程，或者当你准备更新你的网页设计技能时，你也必定能找到更多的开放课件。<br />
<br />
</p>
　　本文出处：<a href="http://www.jobbole.com/" target="_blank">伯乐</a>在线- <a href="http://www.jobbole.com/blog.php" target="_blank">职场</a>博客<br />
　　本文链接：<a href="http://www.jobbole.com/entry.php/365" target="_blank">http://www.jobbole.com/entry.php/365</a><br />
　　Via：<a href="http://www.webdesigncolleges.org/20-open-courseware-classes-on-web-design-worth-bookmarking.html" rel="nofollow" target="_blank">Webdesigncolleges</a>　　<a href="http://www.jobbole.com/showthread.php/3902" target="_blank">文章推荐</a>：关关　　编译：伯乐在线 <a href="http://www.jobbole.com/showthread.php/3546" target="_blank">敏捷翻译</a>组<br />
　　如需转载，请注明文章来源和超链接等版权信息，否则视为侵权，谢谢合作！
<img src ="http://www.blogjava.net/yusiwei/aggbug/346440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2011-03-17 07:45 <a href="http://www.blogjava.net/yusiwei/archive/2011/03/17/346440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>作为一个程序员，数学对你到底有多重要</title><link>http://www.blogjava.net/yusiwei/archive/2011/03/13/346140.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sun, 13 Mar 2011 00:40:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2011/03/13/346140.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/346140.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2011/03/13/346140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/346140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/346140.html</trackback:ping><description><![CDATA[<p>每个计算机系毕业的人，大都学过不少数学课，而且不少学校的计算机系的数学课，通常比一般的其他工科专业的数学要难一些，比如不上高等数学，而是学数学分析，不上线性代数而去上高等代数。但是，大部分毕业了后去做程序员的人，即使是所谓的名校计算机系毕业的，大都工作中也基本完全用不上学的那些数学，基本上，一半时间在CRUD，另一半时间在处理各类字符串、链表、Hash表，知道在面试中回答各种排序的时间复杂度是他们需要的数学的上线了。</p>
<p>　　而在念书的时候，虽然上大学之前，有不少内行的外行的，年老的年轻的人告诉你，数学很重要啊。但是，通常来说，各个学校的计算机系的同学么，爱好学习的，可能重视的也是Thinking in Java，C++ Primer之类的语言书，或者设计模式之类的架构书，抑或是算法与数据结构这些玩意儿；而像我这样天天偷懒放羊的，也不会把数学当作是什么重要的课程好好学习。所以，&#8220;数学真重要&#8221;，这句话，似乎对于大家来说，始终只是飘在天上的一句话，随风飘逝了。</p>
<p>　　于是，五年过去了，程序员们都有了不少的工作经验了，如果不是对工作毫无追求混吃等死的程序员的话，对于天天干活的语言，不论是Java还是C++应该都熟能生巧了，所谓的设计模式、重构、自动化测试等等也手到擒来了，大部分人的title上都加上了Senior了，牛一点的后面大概还跟上了一个Manager，然而，大家都开始考虑一个新的问题——&#8220;30岁以后怎么半？&#8221;，于是，转PM的转PM，考公务员的考公务员，像我这样仍然抱定——&#8220;你看人家美国Rohit都50了还不是天天写程序，别人想请还请不到的&#8221;的单纯想法的人越来越少了。然后，就算这些人，时不时也会觉得，自己天天干的超越CRUD的，所谓写点OO的框架，不也是很无聊的体力活么，写程序的人干两年谁都会干。于是，又有不少人下海创业了，多年以后，这些人中的大部分都会和我一样悲催的没有挣到前继续回来给大大小小的公司写程序。</p>
<p>　　其实，杯具往往发生在一开始，其实，要是咱们当年好好学习，才会发现，也许数学对于你当个不错的程序员来说，没那么重要，但是要再往上走一步，有一点点技术上的创新，就都是数学的事儿了。两年前，我在T公司，用Configurator处理某个程序的时候，开始有点儿意识到这一点了，于是，那阵子还花了不少时间重新翻了翻数理逻辑。今年，换了新工作后为了工作看点儿机器学习的东西的时候，终于发现，这全都是数学啊。当你要超越CRUD，做任何一点点有创新性的技术的时候（不说产品），最有机会遇到的问题，其实是数学问题。虽然从Spring到Hibernate到Rails之类的框架，或者Hadoop，HBase之类的分布式计算框架，也都是技术上的重大革新，但是这些框架类的程序，完善都是阶段性的，一旦出现后，很快都会有相应的Best Practice，又会成为熟练工种的活。而真正针对问题域的解答，反是每天都可以有些新鲜的想法、思路和方案的，这些，往往有个数学的门槛。所以如果你真是挺喜欢写程序的，而且希望自己一直能写更好玩更难的程序，总有一天，你要过了这一道坎儿。</p>
<p>　　所以我很是同意不知道是谁说得，如果你只想当个good programmer，那么数学不重要。但是如果你想当个great programmer，那么数学很重要。在你手里只有锤子的时候，你看什么东西都会是个钉子，想想你如果没有学过算法和数据结构，可能你的大部分程序需要自己写排序的话，都会是傻傻地冒泡吧，反正对于大部分程序来说，在现在这么快的PC下，这点时间差别，大部分情况下，也就是让你等程序执行测试的时候，多个倒杯水的时间。但是很多新鲜，好玩，有挑战的问题，很多数学的概念没有的话，恐怕不是多等个倒水的时间了。而如果你过了这个门槛，你又会发现，一个崭新的世界，又到了你的面前。</p>
<p>　　回过头来，我说数学重要的话，那么重要的是哪些呢？大家常说的通常是离散数学，不过最近比较热门的机器学习这个方向，我目前看到的相关资料都大量依赖于线性代数和概率论，以及一点点微积分。所以，如果你和我一样，希望做点有追求的技术工作的话，开始花点时间学习数学吧。其实万事开头难，也许你和我一样，对着一堆公式符号，感到头晕眼花，但是如果真得按下心来，看上一个小时，这么坚持个一周，其实就会发现，这没啥难的，就当学门新的编程语言得了。</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/yusiwei/aggbug/346140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2011-03-13 08:40 <a href="http://www.blogjava.net/yusiwei/archive/2011/03/13/346140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Java 技术与应用考试试题参考答案</title><link>http://www.blogjava.net/yusiwei/archive/2011/02/19/344661.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 19 Feb 2011 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2011/02/19/344661.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/344661.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2011/02/19/344661.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/344661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/344661.html</trackback:ping><description><![CDATA[<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">一、判断题（正确的描述打钩，错误的打叉，每题 1 分，共 10 分） <br />
1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个 Java 源文件中只能定义一个公有类，并且类名必须与文件名一致。（对） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通过在程序中引入&#8220; import javax.swing.*; &#8221;语句，就可以使用 javax.swing 包中的所有类（包括其嵌套的子包中的类）。&nbsp;&nbsp; （错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要使用嵌套子包中的类，必须再次添加 import 子句 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; J2SE 的功能是 J 2 ME 的一个子集。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">4.&nbsp;&nbsp; Java 字节码只有被装入到内存中之后，才能被执行。（对） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 在当前计算机体系结构之下，CPU无法直接读取保存于磁盘上的程序文件，这些文件所包容的指令必须被装入到内存之后，CPU才能读取。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">5.&nbsp;&nbsp; Swing是一套GUI组件，采用了新的思路设计Java应用程序的界面，它完全地替换掉了原有的AWT。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Swing仍然使用AWT的事件模型，并非完全抛弃。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 值得注意的NetBeans 6.9.1完成最新的更新组件后,创建Java桌面应用程序时，有了一个新的提示消息框： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><br />
<span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 看来Oracle也知道Java在桌面上没戏，干脆放弃了对Swing框架的进一步开发。已经存在这么多年的Swing框架被&#8220;新主人&#8221;抛弃，真不知道该说什么。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">6.&nbsp;&nbsp; 在编程时编写过多的注释，会使编译之后生成的程序文件变大。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 放心， 编译器会删除所有的注释。所以，哪怕你在程序中写了一部长篇小说，也不会拖慢程序的运行速度。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">7.&nbsp;&nbsp; Java Applet 可运行于浏览器中，这意味着浏览器本身就可以直接执行 Applet 程序。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 浏览器本身只认识HTML，它对其他类型信息的支持，比如Flash，Applet，Silverlight应用程序等都是通过启动本地计算机安装的附加插件来实现的。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">8.&nbsp;&nbsp; JDK 5.0新增的枚举类型（ enum ）是一个原始数据类型。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">9.&nbsp;&nbsp; Java 中规定所有的方法都必须放到某个类中，不存在独立于类的方法。（对） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">10.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 面向对象软件系统设计师们经常用到的 UML 是一种编程语言。（错） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<p><br />
<span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">二、简答题（请将答案写到答题纸上，注明题号。每题 4 分，共 40 分） <br />
&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">1.&nbsp;&nbsp; 现代编程语言有两种主要的类型：一种是&#8220;编译型 &#8221;的，比如 C ，程序源码必须经过编译才能运行；另一种是&#8220;解释型 &#8221;的，这种类型的语言（比如早期的 Basic ）通常都拥有一个交互环境，用户输入一句代码计算机就执行一句代码。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Java 属于上述哪种类型？如果你认为 Java 不属于上述任何一种类型，那么它是不是一种新的编程语言类型？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Java源程序需要编译，但运行时需要即时&#8220;解释&#8221;为本地CPU能执行的机器指令，所以它不属于&#8220;纯&#8221;的编译型或解释型，而是一种混合类型。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 有的同学很&#8220;绝&#8221;，他说：&#8220;Java是一种面向对象类型的编程语言&#8221;。这句话还真是对的，我也给了分。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">2.&nbsp;&nbsp; Java 中有两个关键字： void 和 null ，它们有什么区别？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 这题100%的学生都能答对，纯粹是送分题。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">3.&nbsp;&nbsp; 简述&#8220;类（Class）&#8221;、&#8220;类库(Class Library)&#8221;、&#8220;包（Package）&#8221;、&#8220; Jar 文件&#8221;这四个概念间的联系。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 类库其实是一个&#8220;统称&#8221;，它是类的集合。包则是类库的组织形式，它类似于C++中的namespace，可以解决类的同名问题。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Jar则是一个采用Zip格式压缩的文件包 ，主要是为了方便Java组件的复用，简化Java应用程序的部署和发布。Jar包中可以保存任意类型的多个文件和多级嵌套的<br />
<br />
文件夹。比如JDK就包容了不少Jar压缩包，你可以使用解压缩工具(比如WinRAR)去查看它的内容。可以把Jar文件看成是Java类库的一个物理&#8220;载体&#8221;，之所以称<br />
<br />
其为&#8220;物理&#8221;的，是因为我们可以在计算机中直接&#8220;看见&#8221;并&#8220;操作&#8221;它。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 在学习和探索知识的过程中，有的时候就必须注意清晰地分清各个似是而非的概念，这道题有好几个同学就把这几个概念间的关系弄乱了。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">4.&nbsp;&nbsp; 面向对象的程序在运行时会创建多个对象，这些对象之间通常可以相互 &#8220; 发送消息 &#8221; ，谈谈你对 &#8220; 对象之间发送消息 &#8221; 这句话的理解，并编写若干<br />
<br />
句示例代码展示对象之间发送消息的具体编程实现方法。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 对象间的消息发送最基本的手段就是：一个对象执有另一个对象的引用，然后，通这个对象引用调用对方的方法，存取对方的字段（或属性）。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 对象互发消息，其本质目的就是为了交换信息。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 除了上述这两种直接方式之外，我们还可以通过一些第三方的媒价来实现对象间的信息交换：比如利用类的静态字段，利用内存映射文件，利用数据库，利用<br />
<br />
外部共享的&#8220;物理&#8221;文件等。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 我在《.NET 4.0面向对象编程漫谈 》的第14章《对象间的协作与信息交换》中介绍了七八种单个、多个对象间消息发送和信息交换的方式，虽然是用C#实现<br />
<br />
的，但其思想完全可用于Java中。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 掌握这些编程技巧，对开发非常关键。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">5.&nbsp;&nbsp; 加法运算符&#8220;+&#8221;可以施加于原始数值类型（比如 int ）的变量，但我们发现一些对象类型（比如 Integer ） 的变量，也支持&#8220;+&#8221;运算： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Integer v1 = 100;</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; Integer v2 = 200;</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; System.out.println(v1+v2 );&nbsp; //输出： 300</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">这看上去好象 Integer 类型重载了 &#8220; + &#8221; 法运算符，一些编程语言比如 C ++可以为特定的类重载运算符，但 Java 本身并不支持运算符重载这一特性。依你的<br />
<br />
理解或猜测， Java 是采用什么方法让两个 Integer 对象可以直接&#8220;相加&#8221;的？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 上面代码首先是调用Integer.valueOf方法将整数转换为Integer对象，当两个Integer对象相加时，其实是使用Integer.intValue方法取出其所&#8220;包装&#8221;的整数值，相加之<br />
<br />
后，再将结果输出。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 上述结论是通过分析javap反汇编示例代码得到的。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 诸如Java和C#之类的编程语言，许多现象已不仅仅是语法问题，编译器在其中起了很重要的作用。我在课堂上已经介绍过如何使用javap去反汇编.class文件，通<br />
<br />
过阅读Java编译器生成的字节码指令去弄明白java编译器在后台玩的把戏。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 这道题主要是引导学生学编程语言不要仅学语法，要学会利用工具透过表面现象看本质。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 有的学生猜测Java可能是设计了另外的对象负责完成&#8220;+&#8221;运算，虽然与Java实际情况不符，但这个思路是可行的，我同样给分。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">6.&nbsp;&nbsp; 在一个很大的循环（比如循环10000000 次）中，如果需要进行字串的连接操作，通常我们者使用StringBuffer 取代String ，解释这么做的理由。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 绝大部分同学都答对了。但有的同学说：在大循环中使用String，会&#8220;浪费&#8221;大量的内存，这句话是不准确的，因为Java有一个垃圾收集机制，在合适的时机会<br />
<br />
出来回收不用的String对象，因此，这些内存不能说是被&#8220;浪费&#8221;的，我们唯一可以说的是： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 由于String对象是只读的，使用它大量字串连接操作，将导致频繁的内存分配操作 ，这会严重地影响程序性能。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">7.&nbsp;&nbsp; 现有两个长度不同的数组： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; int[] arr1 = new int[10]; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; int[] arr2 = new int[100]; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 那么以下语句能通过编译吗？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; arr1 = arr2;</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 如果你认为可以通过编译，得到这个结论的依据是什么？如果不能通过编译，你认为其原因是什么？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以通过编译。此题考核学生知不知道 Java 中的数组属于对象类型，知不知道对象变量相互赋值的含义。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">8.&nbsp;&nbsp; 请看以下代码 ： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; double d1=100.1; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; double d2=1001/10; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; System.out.println(d1==d2);&nbsp; // 输出 ： false </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">明明 d1 与 d2 是相等的 ， 为什么程序运行时会输出一个让人意外的结果 ： false ？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 很多同学都指出1001/10 其实是&#8220;整除&#8221;，得到100 ，再转为double ，所以d2=100.0 ，自然d1==d2 返回false 了。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 由于我在课堂上曾展示过计算机难于精确表示双精度数，比较两个double 变量是否相等应该检测其差的绝对值是否在某个可以容忍的误差范围内，所以几个同<br />
<br />
学就往这个思路上去想了。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 对这种情况，我没扣分。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">9.&nbsp;&nbsp; 当使用多个 catch 语句捕获多个异常时， Java 规定捕获 Exception 的 catch 语句必须排在最后，如下所示： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; try { &#8230;&#8230; }</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; catch(ClassCastException ex){&#8230;&#8230; }</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; catch(NumberFormatException ex){&#8230;&#8230; }</span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; catch(Exception ex){ &#8230;&#8230; }&nbsp; // 此句必须放在最后！ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 为什么会有这个限制？谈谈你是怎么理解的。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 学生们几乎 100% 答对此题，由于 Exception 是顶层类，放到前面会导致后面的 catch 语句不可能有机会运行。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">10. 请看以下示例代码： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s1 = "Hello"; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s2 = "Hello"; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(s1 == s2);&nbsp; // 输出： true </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s3 = new String("Hello"); </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s4 = new String("Hello"); </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(s3 == s4);&nbsp; // 输出： false </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">请解释一下为什么上述代码中 &#8220; System.out &#8230;&#8221; 两句代码输出完全不同的结果 ？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里面的关键在于 Java 常量池。 JVM 在装载一个 .class 文件时，会在内存中创建一个常量池。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220; Hello &#8221;是字符串常量， Java 编译器会将&#8220; Hello &#8221;放到常量池中，并给它一个索引： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; const #28 = Asciz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以下两句代码： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; String s1 = "Hello"; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; String s2 = "Hello"; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">将生成以下的字节码指令： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 0:&nbsp;&nbsp; ldc&nbsp;&nbsp;&nbsp;&nbsp; #2; //String Hello </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 2:&nbsp;&nbsp; astore_1 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 3:&nbsp;&nbsp; ldc #2; //String Hello </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 5:&nbsp;&nbsp; astore_2 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上面的 #2 代表常量池中的第 2 项： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; const #2 = String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #28;&nbsp;&nbsp;&nbsp; //&nbsp; Hello </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意它引用常量池的第 28 项，前面已经看到，第 28 项就是一个&#8220; Hello &#8221;字符串对象。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; astore 指令将常量池中同一个&#8220; Hello &#8221;字符串对象的地址赋给了 s1 和 s2 ，所以， s1==s2 肯定返回 true 。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下面来看一下： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s3 = new String("Hello"); </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">所生成的字节码指令： </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; // 创建 String 对象，对象引用被 Push 到操作数堆栈（ operand stack ） </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; // 常量池的第 5 项指向一个 CONSTANT_Class_info 类型的表项，这个表项将引用 String 类型 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; // 在程序运行时，会导致 JVM 装载并连接 String 类型信息 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 22:&nbsp; new&nbsp;&nbsp;&nbsp;&nbsp; #5; //class java/lang/String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; 25:&nbsp; dup&nbsp;&nbsp; // 复制对象引用，再次压入操作数堆栈，此复制的对象引用将用于调用构造函数 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 26:&nbsp; ldc&nbsp;&nbsp;&nbsp;&nbsp; #2; //String Hello&nbsp;&nbsp;&nbsp; 装载常量&#8220; Hello &#8221; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 28:&nbsp; invokespecial&nbsp;&nbsp; #6;&nbsp;&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; //Methodjava/lang/String."&lt;init&gt;":(Ljava/lang/String;)V </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; // 调用 String 类的构造函数，它从操作数堆栈提取信息初始化 String 对象 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp; 31:&nbsp; astore_3&nbsp; // 将创建好的对象引用保存到 s3 中 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从上述分析可以清晰地看到， s3 与 s4 都引用不同的对象。所以， s3==s4 返回 fasle 。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在，同学们对 JVM 的认识是不是更深入了一步？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在 Java 程序员&#8220;遍地&#8221;都是，但其中高水平的不多，为什么？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个很重要的原因就是浅尝辄止，仅记住了一些语法结论，却从不主动地去探索一下代码背后的奥秘，怎会有提高？ </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我很早就在课堂上展示了 javap 的使用方法，并向同学们推荐了那本经典的《 Inside the Java Virtual Machine 》，但我估计由于课业负担重，没几个同学真的<br />
<br />
去看了这本书，对此，我只能一声叹息。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多问几个为什么，对事物刨根问底，这其实不是在学习，而是在探索了，这个过程中，你的能力会得到不断地锻炼和提高。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外我要指出，同样的学习方法可以直接用 .NET 领域，比如 .NET 有一个 ildasm 可以直接查看 .NET 程序集（ .exe 和 .dll ，等价于 Java 中的 .class ）中<br />
<br />
的 IL 指令（对应于 Java 字节码指令），有一个 Reflector 工具可以很方便地反汇编查看任意一个程序集的源码，对应地， .NET 虚拟机—— CLR ，也与 JVM <br />
<br />
有许多相似之处。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我在写作《 .NET 4.0 面向对象编程漫谈》时，就通过直接查看程序集的 IL 指令代码，弄清楚了不少东西，也加深了对语言编译器和虚拟机的认识。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 象 Java 和 .NET 这种非常相近的平台，下功夫弄清楚一个，你会发现学习与掌握另一个并不困难。计算机有很多东西是相通的。关键不在于学什么东西，<br />
<br />
而是是否掌握了学习的科学方法，并且有一种不断学习、勇于探索未知的精神。具备这种基本素质的学生，我相信他日后的发展应该不会差的。 </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp; </span></span></span></p>
<p><span style="font-size: 14pt"><span style="font-size: 24pt"><span style="font-size: 14pt">&nbsp;</span></span></span></p>
<img src ="http://www.blogjava.net/yusiwei/aggbug/344661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2011-02-19 16:39 <a href="http://www.blogjava.net/yusiwei/archive/2011/02/19/344661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse7.5快速半手工开发SSH2（Struts2+Spring+Hibernate）应用之“超光速”教程</title><link>http://www.blogjava.net/yusiwei/archive/2010/04/06/317584.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Tue, 06 Apr 2010 13:23:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2010/04/06/317584.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/317584.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2010/04/06/317584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/317584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/317584.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MyEclipse7.5快速半手工开发SSH2（Struts2+Spring+Hibernate）应用之&#8220;超光速&#8221;教程1. 新建一个Web Project，命名为：struts2_template&nbsp;2. 导入样例程序struts2-blank-2.1.8.war中lib下的包(暂时只需要这几个，网上提醒不能随便加包！)：&nbsp;comm...&nbsp;&nbsp;<a href='http://www.blogjava.net/yusiwei/archive/2010/04/06/317584.html'>阅读全文</a><img src ="http://www.blogjava.net/yusiwei/aggbug/317584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2010-04-06 21:23 <a href="http://www.blogjava.net/yusiwei/archive/2010/04/06/317584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>优秀网站源码、编程源码下载网站大集中</title><link>http://www.blogjava.net/yusiwei/archive/2010/03/20/315996.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 20 Mar 2010 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2010/03/20/315996.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/315996.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2010/03/20/315996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/315996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/315996.html</trackback:ping><description><![CDATA[<span style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span style="font-size: 14px; line-height: 23px; font-family: simsun; text-align: left">优秀网站源码、编程源码下载网站大集中<br />
1.51源码：<a title="http://www.51aspx.com/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.51aspx.com/" target="_blank">http://www.51aspx.com/</a><br />
<br />
2.源码之家：<a title="http://www.codejia.com/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.codejia.com/" target="_blank">http://www.codejia.com/</a><br />
<br />
3.源码网：<a title="http://www.codepub.com/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.codepub.com/" target="_blank">http://www.codepub.com/</a><br />
<br />
4.虾客源码：<a title="http://www.xkxz.com/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.xkxz.com/" target="_blank">http://www.xkxz.com/</a><br />
<br />
5.多多源码：<a title="http://www.morecode.net/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.morecode.net/" target="_blank">http://www.morecode.net/</a><br />
<br />
6.洪越源代码：<a title="http://www.softhy.net/" style="color: rgb(0,45,147); text-decoration: none" href="http://www.softhy.net/" target="_blank">http://www.softhy.net/</a><br />
<br />
7.锋网源码：http://www.fwvv.net/<br />
<br />
8.代码爱好者：http://www.codefans.com/<br />
<br />
9.爱源码：http://www.aiyuanma.com/<br />
<br />
10.酷源码：http://www.kyuanma.com/<br />
<br />
11.搜源码：http://www.soucode.com/<br />
<br />
12.拉基源码：http://www.lajicode.com/<br />
<br />
13.源码开发网：http://www.codedn.com/<br />
<br />
14.源码天空：http://www.codesky.net/<br />
<br />
15.源码吧：http://www.asp88.net/<br />
<br />
16.绿色源码：http://code888.cn/<br />
<br />
17.9号源码中心：http://www.9code.com/<br />
<br />
18.网馨源码：http://www.asppsa.com/<br />
<br />
20.源码天下：http://www.pccode.net/<br />
<br />
21.需要源码：http://www.needcode.cn/<br />
<br />
22.华夏源码：http://www.haocpu.com/<br />
<br />
23.天新网：http://codes.21tx.com/<br />
<br />
24.源码网：http://www.yuanma5.com/<br />
<br />
25.无忧源码：http://www.5uym.com/<br />
<br />
26.中国下载站：http://www.cnz.cc/<br />
<br />
27.资源吧：http://www.ziyuan8.com/<br />
<br />
28.启明星源码：http://www.codewww.com/<br />
<br />
29.我要源码：http://www.xia51.com/<br />
<br />
30.清秋源码：http://www.asp678.com/<br />
</span></span>
<img src ="http://www.blogjava.net/yusiwei/aggbug/315996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2010-03-20 10:31 <a href="http://www.blogjava.net/yusiwei/archive/2010/03/20/315996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用FileSystemRegistry监听移动存储卡的操作</title><link>http://www.blogjava.net/yusiwei/archive/2010/03/19/315977.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Fri, 19 Mar 2010 15:05:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2010/03/19/315977.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/315977.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2010/03/19/315977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/315977.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/315977.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: package&nbsp;lab.sodino.filesys;&nbsp;&nbsp;    import&nbsp;javax.microedition.io.file.FileSystemListener;&nbsp;&nbsp;    import&nbsp;javax.microedition.io.file.FileSystemRegistry;&nbsp;&nbsp;  ...&nbsp;&nbsp;<a href='http://www.blogjava.net/yusiwei/archive/2010/03/19/315977.html'>阅读全文</a><img src ="http://www.blogjava.net/yusiwei/aggbug/315977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2010-03-19 23:05 <a href="http://www.blogjava.net/yusiwei/archive/2010/03/19/315977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在MyEclipse中运行tomcat出现Error   initializing   endpoint  错误（8080端口被占用问题）</title><link>http://www.blogjava.net/yusiwei/archive/2009/12/26/307374.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 26 Dec 2009 10:27:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/12/26/307374.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/307374.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/12/26/307374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/307374.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/307374.html</trackback:ping><description><![CDATA[<span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; ">
<p align="center" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; color: #444444; "><strong><font size="4">&nbsp;</font></strong></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; color: #444444; "><strong>错误提示：</strong></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; color: #444444; ">严重: &nbsp; Error &nbsp; initializing &nbsp; endpoint &nbsp;&nbsp;<br />
&nbsp; java.net.BindException: &nbsp; Address &nbsp; already &nbsp; in &nbsp; use: &nbsp; JVM_Bind:80 &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:258) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:143) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1402) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.core.StandardService.initialize(StandardService.java:605) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2369) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.startup.Catalina.load(Catalina.java:507) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.startup.Catalina.load(Catalina.java:528) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; sun.reflect.NativeMethodAccessorImpl.invoke0(Native &nbsp; Method) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; java.lang.reflect.Method.invoke(Method.java:324) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:421) &nbsp;&nbsp;<br />
&nbsp; 2006-2-8 &nbsp; 16:36:37 &nbsp; org.apache.catalina.startup.Catalina &nbsp; load &nbsp;&nbsp;<br />
&nbsp; 严重: &nbsp; Catalina.start &nbsp;&nbsp;<br />
&nbsp; LifecycleException: &nbsp; &nbsp; Protocol &nbsp; handler &nbsp; initialization &nbsp; failed: &nbsp; java.net.BindException: &nbsp; Address &nbsp; already &nbsp; in &nbsp; use: &nbsp; JVM_Bind:80 &nbsp;<br />
&nbsp; at &nbsp; org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1404) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.core.StandardService.initialize(StandardService.java:605) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2369) &nbsp;&nbsp;<br />
&nbsp; at &nbsp; org.apache.catalina.startup.Catalina.load(Catalina.java:507)&nbsp;&nbsp;&nbsp;<br />
.......................</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; color: #444444; "><strong>原因分析：</strong>在dos下运行&#8220;netstat&nbsp;&nbsp; -a &#8221;查看当前端口的使用情况。</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; color: #444444; "><strong>解决方法：</strong>修改Tomcat的使用端口，具体做法——找到目录...\Tomcat 5.0\conf，在conf目录下有&#8220;server.xml&#8221;文件，用记事本打开此文件，查找（打开文件后Ctrl+F）文件中的所有&#8220;8080&#8221;，并改为其他没有被占用的端口值（如：8088、8081等）。</p>
</span>
<img src ="http://www.blogjava.net/yusiwei/aggbug/307374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-12-26 18:27 <a href="http://www.blogjava.net/yusiwei/archive/2009/12/26/307374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈谈Java加密技术（五）</title><link>http://www.blogjava.net/yusiwei/archive/2009/12/19/306635.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 19 Dec 2009 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/12/19/306635.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/306635.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/12/19/306635.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/306635.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/306635.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; 接下来我们分析DH加密算法，一种适基于密钥一致协议的加密算法。&nbsp;&nbsp;&nbsp; DH&nbsp;&nbsp;&nbsp; Diffie-Hellman算法（D-H算法），密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥...&nbsp;&nbsp;<a href='http://www.blogjava.net/yusiwei/archive/2009/12/19/306635.html'>阅读全文</a><img src ="http://www.blogjava.net/yusiwei/aggbug/306635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-12-19 10:25 <a href="http://www.blogjava.net/yusiwei/archive/2009/12/19/306635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>漫谈Java加密技术（三）</title><link>http://www.blogjava.net/yusiwei/archive/2009/12/19/306633.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Sat, 19 Dec 2009 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/12/19/306633.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/306633.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/12/19/306633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/306633.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/306633.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp; 除了DES，我们还知道有DESede（TripleDES，就是3DES）、AES、Blowfish、RC2、RC4（ARCFOUR）等多种对称加密方式，其实现方式大同小异，这里介绍对称加密的另一个算法——PBE&nbsp;&nbsp;&nbsp; PBE&nbsp;&nbsp;&nbsp; PBE——Password-based encryption（...&nbsp;&nbsp;<a href='http://www.blogjava.net/yusiwei/archive/2009/12/19/306633.html'>阅读全文</a><img src ="http://www.blogjava.net/yusiwei/aggbug/306633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-12-19 10:20 <a href="http://www.blogjava.net/yusiwei/archive/2009/12/19/306633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>漫谈Java加密技术（二）</title><link>http://www.blogjava.net/yusiwei/archive/2009/12/18/306514.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Fri, 18 Dec 2009 03:47:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/12/18/306514.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/306514.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/12/18/306514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/306514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/306514.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 接下来我们介绍对称加密算法，最常用的莫过于DES数据加密算法。&nbsp;&nbsp;&nbsp; DES&nbsp;&nbsp;&nbsp; DES-Data Encryption Standard，即数据加密算法。是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个：Key、Data、Mode.其中Key为8个字节共64位，是DES算法的工作密钥；Data也为8个字...&nbsp;&nbsp;<a href='http://www.blogjava.net/yusiwei/archive/2009/12/18/306514.html'>阅读全文</a><img src ="http://www.blogjava.net/yusiwei/aggbug/306514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-12-18 11:47 <a href="http://www.blogjava.net/yusiwei/archive/2009/12/18/306514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>冰淇淋图像</title><link>http://www.blogjava.net/yusiwei/archive/2009/03/23/261431.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Mon, 23 Mar 2009 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/03/23/261431.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/261431.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/03/23/261431.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/261431.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/261431.html</trackback:ping><description><![CDATA[package demo;<br />
<br />
class Ice-cream{<br />
&nbsp;&nbsp; &nbsp;public static void main(String[] args) throws Exception {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//以(x,y)为圆心，显示一个半径为r的圆<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int x = 20;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int y = 30;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int r = 15;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//显示空行<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i=1; i&lt;(y-r); i++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//显示圆的投影<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int row=(y-r); row&lt;=y; row++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;StringBuffer line = new StringBuffer();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//计算弦长/2<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;long temp = Math.round(Math.sqrt((r*r - (y-row)*(y-row))));<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//计算当前行的空格<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i=0; i&lt;=(x-temp); i++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;line.append("&nbsp; ");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//计算当前行的**<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i=0; i&lt;=(2*temp); i++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;line.append("**");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(line);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int rowsB = 2*r+1;&nbsp;&nbsp; &nbsp;//指定行数<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int row=1; row&lt;=rowsB; row++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;StringBuffer line = new StringBuffer();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//计算当前行的空格<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i=1; i&lt;=row+x-r+6; i++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;line.append(" ");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//计算当前行的*<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (int i=1; i&lt;=(2*rowsB-1-2*(row-1)); i++) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;line.append("*");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;System.out.println(line);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br />
&nbsp;&nbsp; &nbsp;}<br />
<br />
}<br />
<br />
<img src ="http://www.blogjava.net/yusiwei/aggbug/261431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-03-23 09:31 <a href="http://www.blogjava.net/yusiwei/archive/2009/03/23/261431.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>闪灯程序</title><link>http://www.blogjava.net/yusiwei/archive/2009/03/23/261428.html</link><dc:creator>鹏凌</dc:creator><author>鹏凌</author><pubDate>Mon, 23 Mar 2009 01:26:00 GMT</pubDate><guid>http://www.blogjava.net/yusiwei/archive/2009/03/23/261428.html</guid><wfw:comment>http://www.blogjava.net/yusiwei/comments/261428.html</wfw:comment><comments>http://www.blogjava.net/yusiwei/archive/2009/03/23/261428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yusiwei/comments/commentRss/261428.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yusiwei/services/trackbacks/261428.html</trackback:ping><description><![CDATA[import java.awt.*;<br />
import java.awt.event.*;<br />
class Test{<br />
&nbsp;&nbsp; &nbsp;public static void main(String [] args){<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Frame f=new Frame("变换");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;CardLayout c1=new CardLayout();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;f.setLayout(c1);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Button b []=new Button[4];<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for(int i=0;i&lt;4;i++){<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b[i]=new Button("第"+i+"页");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;f.add(b[i],"page"+i);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b[0].setBackground(Color.red);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b[1].setBackground(Color.blue);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b[2].setBackground(Color.cyan);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b[3].setBackground(Color.green);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;f.pack();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;f.setVisible(true);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while(true){<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try{<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Thread.sleep(50);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;catch (InterruptedException e){<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;c1.next(f);<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;}<br />
}
<img src ="http://www.blogjava.net/yusiwei/aggbug/261428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yusiwei/" target="_blank">鹏凌</a> 2009-03-23 09:26 <a href="http://www.blogjava.net/yusiwei/archive/2009/03/23/261428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>