<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>fish2007</title>
    <description></description>
    <link>http://fish2007.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>解惑解释性语言、编译性语言和动态语言</title>
        <author>fish2007</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fish2007.javaeye.com">fish2007</a>&nbsp;
                    链接：<a href="http://fish2007.javaeye.com/blog/250193" style="color:red;">http://fish2007.javaeye.com/blog/250193</a>&nbsp;
          发表时间: 2008年10月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 计算机不能直接理解高级语言，只能直接理解机器语言，所以必须要把高级语言翻译成机器语言，计算机才能执行高级语言编写的程序。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 翻译的方式有两种，一个是编译，一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前，需要一个专门的编译过程，把程序编译成为机器语言的文件，比如exe文件，以后要运行的话就不用重新翻译了，直接使用编译的结果就行了（exe文件），因为翻译只做了一次，运行时不需要翻译，所以编译型语言的程序执行效率高。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 解释则不同，解释性语言的程序不需要编译，省了道工序，解释性语言在运行程序的时候才翻译，比如解释性basic语言，专门有一个解释器能够直接执行basic程序，每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次，效率比较低。&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 编译性语言： &nbsp; C&nbsp;&nbsp; c# &nbsp; vb &nbsp; delphi &nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; 解释性语言： &nbsp; asp &nbsp; vbscript &nbsp; javascript&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; 编译性语言： &nbsp; 以二进制形式保存 &nbsp; 不可见源代码 &nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; 解释性语言： &nbsp; 以代码形式保存 &nbsp; 可见原代码</span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; java很特殊，java程序也需要编译，但是没有直接编译称为机器语言，而是编译称为字节码，然后用解释方式执行字节码。 先看一下java程序的运行过程，程序运行时先将.java文件通过编译器编译成字节码文件（.class文件），然后java虚拟机将.class文件进行解释，进而执行。最新的JAVA将使用JIT技术吧，所以JAVA是 &nbsp; 编译+解释+编译 &nbsp; 性语言</span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 编译性语言执行较快，解释性语言相对慢。</span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p><span style="font-size: xx-small;">&nbsp;&nbsp;&nbsp;&nbsp; 总的来说，生成目标代码的是编译性的语言，没有生成目标代码的是解释性的语言（目标代码包括中间代码）。</span></p>
