<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>smartwgd</title>
    <description></description>
    <link>http://smartwgd.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>我的everNote 天天学习站发布啦 哈哈哈</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/216668" style="color:red;">http://smartwgd.javaeye.com/blog/216668</a>&nbsp;
          发表时间: 2008年07月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>网址：<a href="http://www.evernote.com/pub/smartwgd/daydaystudy">http://www.evernote.com/pub/smartwgd/daydaystudy</a>
</p>
<p>&nbsp;</p>
<p>RSS：<a href="http://www.evernote.com/pub/smartwgd/daydaystudy">http://www.evernote.com/shard/s1/pub/24612/smartwgd/daydaystudy/rss.jsp?max=25&amp;sort=2&amp;search=</a>
</p>
<p>&nbsp;</p>
<p>以前就一直在想 如果evernote支持自己的笔记本对外发布，能让别人或自己不登陆就能查看到该多好，今天经偶研究发现了evernote book本来就支持，是自己土鳖了。。唉唉。 </p>
<p>&nbsp;</p>
<p>我就建立了一个daydaystudy 天天学习站，感觉很方便 ^_^</p>
<p>&nbsp;</p>
<p>笔记本里面新更新了关于JMX的东东，这东西确实很好用的说，不过公司的平台里面内置的MBean有问题的说。嘿嘿</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/216668#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 20 Jul 2008 12:30:53 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/216668</link>
        <guid>http://smartwgd.javaeye.com/blog/216668</guid>
      </item>
      <item>
        <title>Observer观察者模式</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/216656" style="color:red;">http://smartwgd.javaeye.com/blog/216656</a>&nbsp;
          发表时间: 2008年07月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p>参考：<a href="http://www.jdon.com/designpatterns/observer.htm"><span style="color: #000000;">http://www.jdon.com/designpatterns/observer.htm</span>
</a>
</p>
<p>还在看大话设计模式，今天偶然翻到这个模式，所以写写~~下面的内容均和此书有关。</p>
<p>&nbsp;</p>
<p><span style="background-color: #c0c0c0; color: #000000;">观察者模式(Observer)：适用于多个系统或者对象与一个特定的对象进行联动，当这个对象某个状态改变的时候，触发具体抽象类的Update函数，对多个对象进行update。</span></p>
<p>&nbsp;</p>
<p>下面是这个观察者模式的原型图</p>
<p><img src="../../upload/picture/pic/18216/209d5bef-82da-303d-8e4c-28f95f4c4cd3.png" height="422" alt="观察者模式原型" width="840" />
</p>
<p>&nbsp;</p>
<p>源码：</p>
<p>Subject类</p>
<pre name="code" class="java">package observer.prototype;

import java.util.ArrayList;

public abstract class Subject {
	private ArrayList&lt;Observer&gt; observers = new ArrayList&lt;Observer&gt; ();
	
	public void Attach(Observer observer){
		observers.add(observer);
	}
	
	public void Detach(Observer observer){
		observers.remove(observer);
	}
	
	public void Notify(){
		for(Observer  observer:observers){
			observer.Update();
		}
	}
}
</pre>
<p>&nbsp;Subject的实现类：</p>
<pre name="code" class="java">package observer.prototype;

public class ConcreteSubject extends Subject {
	private String subjectState;

	public void setSubjectState(String subjectState) {
		this.subjectState = subjectState;
	}

	public String getSubjectState() {
		return subjectState;
	}
}
</pre>
<p>&nbsp;Observer的抽象类：</p>
<pre name="code" class="java">package observer.prototype;

public abstract class Observer {
	public abstract void Update();
}
</pre>
<p>&nbsp;Observer的具体类：</p>
<pre name="code" class="java">package observer.prototype;

public class ConcreteObserver extends Observer {
	
	private String name;
	private String observerState;
	private ConcreteSubject subject;
	
	ConcreteObserver(ConcreteSubject subject,String name){
		this.name = name;
		this.subject = subject;
	}

	@Override
	public void Update() {
		observerState = subject.getSubjectState();
		System.out.println(&quot;观察者 &quot;+name+&quot;的状态是&quot;+observerState);
	}

}
</pre>
&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/216656#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 20 Jul 2008 11:03:46 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/216656</link>
        <guid>http://smartwgd.javaeye.com/blog/216656</guid>
      </item>
      <item>
        <title>随便记录几个软件</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/206949" style="color:red;">http://smartwgd.javaeye.com/blog/206949</a>&nbsp;
          发表时间: 2008年06月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>UML：今天写blog的时候，想画UML图，就翻出了以前找到的一款软件。</p>
<p><a href="http://jude.change-vision.com/jude-web/product/community.html">JUDE-Community</a>
 一款日本的免费的画UML的软件</p>
