﻿<?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-lichen6928</title><link>http://www.blogjava.net/lichen6928/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:00:16 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:00:16 GMT</pubDate><ttl>60</ttl><item><title>java中Class类型（１）</title><link>http://www.blogjava.net/lichen6928/archive/2011/03/13/346154.html</link><dc:creator>小晖</dc:creator><author>小晖</author><pubDate>Sun, 13 Mar 2011 10:41:00 GMT</pubDate><guid>http://www.blogjava.net/lichen6928/archive/2011/03/13/346154.html</guid><wfw:comment>http://www.blogjava.net/lichen6928/comments/346154.html</wfw:comment><comments>http://www.blogjava.net/lichen6928/archive/2011/03/13/346154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lichen6928/comments/commentRss/346154.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lichen6928/services/trackbacks/346154.html</trackback:ping><description><![CDATA[<h4 align="left">&nbsp;</h4>
<p>在java程序中每一个类都有一个Class对象，被保存在同名的.Class对象当中，JVM会使用类加载器加载Class文件生成类的对象信息．</p>
<p>当我们创建一个类的对象或者调用这个对象的静态方法,jvm会自动加载类的对象信息</p>
<h4>获得类的对象信息</h4>
<p>我们一般常用用两种方式获得类的对象信息．</p>
<p>1. 我们可以用Class.forName()方法动态的根据类名获得一个类的Class对象．</p>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 650px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2:      * 使用此方法为自动初始化静态变量和执行static块的代码<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:      * 如果找不到对象会抛出一个ClassNotFoundException<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4:      */<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5:     Class second = Class.forName("<span style="color: #8b0000;">classLoad.Second</span>");</pre>
</pre>
<p>2. 我们还可以用Class class = ClassName.class 来直接获取一个类的类型信息,但用它和Class.forName()获取类的对象</p>
<p>引用信息在静态块时的执行时间上不同，看下面的例子：</p>
<p>一个普通类信息</p>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 705px; height: 540px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1: <span style="color: #0000ff;">interface</span> Interface{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String interFlag = "<span style="color: #8b0000;">接口</span>";<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:   <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4: }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  6: <span style="color: #0000ff;">class</span> Parent <span style="color: #0000ff;">implements</span> Interface{<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  7:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String parntFLAG = "<span style="color: #8b0000;">父类静态变量</span>";<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  8:   <span style="color: #0000ff;">static</span>{<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  9:     <span style="color: #0000ff;">final</span>  String flag2 = "<span style="color: #8b0000;">flag2</span>";<span style="color: #008000;">//static 区中只能用final修饰</span><br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 10:     System.out.println("<span style="color: #8b0000;">我在父类静态区里面！</span>"+parntFLAG);<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 11:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 12:   <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 13:   <span style="color: #0000ff;">public</span>  Parent(){<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 14:     System.out.println("<span style="color: #8b0000;">我在父类构造函数里面！</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 15:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 16: }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 17: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 18: <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 19: <span style="color: #0000ff;">class</span> Son <span style="color: #0000ff;">extends</span>  Parent{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 20:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String sonFLAG = "<span style="color: #8b0000;">子类类静态变量</span>";<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 21:   <span style="color: #0000ff;">static</span>{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 22:     System.out.println("<span style="color: #8b0000;">我在子类静态区里面！</span>"+sonFLAG);<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 23:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 24:   <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 25:   <span style="color: #0000ff;">public</span> Son(){<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 26:     System.out.println("<span style="color: #8b0000;">我在子类构造函数里面！</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 27:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 28: }</pre>
</pre>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 705px; height: 519px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1: <span style="color: #0000ff;">interface</span> Interface{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String interFlag = "<span style="color: #8b0000;">接口</span>";<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:   <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4: }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  6: <span style="color: #0000ff;">class</span> Parent <span style="color: #0000ff;">implements</span> Interface{<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  7:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String parntFLAG = "<span style="color: #8b0000;">父类静态变量</span>";<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  8:   <span style="color: #0000ff;">static</span>{<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  9:     <span style="color: #0000ff;">final</span>  String flag2 = "<span style="color: #8b0000;">flag2</span>";<span style="color: #008000;">//static 区中只能用final修饰</span><br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 10:     System.out.println("<span style="color: #8b0000;">我在父类静态区里面！</span>"+parntFLAG);<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 11:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 12:   <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 13:   <span style="color: #0000ff;">public</span>  Parent(){<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 14:     System.out.println("<span style="color: #8b0000;">我在父类构造函数里面！</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 15:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 16: }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 17: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 18: <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 19: <span style="color: #0000ff;">class</span> Son <span style="color: #0000ff;">extends</span>  Parent{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 20:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> String sonFLAG = "<span style="color: #8b0000;">子类类静态变量</span>";<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 21:   <span style="color: #0000ff;">static</span>{<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 22:     System.out.println("<span style="color: #8b0000;">我在子类静态区里面！</span>"+sonFLAG);<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 23:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 24:   <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 25:   <span style="color: #0000ff;">public</span> Son(){<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 26:     System.out.println("<span style="color: #8b0000;">我在子类构造函数里面！</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 27:   }<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 28: }</pre>
</pre>
<p>使用这种方法引用类的对象不会始化静态变量和执行静态块信息，这些代码方法会在首次引用时执行．</p>
<p>如下引用父类的静态变量，不会执行子类的静态块．</p>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 650px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1: <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> ClassLoad {<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span> ClassNotFoundException  {<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:     <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4:     <span style="color: #008000;">//Son son = new Son();</span><br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  6:      * 我们使用一个类的时候需要进行以下３项工作．<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  7:      * 1.加载，<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  8:      * 2.链接<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  9:      * 3.初始化，此步会初始化静态变量和执行静态块信息，但是这种方法会在<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 10:      * 真正调用方法时执行<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 11:      */<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 12:     Class son = Son.<span style="color: #0000ff;">class</span>;<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 13:     System.out.println("<span style="color: #8b0000;">静态区的初始化会在调用时执行！</span>");<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 14:     <span style="color: #008000;">// parntFLAG 是父类的静态变量　</span><br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 15:     <span style="color: #008000;">// 此处只会执行父类的静态快</span><br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 16:     System.out.println(Son.<font color="#ff0000">parntFLAG</font>);<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 17: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 18:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 19:      * 运行结果<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 20:      *静态区的初始化会在调用时执行！<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 21:      *我在父类静态区里面！父类静态变量<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 22:      *父类静态变量<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 23:      */<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 24:   }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 25: }</pre>
</pre>
<blockquote></blockquote>
<p>打印子类的静态变量，所有的代码都会执行</p>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 650px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2: <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> ClassLoad {<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span> ClassNotFoundException  {<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4:     <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5:     <span style="color: #008000;">//Son son = new Son();</span><br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  6:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  7:      * 我们使用一个类的时候需要进行以下３项工作．<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  8:      * 1.加载，<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  9:      * 2.链接<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 10:      * 3.初始化，此步会初始化静态变量和执行静态块信息，但是这种方法会在<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 11:      * 真正调用方法时执行<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 12:      */<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 13:     Class son = Son.<span style="color: #0000ff;">class</span>;<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 14:     System.out.println("<span style="color: #8b0000;">静态区的初始化会在调用时执行！</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 15:     <span style="color: #008000;">// parntFLAG 是父类的静态变量　</span><br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 16:     <span style="color: #008000;">// 此处只会执行父类的静态快</span><br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 17:     System.out.println(Son.<font color="#ff0000">sonFLAG</font>);<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 18: <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 19:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 20:      * 运行结果<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 21:      * 静态区的初始化会在调用时执行！<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 22:      * 我在父类静态区里面！父类静态变量<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 23:      * 我在子类静态区里面！子类类静态变量<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 24:      * 子类类静态变量<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 25:      */<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 26:   }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 27: }</pre>
</pre>
<p>&nbsp;</p>
<p>但是使用Class.forName 类加载时就会完成初始化工作．</p>
<pre style="border: 1px solid #c0c0c0; padding: 5px; background-color: #f0f0f0; min-height: 40px; width: 650px; overflow: auto;">
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  1: <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> ClassLoad {<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  2:   <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span> Exception  {<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  3:     <span style="color: #008000;">/**<br />
</span></pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  4:      * 使用Class.forName会自动加载所有静态区的信息<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  5:      */<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  6:     Class son = Class.forName("<span style="color: #8b0000;">classLoad.Son</span>");<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  7:     Son instance = (Son)son.newInstance();<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  8:     <span style="color: #008000;">/*<br />
</span></pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;">  9:      * 执行结果<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 10:      * 我在父类静态区里面！父类静态变量<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 11:      * 我在子类静态区里面！子类类静态变量<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 12:      * 我在父类构造函数里面！<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 13:      * 我在子类构造函数里面！<br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 14:      */  <br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 15: <br />
</pre>
<pre style="background-color: #e1e1e1; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 16:   }<br />
</pre>
<pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px;"> 17: }</pre>
</pre>
 <img src ="http://www.blogjava.net/lichen6928/aggbug/346154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lichen6928/" target="_blank">小晖</a> 2011-03-13 18:41 <a href="http://www.blogjava.net/lichen6928/archive/2011/03/13/346154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ThreadLocal</title><link>http://www.blogjava.net/lichen6928/archive/2009/05/14/270702.html</link><dc:creator>小晖</dc:creator><author>小晖</author><pubDate>Thu, 14 May 2009 13:03:00 GMT</pubDate><guid>http://www.blogjava.net/lichen6928/archive/2009/05/14/270702.html</guid><wfw:comment>http://www.blogjava.net/lichen6928/comments/270702.html</wfw:comment><comments>http://www.blogjava.net/lichen6928/archive/2009/05/14/270702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lichen6928/comments/commentRss/270702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lichen6928/services/trackbacks/270702.html</trackback:ping><description><![CDATA[<p>该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物，因为访问某个变量（通过其 get 或 set 方法）的每个线程都有自己的局部变量，它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段，它们希望将状态与某一个线程（例如，用户 ID 或事务 ID）相关联。  <p>这个是什么，就是解决一个线程内共享一个变量，这个变量只在这个线程内部有效，在一个线程内访问的都一个同一个对象，而多个线程之间的这个对象却是相互独立的。说来就是每一个线程都有一个独立的此线程副本。<br>使用ThreadLocal一般都声明为静态的变量<br>在我们的线程中有一个threadLocals的Hash表来存放这个对象，我们用ThreadLocal对象作为主键，因此我们的ThreadLocal对象声明为静态的  <p>我们可以使用多个TheadLocal，来使一个线程里有多个共享的变量<br>这个就是要实现一个线程里面共享一个变量<pre><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> set(Object value) {        
	  Thread t = Thread.currentThread();
        ThreadLocalMap map = getMap(t);
        <span style="color: #0000ff">if</span> (map != <span style="color: #0000ff">null</span>) 
            map.set(<span style="color: #0000ff">this</span>, value);
        <span style="color: #0000ff">else</span>
            createMap(t, value);
    }</pre>
<p>&nbsp;</p><pre>    ThreadLocalMap getMap(Thread t) {
        <span style="color: #0000ff">return</span> t.threadLocals;
    }</pre><img src ="http://www.blogjava.net/lichen6928/aggbug/270702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lichen6928/" target="_blank">小晖</a> 2009-05-14 21:03 <a href="http://www.blogjava.net/lichen6928/archive/2009/05/14/270702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改IE中的HTTP请求时间</title><link>http://www.blogjava.net/lichen6928/archive/2009/05/14/270699.html</link><dc:creator>小晖</dc:creator><author>小晖</author><pubDate>Thu, 14 May 2009 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/lichen6928/archive/2009/05/14/270699.html</guid><wfw:comment>http://www.blogjava.net/lichen6928/comments/270699.html</wfw:comment><comments>http://www.blogjava.net/lichen6928/archive/2009/05/14/270699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lichen6928/comments/commentRss/270699.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lichen6928/services/trackbacks/270699.html</trackback:ping><description><![CDATA[<p>&nbsp; <p>1. 添加带有数据值 (&lt; 次数秒 &gt;) ReceiveTimeout DWORD 值 *： 在以下注册表项中</p> <p>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings<br>例如, 如果希望超时期间将 8 分钟, ReceiveTimeout 数据值设置为 480000 (&lt; 480 &gt; 1000） 。 </p> <p>&nbsp;<br>2. 重新启动计算机。<br><a href="http://support.microsoft.com/kb/181050/zh-cn">详情</a></p><img src ="http://www.blogjava.net/lichen6928/aggbug/270699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lichen6928/" target="_blank">小晖</a> 2009-05-14 20:56 <a href="http://www.blogjava.net/lichen6928/archive/2009/05/14/270699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pb 调用dll文件</title><link>http://www.blogjava.net/lichen6928/archive/2009/05/14/270697.html</link><dc:creator>小晖</dc:creator><author>小晖</author><pubDate>Thu, 14 May 2009 12:48:00 GMT</pubDate><guid>http://www.blogjava.net/lichen6928/archive/2009/05/14/270697.html</guid><wfw:comment>http://www.blogjava.net/lichen6928/comments/270697.html</wfw:comment><comments>http://www.blogjava.net/lichen6928/archive/2009/05/14/270697.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lichen6928/comments/commentRss/270697.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lichen6928/services/trackbacks/270697.html</trackback:ping><description><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:04f4e36d-70a7-443f-ba71-349e1c9f0c88" class="wlWriterSmartContent">LiveJournal Tags: <a href="http://www.livejournal.com/interests.bml?int=pb%20c%20%e5%8f%82%e6%95%b0%e5%af%b9%e5%ba%94" rel="tag">pb c 参数对应</a></div> <p>MICROSOFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PB(16Bit)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PB(32Bit) <p>Bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boolean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Boolean <p>Char*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref String <p>Colorref&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Dword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Handle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Hdc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Hfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Hinstance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int <p>Lparam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>Lpbyte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Long <p>Lpdword&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Ulong <p>Lpfiletime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Time <p>Lpint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Long <p>Lpstr,Lpststr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref String&nbsp;&nbsp;&nbsp;&nbsp; Ref String <p>Lpvoid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Structstruct_inst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Struct struct_inst <p>Mcierror&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Long <p>Lpstr,Lpststr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref String&nbsp;&nbsp;&nbsp;&nbsp; Ref String <p>Lpvoid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Structstruct_inst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Struct struct_inst <p>Pbyte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Int[#]&nbsp;&nbsp;&nbsp;&nbsp; Ref Long[#] <p>Short&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int <p>Structure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Struct struct_inst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ref Struct Struct_inst <p>Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Uint <p>Void**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBROUTINE&nbsp;&nbsp;&nbsp; SUBROUTINE <p>Word&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ulong <p>&nbsp; <p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:828fefb6-1e3e-4217-a7da-b65431a6de36" class="wlWriterSmartContent">LiveJournal Tags: <a href="http://www.livejournal.com/interests.bml?int=%e5%8f%82%e6%95%b0%e5%8e%8b%e6%a0%88%e9%97%ae%e9%a2%98" rel="tag">参数压栈问题</a></div></p> <p>&nbsp;</p> <p><a href="http://www.blogjava.net/images/blogjava_net/lichen6928/WindowsLiveWriter/pbdll_12438/Catch0_2.jpg"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="Catch0" src="http://www.blogjava.net/images/blogjava_net/lichen6928/WindowsLiveWriter/pbdll_12438/Catch0_thumb.jpg" width="638" height="165"></a>&nbsp;</p> <p>pb能使用的必须是标准winapi即pasical 压栈顺序</p> <ol> <li>制作dll文件时 需要stdcal</li> <li>在函数中加入winapi</li></ol> <p>eg：</p><pre>DLLIMPORT WINAPI <span style="color: #0000ff">int</span> CI_MACForPb(
              <span style="color: #0000ff">long</span>           nFunction,      
              <span style="color: #0000ff">unsigned</span> <span style="color: #0000ff">char</span>  *pEntity,     
              <span style="color: #0000ff">unsigned</span> <span style="color: #0000ff">char</span>  *pInData,
              <span style="color: #0000ff">unsigned</span> <span style="color: #0000ff">long</span>  nInLength,
              <span style="color: #0000ff">unsigned</span> <span style="color: #0000ff">char</span>  *pMAC,
              <span style="color: #0000ff">unsigned</span> <span style="color: #0000ff">long</span>  *pnMACLength
              )</pre><img src ="http://www.blogjava.net/lichen6928/aggbug/270697.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lichen6928/" target="_blank">小晖</a> 2009-05-14 20:48 <a href="http://www.blogjava.net/lichen6928/archive/2009/05/14/270697.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>