<p><span style="font-size: xx-small;">
<p>&nbsp;&nbsp;&nbsp;&nbsp; 可以简单地理解为直接被解释执行的语言称为动态语言。而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。 </p>
<p>当前静态语言有：Java、C/C++、C#、DELPHI、VB等。 </p>
<p>动态语言有：ASP、PHP、Perl、Python,Smalltalk、Ruby等。 </p>
</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fish2007.javaeye.com/blog/250193#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 08 Oct 2008 10:38:24 +0800</pubDate>
        <link>http://fish2007.javaeye.com/blog/250193</link>
        <guid>http://fish2007.javaeye.com/blog/250193</guid>
      </item>
          <item>
        <title>什么是JSR</title>
        <author>fish2007</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fish2007.javaeye.com">fish2007</a>&nbsp;
                    链接：<a href="http://fish2007.javaeye.com/blog/247047" style="color:red;">http://fish2007.javaeye.com/blog/247047</a>&nbsp;
          发表时间: 2008年09月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JSR(Java 规范请求)是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR(Java 规范请求)，以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。<br /><br />　　在Java Servlet规范(Servlet 2.4,JSR-154)中，定义了一系列核心的抽象概念(WEB程序处理过程中需要考虑的各种对象)来让Java程序员编写WEB程序，包括 session,request,response等等。当程序员在编写程序的时候，可以很方便安全地与这些对象进行通讯。JSR223描述的是这些 Java对象如何向用其它脚本语言编写的WEB页面开放，使其它语言也可以访问这些对象。当前这个规范将被用于PHP，不过这种概念是独立于脚本语言的，也就是说在将来可能被应用于PHP之外的其它脚本语言。一句话，JSR223的目的是将脚本语言集成到Java平台之上。
          <br/><br/>
          <span style="color:red;">
            <a href="http://fish2007.javaeye.com/blog/247047#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 26 Sep 2008 13:49:21 +0800</pubDate>
        <link>http://fish2007.javaeye.com/blog/247047</link>
        <guid>http://fish2007.javaeye.com/blog/247047</guid>
      </item>
          <item>
        <title>将oracle 10g的数据库导成9i的</title>
        <author>fish2007</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fish2007.javaeye.com">fish2007</a>&nbsp;
                    链接：<a href="http://fish2007.javaeye.com/blog/243354" style="color:red;">http://fish2007.javaeye.com/blog/243354</a>&nbsp;
          发表时间: 2008年09月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用oracle9i的客户端连接10g的数据库，然后执行以下脚本。<br /><br />在导出前, 连接到SYS用户, 运行以下SQL:<br />CREATE OR REPLACE VIEW exu9tne (<br />tsno, fileno, blockno, length) AS<br />SELECT ts#, segfile#, segblock#, length<br />FROM sys.uet$<br />WHERE ext# = 1<br />UNION ALL<br />SELECT * FROM SYS.EXU9TNEB<br />导出完成后，再复原这个view（定义可以通过user_views看到） 对于oracle9i和oracle10g这个定义都相同：<br />CREATE OR REPLACE VIEW exu9tne (<br />tsno, fileno, blockno, length) AS<br />SELECT ts#, segfile#, segblock#, length<br />FROM sys.uet$<br />WHERE ext# = 1
          <br/><br/>
          <span style="color:red;">
            <a href="http://fish2007.javaeye.com/blog/243354#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 18 Sep 2008 09:49:40 +0800</pubDate>
        <link>http://fish2007.javaeye.com/blog/243354</link>
        <guid>http://fish2007.javaeye.com/blog/243354</guid>
      </item>
          <item>
        <title>为什么使用接口</title>
        <author>fish2007</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fish2007.javaeye.com">fish2007</a>&nbsp;
                    链接：<a href="http://fish2007.javaeye.com/blog/236174" style="color:red;">http://fish2007.javaeye.com/blog/236174</a>&nbsp;
          发表时间: 2008年09月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          转自http://www.blog.sh/2006/gisbreeze/106351.html<br />进行接口的介绍，必须介绍一下程序语言发展的历史才行，鲁迅先生说过“治学先治史”，明白了程序语言发展的前世今生，才能知道为什么这么多语言为什么会这样，为什么么会那样？<br /><br />计算机出现以后，科学家相继开发了多种语言，从smalltalk，Pascal，Basic，C语言，C++，java,.net等等，这些语言的发展步伐，可以看作是从面向过程向面向对象发展的一段历史。很多面向对象的书在介绍自己的历史的时候，都会给读者介绍这一段历史，并鼓吹OO编程是多么多么的优异。问题是，很多刚开始学程序的人根本不知道为什么要有这个转变，他们也很难理解OO语言中的虚函数，接口等概念到底为了什么而提出来。<br /><br />我们在了解这一段历史以前，首先给大家介绍一个概念??“粒度”，什么是粒度？作者认为所谓粒度其实就是一个程序中使用代码单元的组合尺度，我们可以举一个例子，沙砾??砖块??房屋模板，我们设想去修建一座房子，其实有很多中修筑方法，如果你不闲麻烦，可以使用沙砾一点点地建筑，或者将沙砾烧制为砖块，用砖块来砌，甚至直接从工厂购买房屋的门，窗，墙组件来堆砌。这三种不同的方法代表了三种不同的组合尺度。沙砾是最小的单位，使用它搭建小的房子说不定还可以，但是毫无疑问，我们必须使用很多很多“沙砾”，不便于管理；砖块比沙砾聚合了一层，可以用来修建较大的房子了；房屋模板是最高的尺寸，使用它可以快速地搭建大规模的房屋。这三种尺度的区别和联系，与我们编写程序概念是有很大的相似之处的。<br /><br />在早期学习Pascal，老师告诉我们这种面向过程语言的最基本的单元是过程和函数，它们是程序中的最小的组件。过程和函数可以实现最基本的代码重用，当我们把某些固定功能的代码使用过程和函数编写后，我们可以在程序中调用它们而不必在任何需要的地方都写上这样一段代码，这样的好处是显而易见的。在一些小型的程序里面，使用过程和函数是合适的，但是在大中型程序中，它们的弊端就显示出来，过程和函数的粒度太低了，如果我们一个系统，有10000个函数和过程，我们的程序员将不得不花费大量的时间去寻找和维护它们，10000个没有任何关系的函数和过程的管理难度是显而易见的，就好像10000个人的企业一样，如果没有部门和职务，这还不乱了套？！<br /><br />面向对象语言的出现，就是为了解决这个问题，别听OO语言吹的天花乱坠，其实它出现就为一个理由??提高编程的粒度。面向对象语言的基本单位是类 CLASS，类封装了很多数据成员和成员函数，过程，将最小组件的提高了一个等级，我们需要直接操作的不是过程和函数了，而是一个个更高层次上的类。我们把10000人分了很多部门，不同的部门负责不同的事宜，这样公司终于可以走上正轨了。<br /><br />做成了类CLASS是否就万事大吉了呢？不一定，新的问题随之而来，也许我们有一个部门的人很多，可以做很多事情，如何在部门内部实现更好的管理呢？好比我们有一个类，它提供了很多种方法和属性，这些方法和属性其实可以分为一堆堆，为不同的功能服务，但是我们的类并没有做这个管理。在AO种，map对象拥有很多功能，比如管理图层，管理元素，管理选择集，进行地图显示，每种不同的功能都有好多方法和属性，现在这些属性和方法是杂乱无章，没有任何区别堆积在一个类里面的，当我们的程序员需要寻找一个方法的时候，不得不一个个去寻找，很不方便。<br /><br />这个时候，接口interface出现了，C++的发明者第一次提出纯虚函数（其实就是接口）概念的时候，遭到了很多抵制，很多人都不明白接口的意义何在，我们用虚函数好好的，何必又出来个啥东西都没有的空架子？说它是类吧，又不能实现产生一个对象；说它是对象吧，又没有方法体来使用。接口出来干了一件好事，就是将类内部进行分类。对于map对象，我们可以做好几个接口，这些接口中定义不同功能的方法，函数和属性，map类实现这些接口，这样我们可以使用接口定义，实现对象。因此，所谓接口就是一系列相关方法与属性集合的定义。<br /><br />Dim pGraphicsContainer as iGraphicsContainer<br />pGraphicsContainer=application.ActiveView.focusMap<br />pGraphicsContainer可以使用的属性和方法就只能是它定义的那部分了，而不能使用管理元素等的接口定义的方法和属性，那我们如何使用其它的功能呢？这就是所谓的QI(Query Interface)功能。从一个接口查询另一个接口。<br /><br />Dim pGeoFeatureLayer as iGeofeatureLayer<br />pGeoFeatureLayer= pGraphicsContainer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QI<br /><br />好了，我们罗嗦了这么多，已经走进了COM的概念了，在正式介绍COM以前我们得最后罗嗦一点：计算机语言的发展历史，其实就是一部不断提高组件粒度的历史，不断提高代码重用的历史。以前我们使用过程和函数，后来我们使用类，现在我们使用接口，都是为了一个目的，让我们操作的组件在具体和抽象之间寻找一个平衡点。太具体了，如过程和函数，就没有了框架；太抽象，如类，就无法分别。<br /><br /><br />一个代码示例：<br />public interface IForm<br />{<br />&nbsp;&nbsp;&nbsp; void Show();<br />&nbsp;&nbsp;&nbsp; void ShowDialog();<br />}<br /><br />public class A:IForm<br />{<br />&nbsp;&nbsp;&nbsp; public void Show()<br />{<br />}<br />&nbsp;&nbsp;&nbsp; public void ShowDialog()<br />{<br />}<br />}<br /><br />public class B:IForm<br />{<br />&nbsp;&nbsp;&nbsp; public void Show()<br />{<br />}<br />&nbsp;&nbsp;&nbsp; public void ShowDialog()<br />{<br />}<br />}<br /><br />public class FormFactory<br />{<br />&nbsp;&nbsp; public static IForm CreateInstance(string parm)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp; (parm == "A")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new A();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (parm == "B")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new B();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp; }<br />} <br />这是逻辑的抽象<br /><br />这是方法的具体<br /><br />这就是编写程序的哲学.
          <br/><br/>
          <span style="color:red;">
            <a href="http://fish2007.javaeye.com/blog/236174#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 03 Sep 2008 15:31:22 +0800</pubDate>
        <link>http://fish2007.javaeye.com/blog/236174</link>
        <guid>http://fish2007.javaeye.com/blog/236174</guid>
      </item>
          <item>
        <title>修改netbeans中output窗口的字体</title>
        <author>fish2007</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fish2007.javaeye.com">fish2007</a>&nbsp;
                    链接：<a href="http://fish2007.javaeye.com/blog/163640" style="color:red;">http://fish2007.javaeye.com/blog/163640</a>&nbsp;
          发表时间: 2008年02月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="color: blue"><span style="font-size: medium">今天终于搞定了netbeans中output窗口的字体，以前的字体对我的眼睛实在是一种考验。受不了。<br />方法是：netbeans_default_options="-J-client -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled --fontsize 12"<br />就是添加了--fontsize 12，大小根据自己的喜好和显示器来选择，我用12。保存，重启Netbean。<br /></span></span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fish2007.javaeye.com/blog/163640#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Feb 2008 15:17:57 +0800</pubDate>
        <link>http://fish2007.javaeye.com/blog/163640</link>
        <guid>http://fish2007.javaeye.com/blog/163640</guid>
      </item>
      </channel>
</rss>