<p>很好用，可以从java文件里面导入源文件，自动生成UML。具体的用法还是看网站说明吧，有空自己翻译过来。</p>
<p>&nbsp;</p>
<p>文本编辑器：以前用Notepad++后来由于某些原因换成MadEdit，再后来就是<a href="http://www.flos-freeware.ch/notepad2.html">Notepad2</a>
.</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/206949#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Mon, 23 Jun 2008 00:28:49 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/206949</link>
        <guid>http://smartwgd.javaeye.com/blog/206949</guid>
      </item>
      <item>
        <title>Command命令模式</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/206937" style="color:red;">http://smartwgd.javaeye.com/blog/206937</a>&nbsp;
          发表时间: 2008年06月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p>参考：<a href="http://www.jdon.com/designpatterns/command.htm"><span style="color: #000000;">http://www.jdon.com/designpatterns/command.htm</span>

</a>
</p>
<p>还在看大话设计模式，今天偶然翻到命令模式，所以写写~~下面的内容均和此书有关。</p>
<p>&nbsp;</p>
<p><span style="background-color: #c0c0c0;">命令模式(Command)，将一个请求封装成一个对象，从而使你可用不同的请求对客户进行参数化；对请求排队或记录请求日志，以及支持可撤销的操作。</span>

</p>
<p>&nbsp;</p>
<p>优点：解耦了发送者和接受者之间联系。 </p>
<p>缺点：1个类变成3个类，多了好多类。</p>
<p>&nbsp;</p>
<p>主要集中到这个原型图<img src="../../../upload/picture/pic/16479/7d8e0742-c5d2-30aa-9e98-2922efcbc1fb.png" height="428" alt="command命令模式原型" width="680" />

</p>
<p>Invoker类 被客户端调用，可以接受命令请求，设计命令队列，决定是否相应该请求,记录或撤销或重做命令请求，记录日志等等.</p>
<pre name="code" class="java">public class Invoker {
	private Command command;

	public void setOrder(Command command) {
		this.command = command;
	}
	public void ExecuteCommand() {
		command.ExecuteCommand();
	}

}</pre>
<p>&nbsp;Command类，将一个请求封装成一个对象，将一个请求具体化，方便对请求记录。</p>
<pre name="code" class="java">public abstract class Command {
	protected Receiver receiver;
	
	public Command(Receiver receiver){
		this.receiver = receiver;
	}
	
	public abstract void ExecuteCommand();
}</pre>
<p>&nbsp;ConcreteCommand类，可以将Receiver对象放到这个类里面，这个类具体实现了要怎么处理这个用户的请求。</p>
<pre name="code" class="java">public class ConcreteCommand extends Command {
	
	public ConcreteCommand(Receiver receiver){
		super(receiver);
	}

	@Override
	public void ExecuteCommand() {
		receiver.Execute();
	}

}</pre>
<p>&nbsp;Receiver类，其实这个类可以没有，不过为了让设计看起来更整洁清楚。</p>
<pre name="code" class="java">public class Receiver {
	public void Execute(){
		System.out.println(&quot;Receiver excute!&quot;);
	}
}</pre>
<p>&nbsp;最后一个Client类。</p>
<pre name="code" class="java">public class Client {
	public static void main(String[] args) {
		Receiver r = new Receiver();
		Command c = new ConcreteCommand(r); 
		Invoker i = new Invoker();

		i.setOrder(c);
		i.ExecuteCommand();
	}
}</pre>
<p>&nbsp;最后一个书上面的示例</p>
<p><img src="../../../upload/picture/pic/16483/afcd8836-877f-3cd9-9283-2eb9877af851.png" height="548" alt="命令模式示例" width="928" />

</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/206937#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 22 Jun 2008 23:08:12 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/206937</link>
        <guid>http://smartwgd.javaeye.com/blog/206937</guid>
      </item>
      <item>
        <title>State状态模式</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/190434" style="color:red;">http://smartwgd.javaeye.com/blog/190434</a>&nbsp;
          发表时间: 2008年05月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>参考于下面的链接：<br />
<a href="http://www.jdon.com/designpatterns/designpattern_State.htm" target="_blank">http://www.jdon.com/designpatterns/designpattern_State.htm</a>
<br />
<a href="http://blog.csdn.net/qutr/archive/2006/08/01/1007617.aspx" target="_blank">http://blog.csdn.net/qutr/archive/2006/08/01/1007617.aspx</a>
<br />
<br />
<span style="font-size: x-small;"><strong>State模式的定义</strong>
</span>
: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.<br />
<br />
<span style="font-size: x-small;"><em><strong>何时使用&nbsp; </strong>
</em>
</span>
State模式在实际使用中比较多,适合&quot;状态的切换&quot;.<br />
<br />
来段代码：</p>
<pre name="code" class="java">//先来一个状态：
package State;

public abstract class State
{
    
    /** *//** Creates a new instance of State */
    public State() {
    }
    
    public abstract void opration(Context context);
}//end class State

//在来两个具体的State：
public class ConcreteStateA extends State
{
    
    /** *//** Creates a new instance of ConcreteStateA */
    public ConcreteStateA() {
    }

    public void opration(Context context)
    {
        System.out.println(&quot;The Concrete A&quot;);
        context.setSate(new ConcreteStateB());
    }//end opration()
    
    public static ConcreteStateA getInstance()
    {
        return new ConcreteStateA();
    }//end getInstance()
}

public class ConcreteStateB extends State
{
    
    /** *//** Creates a new instance of ConcreteStateB */
    public ConcreteStateB() {
    }

    public void opration(Context context)
    {
        System.out.println(&quot;The Concrete B&quot;);
        context.setSate(new ConcreteStateA());
    }//end opration()
    
    public static ConcreteStateB getInstance()
    {
        return new ConcreteStateB();
    }//end getInstance()
    
}//end class ConcreteStateB

//来一个场景：
public class Context
{
    private State state;
    /** *//** Creates a new instance of Context */
    public Context() {
    }
    
    public void setSate(State stat)
    {
        state = stat;
    }//end setState()
    
    public void operation()
    {
        state.opration(this);
    }//end operation()
    
}//end class Context

//怎样调用：
public static void main(String[] args)
{
		Context con = new Context();
		con.setSate(ConcreteStateA.getInstance());
		con.operation();
		con.operation();
}//end main()</pre>
&nbsp;
<p>以上代码摘自上面介绍的blog中，不过有部分改动。下面是UML图 也是盗链的。。。。。</p>
<p><img src="file:///C:/Documents%20and%20Settings/%E5%97%AF/%E6%A1%8C%E9%9D%A2/State.JPG" alt="" />
<img src="file:///C:/Documents%20and%20Settings/%E5%97%AF/%E6%A1%8C%E9%9D%A2/State.JPG" alt="" />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/qutr/State.JPG" height="236" alt="State模式" width="502" />
</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/190434#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 07 May 2008 01:13:05 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/190434</link>
        <guid>http://smartwgd.javaeye.com/blog/190434</guid>
      </item>
      <item>
        <title>设计模式   Facade外观模式</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/189548" style="color:red;">http://smartwgd.javaeye.com/blog/189548</a>&nbsp;
          发表时间: 2008年05月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这个模式很简单，转自<span style="color: #00ffff;"><a href="http://www.jdon.com/designpatterns/designpattern_Facade.htm"> http://www.jdon.com/designpatterns/designpattern_Facade.htm</a>
</span>
</p>
<p><em><strong>Facade模式的定义</strong>
</em>
: 为子系统中的一组接口提供一个一致的界面.</p>
<p><img src="http://www.jdon.com/designpatterns/images/facade.jpg" height="232" alt="facade模式简单说明图" width="500" />
</p>
<p>由上图可以看出, facade实际上是个理顺系统间关系,降低系统间耦合度的一个常用的办法。</p>
<p>注意哦~子系统里面的类和Facade类没有什么关系，只是简单的理顺关系。</p>
<p>来段代码：</p>
<pre name="code" class="java">static void Main(string[] args){
 Facade tt = new Facade();
 tt.Go();
}
 
class Facade{
 SubClassA sa;
 SubClassB sb;

 public Facade(){
  sa = new SubClassA ();
  sb = new SubClassB ();
 }

 public void Go(){
   sa.Go();
   sb.Go(); 
 }
}

class SubClassA{
 public void Go(){
   System.out.println(&quot;SubClassA GoGo&quot;);
 }
}

class SubClassB{
 public void Go(){
   System.out.println(&quot;SubClassB GoGo&quot;);
 }
}</pre>
&nbsp;
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/189548#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sun, 04 May 2008 22:53:37 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/189548</link>
        <guid>http://smartwgd.javaeye.com/blog/189548</guid>
      </item>
      <item>
        <title>放弃了notepad++</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/178118" style="color:red;">http://smartwgd.javaeye.com/blog/178118</a>&nbsp;
          发表时间: 2008年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><img src="http://lh4.google.com/smartwgd/R_CnLGl7A6I/AAAAAAAAAJI/HQWmynJGZDs/s800/notepad%2B%2B.JPG.jpg" border="1" vspace="1" hspace="1" alt="notepad++" style="width: 531px; height: 213px" /></p><p>本来是挺喜欢的一款编辑器，主要是喜欢它的配色，而且开源。 但是对大文件上面的性能并不太好，所以就换掉了。现在用MadEdit，感觉超级好用，只要是我能想到的功能，它都有。恩恩 赞一下~~~</p><p>&nbsp;</p><p>前一段时间的tibet事件后，notepad++的主网上面出现了这么一段话。。。。唉。。</p><p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/178118#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Mon, 31 Mar 2008 17:17:02 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/178118</link>
        <guid>http://smartwgd.javaeye.com/blog/178118</guid>
      </item>
      <item>
        <title>设计模式   Strategy模式</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/176067" style="color:red;">http://smartwgd.javaeye.com/blog/176067</a>&nbsp;
          发表时间: 2008年03月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://flysnail.javaeye.com/blog/175110" target="_blank">http://flysnail.javaeye.com/blog/175110</a><br /><a href="http://cljspn.javaeye.com/blog/168095" target="_blank">http://cljspn.javaeye.com/blog/168095</a><br /><br />看了看这两个帖子，发现懂了。。。哈哈<br /><br />书上的介绍：晦涩难懂。。。<br /><a href="http://www.cnblogs.com/zhenyulu/articles/82017.html" target="_blank">http://www.cnblogs.com/zhenyulu/articles/82017.html</a><br /><br />google手气不错了它<br /><a href="http://java.ccidnet.com/art/3741/20040518/545129_1.html" target="_blank">http://java.ccidnet.com/art/3741/20040518/545129_1.html</a>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/176067#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Tue, 25 Mar 2008 23:28:06 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/176067</link>
        <guid>http://smartwgd.javaeye.com/blog/176067</guid>
      </item>
      <item>
        <title>使用移动硬盘，相机等 我的电脑里面看不到设备。。</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/166334" style="color:red;">http://smartwgd.javaeye.com/blog/166334</a>&nbsp;
          发表时间: 2008年03月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用移动硬盘时也会出现以前能用，偶尔一次又不能用的情况，出现这种情况时可以先将“系统设备”中的“未知的USB设备”删除，再拔下移动硬盘，然后重启系统，再将移动硬盘接上，故障一般就能解决。
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/166334#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Sat, 01 Mar 2008 10:14:50 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/166334</link>
        <guid>http://smartwgd.javaeye.com/blog/166334</guid>
      </item>
      <item>
        <title>由MyEclipse内存不足谈谈JVM内存 转载</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/158293" style="color:red;">http://smartwgd.javaeye.com/blog/158293</a>&nbsp;
          发表时间: 2008年01月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="post">
	 
	<div class="meta">Filed under: <a href="http://www.javatang.com/archives/category/javaplateform" title="View all posts in JavaPlateform" rel="category tag">JavaPlateform</a>, <a href="http://www.javatang.com/archives/category/tools" title="View all posts in Tools" rel="category tag">Tools</a> &mdash; Jet @ 3:16 pm </div>

	<div class="tags"> Tags: <a href="http://www.javatang.com/archives/tag/eclipse" rel="tag">eclipse</a>, <a href="http://www.javatang.com/archives/tag/jvm" rel="tag">jvm</a>, <a href="http://www.javatang.com/archives/tag/myeclipse" rel="tag">myeclipse</a>, <a href="http://www.javatang.com/archives/tag/%e5%a0%86" rel="tag">堆</a></div>	
	<div class="storycontent">
		<div class="declaration">
		原文出处: <a href="http://www.javatang.com/archives/2007/12/03/1653250.html" class="quote_div" title="http://www.javatang.com/archives/2007/12/03/1653250.html" target="_blank">http://www.javatang.com/archives/2007/12/03/1653250.html</a><br />

		作者: Jet Mah from <a href="http://www.javatang.com">Java堂</a></div><div class="declaration"><br /></div>
				<p>如果没有进行设置的话，在使用MyEclipse的经常出现如下图所示内存不足的提示。<br />
<img src="http://www.javatang.com/wp-content/myeclipse.png" alt="myeclipse.png" /><br />
提示中说的很明白：&ldquo;MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.&rdquo;意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。</p>
<p>提示中给出了设置的参数：</p>

<div class="hl-surround"><ol class="hl-main ln-show"><li class="hl-firstline">-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M</li></ol></div>
<p>这里有几个问题：<br />
1. 各个参数的含义什么？<br />
2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动，而有些机器无法启动？<br />
3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置？</p>
<p>下面我们一一进行回答</p>
<p><strong>1. 各个参数的含义什么？</strong></p>
<p>参数中-vmargs的意思是设置JVM参数，所以后面的其实都是JVM的参数了，我们首先了解一下JVM内存管理的机制，然后再解释每个参数代表的含义。</p>
<blockquote>

<li><strong>堆(Heap)和非堆(Non-heap)内存</strong><br />
按照官方的说法：&ldquo;Java 虚拟机具有一个堆，堆是运行时数据区域，所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。&rdquo;&ldquo;在JVM中堆之外的内存称为非堆内存(Non-heap memory)&rdquo;。可以看出JVM主要管理两种类型的内存：堆和非堆。简单来说堆就是Java代码可及的内存，是留给开发人员使用的；非堆就是JVM留给自己用的，所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
</li>
<li><strong>堆内存分配</strong><br />
JVM初始分配的内存由-Xms指定，默认是物理内存的1/64；JVM最大分配的内存由-Xmx指定，默认是物理内存的1/4。默认空余堆内存小于40%时，JVM就会增大堆直到-Xmx的最大限制；空余堆内存大于70%时，JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
</li>
<li><strong>非堆内存分配</strong><br />
JVM使用-XX:PermSize设置非堆内存初始值，默认是物理内存的1/64；由XX:MaxPermSize设置最大非堆内存的大小，默认是物理内存的1/4。
</li>
<li><strong>JVM内存限制(最大值)</strong><br />
首先JVM内存限制于实际的最大物理内存(废话！呵呵)，假设物理内存无限大的话，JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制，这个限制一般是2GB-3GB（一般来说Windows系统下为1.5G-2G，Linux系统下为2G-3G），而64bit以上的处理器就不会有限制了。
</li>
</blockquote>

<p><strong>2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动，而有些机器无法启动？</strong></p>
<p>通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种：堆内存和非堆内存，另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因：</p>
<blockquote><p>
1) 参数中-Xms的值大于-Xmx，或者-XX:PermSize的值大于-XX:MaxPermSize；</p>
<p>2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制，比如当前操作系统最大内存限制，或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是，如果你的内存是1024MB，但实际系统中用到的并不可能是1024MB，因为有一部分被硬件占用了。
</p></blockquote>
<p><strong>3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置？</strong></p>
<p>那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢？这是因为我们没有遵守eclipse.ini文件的设置规则：</p>
<blockquote><p>
参数形如&ldquo;项 值&rdquo;这种形式，中间有空格的需要换行书写，如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机，在eclipse.ini文件中要写成这样：</p>
<div class="hl-surround"><ol class="hl-main ln-show"><li class="hl-firstline">-vm</li>

<li>C:\Java\jre1.6.0\bin\javaw.exe</li></ol></div>
</blockquote>
<p>按照上面所说的，最后参数在eclipse.ini中可以写成这个样子：</p>
<div class="hl-surround"><ol class="hl-main ln-show"><li class="hl-firstline">-vmargs</li>
<li>-Xms128M</li>
<li>-Xmx512M</li>
<li>-XX:PermSize=64M</li>
<li>-XX:MaxPermSize=128M</li></ol></div>
<p>实际运行的结果可以通过Eclipse中&ldquo;Help&rdquo;-&ldquo;About Eclipse SDK&rdquo;窗口里面的&ldquo;Configuration Details&rdquo;按钮进行查看。</p>

<p>另外需要说明的是，Eclipse压缩包中自带的eclipse.ini文件内容是这样的：</p>
<div class="hl-surround"><ol class="hl-main ln-show"><li class="hl-firstline">-showsplash</li>
<li>org.eclipse.platform</li>
<li>--launcher.XXMaxPermSize</li>
<li>256m</li>
<li>-vmargs</li>
<li>-Xms40m</li>
<li>-Xmx256m</li></ol></div>
<p>其中&ndash;launcher.XXMaxPermSize（注意最前面是两个连接线）跟-XX:MaxPermSize参数的含义基本是一样的，我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数，而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了，所以这里可以把&ndash;launcher.XXMaxPermSize和下一行使用#注释掉。</p>

<p>参考资料：<br />
<a href="http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx" target="_blank">JDK5.0垃圾收集优化之&ndash;Don&rsquo;t Pause</a><br />
<a href="http://www.javaeye.com/topic/38142?page=1" target="_blank">提问：如何超越JVM内存限制？</a><br />
<a href="http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/management/MemoryMXBean.html" target="_blank">MemoryMXBean (Java 2 Platform SE 5.0)</a><br />
<a href="http://hi.baidu.com/nickshen3/blog/item/83d89852ba1ee60d0cf3e30b.html" target="_blank">MyEclipse/Eclipse的内存优化与内存不足的解决办法</a><br />
<a href="http://www.matrix.org.cn/thread.shtml?forumId=25&amp;topicId=c14f5fc6-81c0-11db-babc-9753a314dd4b" target="_blank">eclipse.ini文件的问题</a><br />
<a href="http://zhidao.baidu.com/question/36893010.html?si=1" target="_blank">eclipse 为什么报错</a></p>
	</div>

	
</div>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/158293#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Tue, 22 Jan 2008 13:10:56 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/158293</link>
        <guid>http://smartwgd.javaeye.com/blog/158293</guid>
      </item>
      <item>
        <title>启动eclipse的JVM的设置</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/158291" style="color:red;">http://smartwgd.javaeye.com/blog/158291</a>&nbsp;
          发表时间: 2008年01月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          三种方法：<br />启动eclipse应该有几种方法：<br />0、拷贝JRE到eclipse目录。<br />1、直接在命令行后面指定参数：eclipse -vm C:\j2sdk1.4.2_10\jre\bin\javaw.exe<br />2、在eclipse.ini文件中添加：<br /> -vm <br />C:\j2sdk1.4.2_10\jre\bin\javaw.exe<br />注意：这里有换行！ 否则用不了<br />3、在path环境变量中搜索javaw.exe 这个也可以。
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/158291#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 22 Jan 2008 12:56:34 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/158291</link>
        <guid>http://smartwgd.javaeye.com/blog/158291</guid>
      </item>
      <item>
        <title>破解啦~lullaby_cn.exe</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/158197" style="color:red;">http://smartwgd.javaeye.com/blog/158197</a>&nbsp;
          发表时间: 2008年01月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          此次破解只是为了温习汇编知识，破解只为学习和交流。所以不发布成品，需要者请向我本人索要。若有版权问题，请联系本人，本人马上删除。<br /><br />lullaby_cn.exe软件是一款让人随着慢慢睡着，音量慢慢减少的小软件。破解工具为c32asm，打开文件，ctrl+K 查看字符串，发现“你需要注册本软件”这句话，查看代码为 <br /><div class="quote_title">引用</div><div class="quote_div">::0045D46D::  BA C4D54500              MOV     EDX, 45D5C4                     \:BYJMP JmpBy:0045D41E,     \->:你需要注册本软件 </div><br /><br />再向上查看0045D41E 语句，发现<br /><div class="quote_title">引用</div><div class="quote_div">::0045D41E::  75 4D                    JNZ     SHORT 0045D46D</div><br />参看《奔腾指令速查手册》（网上自己搜一下），可以知道75代表JNZ,我们只需要将75改成74即可，74代表JZ。正好和JNZ相反。结束。
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/158197#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</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>Tue, 22 Jan 2008 02:09:56 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/158197</link>
        <guid>http://smartwgd.javaeye.com/blog/158197</guid>
      </item>
      <item>
        <title>汇编指令表与花指令大全</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/158196" style="color:red;">http://smartwgd.javaeye.com/blog/158196</a>&nbsp;
          发表时间: 2008年01月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          -- 8088汇编指令表<br />一、数据传输指令<br />───────────────────────────────────────<br />  它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.<br />  1. 通用数据传送指令.<br />    MOV   传送字或字节.<br />    MOVSX 先符号扩展,再传送.<br />    MOVZX 先零扩展,再传送.<br />    PUSH   把字压入堆栈.<br />    POP   把字弹出堆栈.<br />    PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.<br />    POPA   把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.<br />    PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.<br />    POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.<br />    BSWAP 交换32位寄存器里字节的顺序<br />    XCHG   交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)<br />    CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )<br />    XADD   先交换再累加.( 结果在第一个操作数里 )<br />    XLAT   字节查表转换.<br />          ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即<br />          0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )<br />  2. 输入输出端口传送指令.<br />    IN     I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )<br />    OUT   I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )<br />      输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,<br />      其范围是 0-65535.<br />  3. 目的地址传送指令.<br />    LEA   装入有效地址.<br />      例: LEA DX,string ;把偏移地址存到DX.<br />    LDS   传送目标指针,把指针内容装入DS.<br />      例: LDS SI,string ;把段地址:偏移地址存到DS:SI.<br />    LES   传送目标指针,把指针内容装入ES.<br />      例: LES DI,string ;把段地址:偏移地址存到ES:DI.<br />    LFS   传送目标指针,把指针内容装入FS.<br />      例: LFS DI,string ;把段地址:偏移地址存到FS:DI.<br />    LGS   传送目标指针,把指针内容装入GS.<br />      例: LGS DI,string ;把段地址:偏移地址存到GS:DI.<br />    LSS   传送目标指针,把指针内容装入SS.<br />      例: LSS DI,string ;把段地址:偏移地址存到SS:DI.<br />  4. 标志传送指令.<br />    LAHF   标志寄存器传送,把标志装入AH.<br />    SAHF   标志寄存器传送,把AH内容装入标志寄存器.<br />    PUSHF 标志入栈.<br />    POPF   标志出栈.<br />    PUSHD 32位标志入栈.<br />    POPD   32位标志出栈.<br /><br />二、算术运算指令<br />───────────────────────────────────────<br />    　　ADD   加法.<br />    ADC   带进位加法.<br />    INC   加 1.<br />    AAA   加法的ASCII码调整.<br />    DAA   加法的十进制调整.<br />    SUB   减法.<br />    SBB   带借位减法.<br />    DEC   减 1.<br />    NEC   求反(以 0 减之).<br />    CMP   比较.(两操作数作减法,仅修改标志位,不回送结果).<br />    AAS   减法的ASCII码调整.<br />    DAS   减法的十进制调整.<br />    MUL   无符号乘法.<br />    IMUL   整数乘法.<br />      以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),<br />    AAM   乘法的ASCII码调整.<br />    DIV   无符号除法.<br />    IDIV   整数除法.<br />      以上两条,结果回送:<br />        商回送AL,余数回送AH, (字节运算);<br />      或 商回送AX,余数回送DX, (字运算).<br />    AAD   除法的ASCII码调整.<br />    CBW   字节转换为字. (把AL中字节的符号扩展到AH中去)<br />    CWD   字转换为双字. (把AX中的字的符号扩展到DX中去)<br />    CWDE   字转换为双字. (把AX中的字符号扩展到EAX中去)<br />    CDQ   双字扩展.   (把EAX中的字的符号扩展到EDX中去)<br /><br />三、逻辑运算指令<br />───────────────────────────────────────<br />    　　AND   与运算.<br />    OR     或运算.<br />    XOR   异或运算.<br />    NOT   取反.<br />    TEST   测试.(两操作数作与运算,仅修改标志位,不回送结果).<br />    SHL   逻辑左移.<br />    SAL   算术左移.(=SHL)<br />    SHR   逻辑右移.<br />    SAR   算术右移.(=SHR)<br />    ROL   循环左移.<br />    ROR   循环右移.<br />    RCL   通过进位的循环左移.<br />    RCR   通过进位的循环右移.<br />      以上八种移位指令,其移位次数可达255次.<br />        移位一次时, 可直接用操作码. 如 SHL AX,1.<br />        移位>1次时, 则由寄存器CL给出移位次数.<br />          如 MOV CL,04<br />            SHL AX,CL<br /><br />四、串指令<br />───────────────────────────────────────<br />        　DS:SI 源串段寄存器 :源串变址.<br />        ES:DI 目标串段寄存器:目标串变址.<br />        CX     重复次数计数器.<br />        AL/AX 扫描值.<br />        D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.<br />        Z标志 用来控制扫描或比较操作的结束.<br />    MOVS   串传送.<br />        ( MOVSB 传送字符.   MOVSW 传送字.   MOVSD 传送双字. )<br />    CMPS   串比较.<br />        ( CMPSB 比较字符.   CMPSW 比较字. )<br />    SCAS   串扫描.<br />        把AL或AX的内容与目标串作比较,比较结果反映在标志位.<br />    LODS   装入串.<br />        把源串中的元素(字或字节)逐一装入AL或AX中.<br />        ( LODSB 传送字符.   LODSW 传送字.   LODSD 传送双字. )<br />    STOS   保存串.<br />        是LODS的逆过程.<br />    REP         当CX/ECX&lt;>0时重复.<br />    REPE/REPZ     当ZF=1或比较结果相等,且CX/ECX&lt;>0时重复.<br />    REPNE/REPNZ   当ZF=0或比较结果不相等,且CX/ECX&lt;>0时重复.<br />    REPC       当CF=1且CX/ECX&lt;>0时重复.<br />    REPNC       当CF=0且CX/ECX&lt;>0时重复.<br /><br />五、程序转移指令<br />───────────────────────────────────────<br />  　1>无条件转移指令 (长转移)<br />    JMP   无条件转移指令<br />    CALL   过程调用<br />    RET/RETF过程返回.<br />  2>条件转移指令 (短转移,-128到+127的距离内)<br />    ( 当且仅当(SF XOR OF)=1时,OP1&lt;OP2 )<br />    JA/JNBE 不小于或不等于时转移.<br />    JAE/JNB 大于或等于转移.<br />    JB/JNAE 小于转移.<br />    JBE/JNA 小于或等于转移.<br />      以上四条,测试无符号整数运算的结果(标志C和Z).<br />    JG/JNLE 大于转移.<br />    JGE/JNL 大于或等于转移.<br />    JL/JNGE 小于转移.<br />    JLE/JNG 小于或等于转移.<br />      以上四条,测试带符号整数运算的结果(标志S,O和Z).<br />    JE/JZ 等于转移.<br />    JNE/JNZ 不等于时转移.<br />    JC     有进位时转移.<br />    JNC   无进位时转移.<br />    JNO   不溢出时转移.<br />    JNP/JPO 奇偶性为奇数时转移.<br />    JNS   符号位为 "0" 时转移.<br />    JO     溢出转移.<br />    JP/JPE 奇偶性为偶数时转移.<br />    JS     符号位为 "1" 时转移.<br />  3>循环控制指令(短转移)<br />    LOOP         CX不为零时循环.<br />    LOOPE/LOOPZ   CX不为零且标志Z=1时循环.<br />    LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.<br />    JCXZ         CX为零时转移.<br />    JECXZ       ECX为零时转移.<br />  4>中断指令<br />    INT   中断指令<br />    INTO   溢出中断<br />    IRET   中断返回<br />  5>处理器控制指令<br />    HLT   处理器暂停, 直到出现中断或复位信号才继续.<br />    WAIT   当芯片引线TEST为高电平时使CPU进入等待状态.<br />    ESC   转换到外处理器.<br />    LOCK   封锁总线.<br />    NOP   空操作.<br />    STC   置进位标志位.<br />    CLC   清进位标志位.<br />    CMC   进位标志取反.<br />    STD   置方向标志位.<br />    CLD   清方向标志位.<br />    STI   置中断允许位.<br />    CLI   清中断允许位.<br /><br />六、伪指令<br />───────────────────────────────────────<br />    　　DW     定义字(2字节).<br />    PROC   定义过程.<br />    ENDP   过程结束.<br />    SEGMENT 定义段.<br />    ASSUME 建立段寄存器寻址.<br />    ENDS   段结束.<br />    END   程序结束.
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/158196#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 22 Jan 2008 01:57:33 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/158196</link>
        <guid>http://smartwgd.javaeye.com/blog/158196</guid>
      </item>
      <item>
        <title>oracle 报错 ORA-01033</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/153451" style="color:red;">http://smartwgd.javaeye.com/blog/153451</a>&nbsp;
          发表时间: 2008年01月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          那天做了一下磁盘整理，估计删掉了oracle的日志备份文件。。。例如C:\oracle\oradata\lianadev\REDO01.LOG 文件，这个文件100多M以为没用，结果删除了就报错了。看来还得设法拯救。<br /><br />解决过程：<br />sqlplus /nolog   <br />connect scott/tiger as sysdba  用dba身份进入<br />shutdown normal   关闭数据库<br />startup mount   启动<br />alter database open;       打开数据库，一般这个时候会报出来丢失了哪些文件<br />我报出来的错误：<br />ERROR 位于第 1 行:<br />ORA-00313: 无法打开日志组 2 (线程 1) 的成员<br />ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\ORADATA\LIANADEV\REDO02.LOG'<br /><br />select group#,sequence#,archived,status from v$log; 开始解决<br />    GROUP#  SEQUENCE# ARCHIV STATUS<br />---------- ---------- ------ --------------------------------<br />         1          0 NO     CLEARING_CURRENT<br />         2          0 NO     UNUSED<br />         3         70 NO     INACTIVE<br /><br />alter database clear logfile group 1;<br />alter database clear logfile group 3;<br />然后就OK啦<br /><br /><br />baidu/google搜索到的：<br />搜索：ora-01033<br /><a href="http://thiger.blog.hexun.com/8231978_d.html" target="_blank">http://thiger.blog.hexun.com/8231978_d.html</a><br /><a href="http://www.cnblogs.com/program/archive/2007/06/27/797373.aspx" target="_blank">http://www.cnblogs.com/program/archive/2007/06/27/797373.aspx</a><br />搜索：无法打开日志组 2 (线程 1) 的成员<br /><a href="http://faq.csdn.net/FAQUnfurl.aspx?id=217093" target="_blank">http://faq.csdn.net/FAQUnfurl.aspx?id=217093</a><br /><a href="http://blog.csdn.net/nbc_prc/archive/2006/10/08/1325800.aspx" target="_blank">http://blog.csdn.net/nbc_prc/archive/2006/10/08/1325800.aspx</a>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/153451#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 06 Jan 2008 10:37:10 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/153451</link>
        <guid>http://smartwgd.javaeye.com/blog/153451</guid>
      </item>
      <item>
        <title>介绍 JSON</title>
        <author>smartwgd</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://smartwgd.javaeye.com">smartwgd</a>&nbsp;
          链接：<a href="http://smartwgd.javaeye.com/blog/118222" style="color:red;">http://smartwgd.javaeye.com/blog/118222</a>&nbsp;
          发表时间: 2007年08月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>转载原文出处：<a href="http://www.json.org/json-zh.html">http://www.json.org/json-zh.html</a><br />
</strong></p>
<p><strong>JSON</strong>(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于<a href="http://www.crockford.com/javascript">JavaScript Programming Language</a>,  <a href="http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf">Standard  ECMA-262 3rd Edition - December 1999</a>的一个子集。 JSON采用完全独立于语言的文本格式，但是也使用了类似于C语言家族的习惯（包括C, C++, C#, Java, JavaScript, Perl, Python等）。 这些特性使JSON成为理想的数据交换语言。</p>
<p>JSON建构于两种结构：<br />
</p>
<ul>
    <li>&ldquo;名称/值&rdquo;对的集合（A collection of name/value pairs）。不同的语言中，它被理解为<em>对象（object）</em>，纪录（record），结构（struct），字典（dictionary），哈希表（hash table），有键列表（keyed list），或者关联数组 （associative array）。 </li>
    <li>值的有序列表（An ordered list of values）。在大部分语言中，它被理解为数组（array）。 </li>
</ul>
<p>这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。</p>
<p>JSON具有以下这些形式：</p>
<p>对象是一个无序的&ldquo;&lsquo;名称/值&rsquo;对&rdquo;集合。一个对象以&ldquo;{&rdquo;（左括号）开始，&ldquo;}&rdquo;（右括号）结束。每个&ldquo;名称&rdquo;后跟一个&ldquo;:&rdquo;（冒号）；&ldquo;&lsquo;名称/值&rsquo; 对&rdquo;之间使用&ldquo;,&rdquo;（逗号）分隔。 </p>
<p><img src="http://www.json.org/object.gif" height="113" alt="" width="598" /></p>
<p>数组是值（value）的有序集合。一个数组以&ldquo;[&rdquo;（左中括号）开始，&ldquo;]&rdquo;（右中括号）结束。值之间使用&ldquo;,&rdquo;（逗号）分隔。 </p>
<p><img src="http://www.json.org/array.gif" height="113" alt="" width="598" /></p>
<p>值（<em>value</em>）可以是双引号括起来的字符串（<em>string</em>）、数值(number)、true、false、 null、对象（object）或者数组（array）。这些结构可以嵌套。 </p>
<p><img src="http://www.json.org/value.gif" height="278" alt="" width="598" /></p>
<p>字符串（<em>string</em>）是由双引号包围的任意数量Unicode字符的集合，使用反斜线转义。一个字符（character）即一个单独的字符串（character string）。 </p>
<p>字符串（<em>string</em>）与C或者Java的字符串非常相似。 </p>
<p><img src="http://www.json.org/string.gif" height="413" alt="" width="598" /></p>
<p>数值（<em>number</em>）也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。</p>
<p><img src="http://www.json.org/number.gif" height="266" alt="" width="598" /></p>
<p>空白可以加入到任何符号之间。 以下描述了完整的语言。</p>
          <br/>
          <span style="color:red;">
            <a href="http://smartwgd.javaeye.com/blog/118222#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></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;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 30 Aug 2007 07:25:00 +0800</pubDate>
        <link>http://smartwgd.javaeye.com/blog/118222</link>
        <guid>http://smartwgd.javaeye.com/blog/118222</guid>
      </item>
  </channel>
</rss>