??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美一级视频在线观看,欧美性三三影院,欧美极品影院http://www.aygfsteel.com/mhl1003/category/46143.htmlzh-cnThu, 15 Nov 2012 05:12:56 GMTThu, 15 Nov 2012 05:12:56 GMT60面向对象设计原则概述http://www.aygfsteel.com/mhl1003/articles/391285.html自由战士自由战士Tue, 13 Nov 2012 16:34:00 GMThttp://www.aygfsteel.com/mhl1003/articles/391285.htmlhttp://www.aygfsteel.com/mhl1003/comments/391285.htmlhttp://www.aygfsteel.com/mhl1003/articles/391285.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/391285.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/391285.html

设计原则名称

设计原则?/span>

重要?/span>

单一职责原则

(Single Responsibility Principle, SRP)

cȝ职责要单一Q不能将太多的职责放在一个类?/span>

★★★★☆

开闭原?/span>

(Open-Closed Principle, OCP)

软g实体Ҏ展是开攄Q但对修Ҏ关闭的,卛_不修改一

个Y件实体的基础上去扩展其功?/span>

★★★★★

里氏代换原则

(Liskov Substitution Principle, LSP)

在Y件系l中Q一个可以接受基cd象的地方必然可以接受一

个子cd?/span>

★★★★☆

依赖倒{原则

(Dependency Inversion Principle, DIP)

要针Ҏ象层~程Q而不要针对具体类~程

★★★★★

接口隔离原则

(Interface Segregation Principle, ISP)

使用多个专门的接口来取代一个统一的接?/span>

★★☆☆☆

合成复用原则

(Composite Reuse Principle, CRP)

在系l中应该量多用组合和聚合兌关系Q尽量少使用?/span>

至不使用l承关系

★★★★☆

q米Ҏ?/span>

(Law of Demeter, LoD)

一个Y件实体对其他实体的引用越越好,或者说如果两个c?/span>

不必彼此直接通信Q那么这两个cd不应当发生直接的怺?/span>

用,而是通过引入一个第三者发生间接交?/span>

★★★☆☆



自由战士 2012-11-14 00:34 发表评论
]]>
java事务处理http://www.aygfsteel.com/mhl1003/articles/391284.html自由战士自由战士Tue, 13 Nov 2012 16:24:00 GMThttp://www.aygfsteel.com/mhl1003/articles/391284.htmlhttp://www.aygfsteel.com/mhl1003/comments/391284.htmlhttp://www.aygfsteel.com/mhl1003/articles/391284.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/391284.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/391284.html?/span>  java的事务处?如果Ҏ据库q行多次操作,每一ơ的执行或步骤都是一个事?如果数据库操作在某一步没有执行或出现异常而导致事务失?q样有的事务被执行有的就没有被执?从而就有了事务?a target="_blank">回滚,取消先前的操?....

~辑本段详细说明

  Java中用事务处理,首先要求数据库支持事务。如使用MySQL的事务功能,p求MySQL的表cd为Innodb才支持事务。否则,在JavaE序中做了commit或rollbackQ但在数据库中根本不能生效?
  JavaBean中用JDBC方式q行事务处理
  public int delete(int sID) {
  dbc = new DataBaseConnection();
  Connection con = dbc.getConnection();
  try {
  con.setAutoCommit(false);// 更改JDBC事务的默认提交方?
  dbc.executeUpdate("delete from xiao where ID=" + sID);
  dbc.executeUpdate("delete from xiao_content where ID=" + sID);
  dbc.executeUpdate("delete from xiao_affix where bylawid=" + sID);
  con.commit();//提交JDBC事务
  con.setAutoCommit(true);// 恢复JDBC事务的默认提交方?
  dbc.close();
  return 1;
  }
  catch (Exception exc) {
  con.rollBack();//回滚JDBC事务
  exc.printStackTrace();
  dbc.close();
  return -1;
  }
  }
  在数据库操作中,一事务是指由一条或多条Ҏ据库更新的sql语句所l成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一Ҏ作没有完成,必L消整个事务?
  例如在银行的转帐事务中,假定张三从自q帐号上把1000元{到李四的帐号上,相关的sql语句如下Q?
  update account set monery=monery-1000 where name='zhangsan'
  update account set monery=monery+1000 where name='lisi'
  q个两条语句必须作ؓ一个完成的事务来处理。只有当两条都成功执行了Q才能提交这个事务。如果有一句失败,整个事务必须撤消?
  在connectioncM提供?个控制事务的ҎQ?
  Q?Q?setAutoCommit(Boolean autoCommit):讄是否自动提交事务Q?
  Q?Q?commit();提交事务Q?
  Q?Q?rollback();撤消事务Q?
  在jdbc api中,默认的情况ؓ自动提交事务Q也是_每一条对数据库的更新的sql语句代表一事务,操作成功后,pȝ自动调用commitQ)来提交,否则调用rollbackQ)来撤消事务?
  在jdbc api中,可以通过调用setAutoCommit(false) 来禁止自动提交事务。然后就可以把多条更新数据库的sql语句做ؓ一个事务,在所有操作完成之后,调用commitQ)来进行整体提交。倘若其中一?sql操作p|Q就不会执行commitQ)ҎQ而是产生相应的sqlexceptionQ此时就可以捕获异常代码块中调用rollbackQ)Ҏ撤消事务?

自由战士 2012-11-14 00:24 发表评论
]]>
java中成员变量和局部变量的区别http://www.aygfsteel.com/mhl1003/articles/391232.html自由战士自由战士Mon, 12 Nov 2012 13:45:00 GMThttp://www.aygfsteel.com/mhl1003/articles/391232.htmlhttp://www.aygfsteel.com/mhl1003/comments/391232.htmlhttp://www.aygfsteel.com/mhl1003/articles/391232.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/391232.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/391232.html

先看下面两段E序Q?/font>

E序一Q?/strong>
public class Variable
{
int i;
void test()
{
   int j=8;
   if(j==i)
    System.out.println("相等");
   else
    System.out.println("不相{?);
}
public static void main(String[] args)
{
   Variable v=new Variable();
   v.test();
}
}

E序二:
public class Variable
{
   void test()
{
   int i;
   int j=8;
   if(j==i)
    System.out.println("相等");
   else
    System.out.println("不相{?);
}
public static void main(String[] args)
{
   Variable v=new Variable();
   v.test();
}
}

----------------------------------------------------------------------------------------------------------

W一个程序很正常Q编译时不会出错。第二个E序~译时会提示如下错误Q?/font>

D:\Program\java\test>javac Variable.java
Variable.java:9: 可能未初始化变?i
                if(j==i)
                      ^
1 错误

之所以会出现q样的错误是因ؓQ?strong style="line-height: normal">成员变量有默认|Q被final修饰且没有static的必L式赋|Q局部变量不会自动赋?/strong>

===========================================================

cM分ؓ两部分。变量定义部分所定义的变量被UCؓcȝ成员变量Q在Ҏ体中定义的变量和Ҏ的参数都被称?strong style="line-height: normal">局部变?/strong>

java中成员变量和局部变量的区别

1.成员变量可以被publicQprotectQprivateQstatic{修饰符修饰Q?/font>局部变量不能被控制修饰W及static修饰Q两者都可以定义成final?/font>
2.成员变量存储在堆Q局部变量存储在?/font>
3.存在旉不同
4.成员变量有默认|Q被final修饰且没有static的必L式赋|Q局部变量不会自动赋?br style="line-height: normal" />-------------------------------------------------------------------------------------------------------------
֐思意?br style="line-height: normal" />什么是局部,Ҏ内部Q块内部都是局部,执行指o退出那个局部,局部变量自动清?br style="line-height: normal" />
比如Ҏ中,不用?br style="line-height: normal" />块中
{
  int i=0; //q是一个局部变量,它的作用范围在其中 
}

成员变量׃涉及到谁的成员,cȝ成员Q实例的成员Q?br style="line-height: normal" />
class A{
int i=0; //实例的成?br style="line-height: normal" />static j=1;//cȝ成员
}

static 的差别,是否依赖于实例而存?br style="line-height: normal" />----------------------------------------------------------------------------------------------------------

成员变量Q作为类的成员而存在,直接存在于类中?/font>

局部变量:作ؓҎ或语句块的成员而存在,存在于方法的参数列表和方法定义中?/font>

局部变量在使用前必被E序员主动的初始化,和此形成ҎQ系l中的成员变量则会被pȝ提供一个默认的初始倹{所以在语法上,cȝ成员变量能够定义后直接用,而局部变量在定义后先要赋初|然后才能使用?/strong>

 

所有类的成员变量可以通过this来引用。成员变量又分成俩中cdQ实例变量和静态变量。静态变量在定义时要使用

static关键字?/font>

package com;

public class MemberVariable {
 int v_int;
 float v_float;
 boolean v_boolean;
 String v_string;
 byte v_byte;
 short v_short;
 char v_char;
 long v_long;
 
 public static void main(String[] args)
 {
  MemberVariable mv = new MemberVariable();
  System.out.println("int的默认?"+mv.v_int);
  System.out.println("float的默认?"+mv.v_float);
  System.out.println("boolean的默认?"+mv.v_boolean);
  System.out.println("string的默认?"+mv.v_byte);
  System.out.println("short的默认?"+mv.v_short);
  System.out.println("char的默认?"+mv.v_char);
  System.out.println("long的默认?"+mv.v_long);
 }
}
int的默认?0
float的默认?0.0
boolean的默认?false
string的默认?0
short的默认?0
char的默认?




自由战士 2012-11-12 21:45 发表评论
]]>
javaZ么可以跨q_ http://www.aygfsteel.com/mhl1003/articles/391230.html自由战士自由战士Mon, 12 Nov 2012 13:10:00 GMThttp://www.aygfsteel.com/mhl1003/articles/391230.htmlhttp://www.aygfsteel.com/mhl1003/comments/391230.htmlhttp://www.aygfsteel.com/mhl1003/articles/391230.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/391230.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/391230.html 

因ؓJAVA有个属于自己的运行环境,既:JAVA虚拟机,虚拟Zq_无关QJAVA代码l过~译后,直接q行于虚拟机上,实现了跨q_?/p>

1.Z么要使用Java虚拟?/p>

Java语言的一个非帔R要的特点是与^台的无关性。而用Java虚拟机是实现q一特点的关键。一般的高语言如果要在不同的^Cq行,臛_需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同^Cq行时不需要重新编译?span style="color: red">Java语言使用模式Java虚拟机屏蔽了与具体^台相关的信息,使得Java语言~译E序只需生成在Java虚拟Zq行的目标代?字节?,可以在多种q_上不加修改地q行。Java虚拟机在执行字节码时,把字节码解释成具体^C的机器指令执行?/strong>

2.谁需要了解Java虚拟?/p>

Java虚拟机是Java语言底层实现的基,对Java语言感兴的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定^C实现Java虚拟机的软g人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来?则必Lȝ解Java虚拟机的规范。另?如果你想扩展Java语言,或是把其它语a~译成Java语言的字节码,你也需要深入地了解Java虚拟机?/p>

 



自由战士 2012-11-12 21:10 发表评论
]]>
JavaҎ参数是引用调用还是D?——D?/title><link>http://www.aygfsteel.com/mhl1003/articles/391228.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Mon, 12 Nov 2012 12:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/391228.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/391228.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/391228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/391228.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/391228.html</trackback:ping><description><![CDATA[<strong><span style="color: rgb(255,0,0)">Ҏ调用(call by)</span> </strong>是一个标准的计算机科学术语。方法调用根据参C递的情况又分?strong><span style="color: rgb(255,0,0)">D?</span> <span style="color: rgb(255,0,0)">call by reference </span><span style="color: rgb(255,0,0)">)</span> </strong>?strong><span style="color: rgb(255,0,0)">引用调用(</span> <span style="color: rgb(255,0,0)">call by value </span><span style="color: rgb(255,0,0)">)</span> </strong>。江湖上有很多关于这两种调用的定?Q最通常的说法是传递值的是D用,传递地址的是引用调用。这其实很不恰当Q这U?nbsp;q些说法很容易让我们联想到Java的对象参C递是引用调用Q实际上Q?span style="color: rgb(0,0,255)"><strong>Java的对象参C递仍然是D?nbsp;?/strong> </span><br /><br />      我们首先用一D代码来证实一下ؓ什么Java的对象参C?nbsp;是D用? <div style="text-align: left; padding-bottom: 1px; line-height: 25px; overflow-x: auto; overflow-y: auto; padding-left: 1px; width: 679px; padding-right: 1px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; word-wrap: break-word; margin-left: 9px; word-break: break-all; padding-top: 1px" class="dp-highlighter"> <div id="wmqeeuq" class="bar"> <div style="padding-bottom: 3px; margin: 0px; padding-left: 3px; padding-right: 3px; font-weight: bold; padding-top: 3px" class="tools">Java代码  <a style="color: rgb(125,0,0)" title="收藏q段代码" ><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="star" alt="收藏代码" src="http://hxraid.iteye.com/images/icon_star.png" /></a></div></div> <ol style="border-bottom: rgb(209,215,220) 1px solid; border-left: rgb(209,215,220) 1px solid; padding-bottom: 2px; line-height: 1.4em; margin: 0px 0px 1px; padding-left: 0px; padding-right: 0px; color: rgb(43,145,175); font-size: 1em; border-top: rgb(209,215,220) 1px solid; border-right: rgb(209,215,220) 1px solid; padding-top: 2px" class="dp-j"><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span> <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span> Employee {  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span> String name=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">null</span>;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">      </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span> Employee(String n){  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">this</span>.name=n;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    }  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(0,130,0)" class="comment">//两个Employee对象交换</span>  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span> <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">static</span> <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span> swap(Employee e1,Employee e2){  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        Employee temp=e1;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        e1=e2;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        e2=temp;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">                System.out.println(e1.name+<span style="color: blue" class="string">" "</span>+e2.name); <span style="color: rgb(0,130,0)" class="comment">//打印l果Q李?nbsp;张三</span>  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    }  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(0,130,0)" class="comment">//d?/span>  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span> <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">static</span> <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span> main(String[] args) {  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        Employee worker=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">new</span> Employee(<span style="color: blue" class="string">"张三"</span>);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        Employee manager=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">new</span> Employee(<span style="color: blue" class="string">"李四"</span>);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        swap(worker,manager);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        System.out.println(worker.name+<span style="color: blue" class="string">" "</span>+manager.name); <span style="color: rgb(0,130,0)" class="comment">//打印l果仍然是: 张三 李四</span>  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    }  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}  </span></li></ol></div> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"> </p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">      上面的结果让人很失望Q虽然Ş参对象e1,e2的内容交换了Q但实参对象worker,managerq没有互换内宏V这里面最重要的原因就在于<span style="color: rgb(0,0,255)">形参e1,e2是实参worker,manager的地址拯?/span></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">      大家都知道,在Java中对象变量名实际上代表的是对象在堆中的地址(专业术语叫做<strong><span style="color: rgb(255,0,0)">对象引用</span> </strong>)。在JavaҎ调用的时候,参数传递的是对象的引用?span style="color: rgb(0,0,255)">重要的是QŞ参和实参所占的内存地址q不一P形参中的内容只是实参中存储的对象引用的一份拷贝?/span></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">       如果大家对JVM内存理?strong><span style="color: rgb(255,0,0)">Java?/span> </strong>?strong><span style="color: rgb(255,0,0)">局部变量区</span> </strong>有所了解的话(可以参见?nbsp;<a style="color: rgb(125,0,0)" >Java 虚拟Zpȝ?/a> ?Q就很好理解上面q句话。在JVMq行上面的程序时Q运行mainҎ和swapҎQ会在Java栈中先后push两个叫做<strong><span style="color: rgb(255,0,0)">栈</span></strong>的内存空间。main栈中有一块叫局部变量区的内存用来存储实参对象worker和manager的引用。而swap栈中的局部变量区则存储了形参对象e1和e2的引用。虽然e1和e2的引用值分别与worker和manager相同Q但是它们占用了不同的内存空间。当e1和e2的引用发生交换时Q下面的囑־清晰的看出完全不会媄响worker和manager的引用倹{?/p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">             <img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://hxraid.iteye.com/upload/picture/pic/65223/2da606a7-2302-3ed0-82c4-b92527ad0676.jpg" width="500" height="314" /></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">      Java对象参数传递虽然传递的是地址(引用)Q但仍然是D用。是时候需要给引用调用和D用一个准的定义了?/p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"> </p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">     <strong><span style="color: rgb(255,0,0)"> </span><span style="color: rgb(255,0,0)">D?call by value) </span><span style="color: rgb(255,0,0)">Q?/span> </strong><span style="color: rgb(255,0,0)">在参C递过E中QŞ参和实参占用了两个完全不同的内存I间。Ş参所存储的内Ҏ实参存储内容的一份拷贝?span style="color: rgb(0,0,0)">实际上,Java对象的传递就W合q个定义Q只不过形参和实参所储存的内容ƈ不是常规意义上的变量|而是变量的地址。咳Q回q头xQ变量的地址不也是一U值吗Q?/span></span></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><strong><span style="color: rgb(128,0,0)">      <span style="color: rgb(255,0,0)">引用调用(call by reference)</span> </span></strong><span style="color: rgb(255,0,0)">Q?/span> <span style="color: rgb(255,0,0)">在参C递的q程中,形参和实参完全是同一块内存空_两者不分彼此?/span>实际上,形参名和实参名只是编E中的不同符P在程序运行过E中Q内存中存储的空间才是最重要的。不同的变量名ƈ不能说明占用的内存存储空间不同?/p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"> </p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">      大体上说Q两U调用的Ҏq不在于传递的是D是地址(毕竟地址也是一个?Q而是在于形参和实参是否占用同一块内存空间。事实上QC/C++的指针参C递也是D用,不信试试下面的C代码吧!</p> <div style="text-align: left; padding-bottom: 1px; line-height: 25px; overflow-x: auto; overflow-y: auto; padding-left: 1px; width: 679px; padding-right: 1px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; word-wrap: break-word; margin-left: 9px; word-break: break-all; padding-top: 1px" class="dp-highlighter"> <div id="wmqeeuq" class="bar"> <div style="padding-bottom: 3px; margin: 0px; padding-left: 3px; padding-right: 3px; font-weight: bold; padding-top: 3px" class="tools">C代码  <a style="color: rgb(125,0,0)" title="收藏q段代码" ><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="star" alt="收藏代码" src="http://hxraid.iteye.com/images/icon_star.png" /></a></div></div> <ol style="border-bottom: rgb(209,215,220) 1px solid; border-left: rgb(209,215,220) 1px solid; padding-bottom: 2px; line-height: 1.4em; margin: 0px 0px 1px; padding-left: 0px; padding-right: 0px; color: rgb(43,145,175); font-size: 1em; border-top: rgb(209,215,220) 1px solid; border-right: rgb(209,215,220) 1px solid; padding-top: 2px" class="dp-cpp"><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: gray" class="preprocessor">#include<stdio.h></span>  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span> swap(<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> *a1,<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> *b1){  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> *t=a1;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    a1=b1;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    b1=t;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> main(){  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> x1=100;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> x2=200;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">        <span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> *a=&x1;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span> *b=&x2;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    printf(<span style="color: blue" class="string">"%d %d\n"</span>,*a,*b);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    swap(a,b);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    printf(<span style="color: blue" class="string">"%d %d\n"</span>,*a,*b);  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">    <span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span> 0;  </span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}  </span></li></ol></div> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">         但C/C++是有引用调用的,q就是C/C++一U叫做引用的变量声明ҎQ?int a; int &ra=a; 其中ra是a的别名,两者在内存中没有区别,占用了同一个内存空间。而通过引用(别名)的参C递就W合引用调用的特点了。大家可以去试试</p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">void swap(int &a1,int &b1);的运行结果?/p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><br /></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><span style="text-align: left; line-height: 25px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px">   我们首先用一D代码来证实一下ؓ什么Java的对象参C?nbsp;是地址传递?/span><br /></p> <p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><span style="text-align: left; line-height: 25px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px"></span></p> <div id="wmqeeuq" class="dp-highlighter bg_java"> <div id="wmqeeuq" class="bar"> <div id="wmqeeuq" class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" ><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" ><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" ><u><font color="#0066cc">print</font></u></a><a class="About" title="?" ><u><font color="#0066cc">?</font></u></a></div></div> <ol class="dp-j"><li id="wmqeeuq" class="alt"><span id="wmqeeuq" class="keyword">public</span><span> </span><span id="wmqeeuq" class="keyword">class</span><span> Employee {  </span></li><li><span>  </span></li><li id="wmqeeuq" class="alt"><span>    </span><span id="wmqeeuq" class="keyword">public</span><span> String name=</span><span id="wmqeeuq" class="keyword">null</span><span>;  </span></span></li><li><span>      </span></li><li id="wmqeeuq" class="alt"><span>    </span><span id="wmqeeuq" class="keyword">public</span><span> Employee(String n){  </span></span></li><li><span>        </span><span id="wmqeeuq" class="keyword">this</span><span>.name=n;  </span></span></li><li id="wmqeeuq" class="alt"><span>    }  </span></li><li><span>      </span></li><li id="wmqeeuq" class="alt"><span>    </span><span id="wmqeeuq" class="keyword">public</span><span> </span><span id="wmqeeuq" class="keyword">static</span><span> </span><span id="wmqeeuq" class="keyword">void</span><span> change(Employee e1){  </span></span></li><li><span>        e1.name = </span><span id="wmqeeuq" class="string">"李四"</span><span>;  </span></span></li><li id="wmqeeuq" class="alt"><span>        System.out.println(e1.name); </span><span id="wmqeeuq" class="comment">//打印l果Q李?</span><span>  </span></span></li><li><span>    }  </span></li><li id="wmqeeuq" class="alt"><span>    </span><span id="wmqeeuq" class="comment">//d?</span><span>  </span></span></li><li><span>    </span><span id="wmqeeuq" class="keyword">public</span><span> </span><span id="wmqeeuq" class="keyword">static</span><span> </span><span id="wmqeeuq" class="keyword">void</span><span> main(String[] args) {  </span></span></li><li id="wmqeeuq" class="alt"><span>        Employee worker=</span><span id="wmqeeuq" class="keyword">new</span><span> Employee(</span><span id="wmqeeuq" class="string">"张三"</span><span>);  </span></span></li><li><span>        change(worker);  </span></li><li id="wmqeeuq" class="alt"><span>        System.out.println(worker.name); </span><span id="wmqeeuq" class="comment">//打印l果仍然是: 李四 </span><span>  </span></span></li><li><span>    }  </span></li><li id="wmqeeuq" class="alt"><span>}  </span></li></ol></div><img src ="http://www.aygfsteel.com/mhl1003/aggbug/391228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-11-12 20:54 <a href="http://www.aygfsteel.com/mhl1003/articles/391228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j的作?/title><link>http://www.aygfsteel.com/mhl1003/articles/391039.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Thu, 08 Nov 2012 09:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/391039.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/391039.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/391039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/391039.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/391039.html</trackback:ping><description><![CDATA[<span>  <p><font face="Times New Roman">一、什么是log4j<br />Log4j 是Apache的一个开放源代码目Q通过使用Log4jQ我们可以控制日志信息输送的目的地是控制台、文件、GUIlg、甚x套接口服务器、NT的事件记录器、UNIX Syslog守护q程{;我们也可以控制每一条日志的输出格式Q通过定义每一条日志信息的U别Q我们能够更加细致地控制日志的生成过E。最令h感兴的是Q这些可以通过一个配|文件来灉|地进行配|,而不需要修改应用的代码?</font></p> <p><font face="Times New Roman">二、日志简?br />日志指在E序中插入语句以提供调试信息。用日志能够监视程序的执行。例如,用户利用日志可以获得关于应用E序故障的完整信息。用户可以将调试语句Q如 System.out.printlnQ插入到E序中以获得详细的调试信息?</font></p> <p><font face="Times New Roman">三、项目中Z么要用log4j<br />大家在编E时l常不可避免地要使用C些日志操作,比如开发阶D늚调试信息、运行时的日志记录及审计。调查显C,日志代码占代码总量?Q。通常大家可以单地使用System.out.println()语句输出日志信息Q但是往往会有一些判断,比如Q?<br /> <br />if (someCondition) <br />{<br />  System.out.println("some information.");<br />}</font></p> <p><font face="Times New Roman">q些判断造成正常的程序逻辑中؜杂了大量的输句。而在开发阶D写下的q些判断仅ؓ了调试的语句Q在开发完成时需要查扑ƈU除。部|运行后Q尤其是在一些企业应用系l中Q还l常需要进一步调试,q时遇C更大的麻烦。所以,我们需要一套完备的、灵zȝ、可配置的日志工具log4J是优秀的选择?</font></p> <p><font face="Times New Roman">四、log4jlg<br />Log4j ?logger、appender ?layout 三个lgl成。可以通过同名?Java c访?Log4j 的这三个lg?/font></p> <p><span><font face="Times New Roman">Logger - 在执行应用程序时Q接收日志语句生成的日志h。它是一U重要的日志处理lgQ?可以通过 log4j API ?logger cd其进行访问。它的方法有Qdebug、info、warn、error、fatal ?log。这些方法用于记录消息?<br />Appender - 理日志语句的输出结果。执行日志语句时QLogger 对象接收来自日志语句的记录h。此h是通过 logger 发送至 appender 的。然后,Appender 输出结果写入到用户选择的目的地。对于不同的日志目的圎ͼ提供不同?appender cd。这?appender 包括Q用于文件的 file appender、用于数据库?JDBC appender 和用?SMTP 服务器的 SMTP appender?<br />Layout - 用于指定 appender 日志语句写入日志目的地所采用的格式。appender 可以用来格式化输出结果的各种布局包括Q简单布局、模式布局?HTML 布局?/font></span></p></span><img src ="http://www.aygfsteel.com/mhl1003/aggbug/391039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-11-08 17:09 <a href="http://www.aygfsteel.com/mhl1003/articles/391039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几种d调度?Java 实现Ҏ与比?/title><link>http://www.aygfsteel.com/mhl1003/articles/390551.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 31 Oct 2012 09:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/390551.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/390551.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/390551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/390551.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/390551.html</trackback:ping><description><![CDATA[     摘要: lD目前?Web 应用Q多数应用都具备d调度的功能。本文由入׃l了几种d调度?Java 实现ҎQ包?TimerQScheduler, Quartz 以及 JCron TabQƈ对其优缺点进行比较,目的在于l需要开发Q务调度的E序员提供有价值的参考?  前言 d调度是指Zl定旉点,l定旉间隔或者给定执行次数自动执行Q务。本文由入׃l四UQ务调度的 Jav...  <a href='http://www.aygfsteel.com/mhl1003/articles/390551.html'>阅读全文</a><img src ="http://www.aygfsteel.com/mhl1003/aggbug/390551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-10-31 17:23 <a href="http://www.aygfsteel.com/mhl1003/articles/390551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习之Iterator(q代?的一般用?Q{Q?http://www.aygfsteel.com/mhl1003/articles/390509.html自由战士自由战士Wed, 31 Oct 2012 03:25:00 GMThttp://www.aygfsteel.com/mhl1003/articles/390509.htmlhttp://www.aygfsteel.com/mhl1003/comments/390509.htmlhttp://www.aygfsteel.com/mhl1003/articles/390509.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/390509.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/390509.html

q代器(IteratorQ?/font>

  q代器是一U设计模式,它是一个对象,它可以遍历ƈ选择序列中的对象Q而开发h员不需要了解该序列的底层结构。P代器通常被称?#8220;轻量U?#8221;对象Q因为创建它的代价小?/font>

  Java中的Iterator功能比较单,q且只能单向UdQ?/font>

  (1) 使用Ҏiterator()要求容器q回一个Iterator。第一ơ调用Iterator的next()ҎӞ它返回序列的W一个元素。注意:iterator()Ҏ是java.lang.Iterable接口,被Collectionl承?/font>

  (2) 使用next()获得序列中的下一个元素?/font>

  (3) 使用hasNext()查序列中是否q有元素?/font>

  (4) 使用remove()P代器新返回的元素删除?/font>

  Iterator是Javaq代器最单的实现QؓList设计的ListIteratorh更多的功能,它可以从两个方向遍历ListQ也可以从List中插入和删除元素?/font>

q代器应用:
 list l = new ArrayList();
 l.add("aa");
 l.add("bb");
 l.add("cc");
 for (Iterator iter = l.iterator(); iter.hasNext();) {
  String str = (String)iter.next();
  System.out.println(str);
 }
 /*q代器用于while循环
 Iterator iter = l.iterator();
 while(iter.hasNext()){
  String str = (String) iter.next();
  System.out.println(str);
 }
 */



自由战士 2012-10-31 11:25 发表评论
]]>
外部讉KcȝU有Ҏ和私有属?/title><link>http://www.aygfsteel.com/mhl1003/articles/390499.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 31 Oct 2012 01:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/390499.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/390499.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/390499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/390499.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/390499.html</trackback:ping><description><![CDATA[package com.alex.ssh.tool;<br />import java.lang.reflect.Field;  <br />import java.lang.reflect.Method;  <br />  <br />/** <br /> * 用Java反射机制来调用privateҎ <br /> * @author WalkingDog <br /> * <br /> */  <br />  <br />public class Reflect {  <br />      <br />    public static void main(String[] args) throws Exception {  <br />          <br />        //直接创徏对象   <br />        Person person = new Person();  <br />          <br />        Class<?> personType = person.getClass();  <br />          <br /><span style="color: red">        //讉KU有Ҏ   </span><br /><span style="color: red">        //getDeclaredMethod可以获取到所有方法,而getMethod只能获取public   </span><br /><span style="color: red">        Method method = personType.getDeclaredMethod("say", String.class);  </span><br />          <br /><span style="color: red">        //压制Java对访问修饰符的检?nbsp;  </span><br /><span style="color: red">        method.setAccessible(true);  </span><br />          <br /><span style="color: red">        //调用Ҏ;person为所在对?nbsp;  </span><br /><span style="color: red">        method.invoke(person, "Hello World !");  </span><br />          <br />        //讉KU有属?nbsp;  <br />        Field field = personType.getDeclaredField("name");  <br />          <br />        field.setAccessible(true);  <br />          <br />        //为属性设|?person为所在对?nbsp;  <br />        field.set(person, "WalkingDog");  <br />          <br />        System.out.println("The Value Of The Field is : " + person.getName());  <br />          <br />    }  <br />}  <br />  <br />//JavaBean   <br />class Person{  <br />    private String name;  <br />      <br />    //每个JavaBean都应该实现无参构造方?nbsp;  <br />    public Person() {}  <br />      <br />    public String getName() {  <br />        return name;  <br />    }  <br />  <br />    private void say(String message){  <br />        System.out.println("You want to say : " + message);  <br />    }  <br />}<img src ="http://www.aygfsteel.com/mhl1003/aggbug/390499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-10-31 09:58 <a href="http://www.aygfsteel.com/mhl1003/articles/390499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP内置对象之五——PAGE http://www.aygfsteel.com/mhl1003/articles/390171.html自由战士自由战士Wed, 24 Oct 2012 08:13:00 GMThttp://www.aygfsteel.com/mhl1003/articles/390171.htmlhttp://www.aygfsteel.com/mhl1003/comments/390171.htmlhttp://www.aygfsteel.com/mhl1003/articles/390171.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/390171.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/390171.htmlpage对象是指向当前JSP面本nQ有点象cM的this指针Q它是java.lang.Objectcȝ实例

序号 ????nbsp;
1  class getClass q回此Object的类 
2  int hashCode() q回此Object的hash?nbsp;
3  boolean equals(Object obj) 判断此Object是否与指定的Object对象相等 
4  void copy(Object obj) 把此Object拯到指定的Object对象?nbsp;
5  Object clone() 克隆此Object对象 
6  String toString() 把此Object对象转换成Stringcȝ对象 
7  void notify() 唤醒一个等待的U程 
8  void notifyAll() 唤醒所有等待的U程 
9  void wait(int timeout) 使一个线E处于等待直到timeoutl束或被唤醒 
10  void wait() 使一个线E处于等待直到被唤醒 
11  void enterMonitor() 对Object加锁 
12  void exitMonitor() 对Object开?/p>

参考地址Qhttp://edu.codepub.com/2009/1018/16461_3.php



自由战士 2012-10-24 16:13 发表评论
]]>
pageContext的作?/title><link>http://www.aygfsteel.com/mhl1003/articles/390167.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 24 Oct 2012 07:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/390167.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/390167.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/390167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/390167.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/390167.html</trackback:ping><description><![CDATA[pageContext 隐含物g对应於javax.servlet.jsp.PageContext型态之物gQ,隐含物g都自动的被加入至pageContext中,您可以藉由它来取得与JSP相关的隐含物件对应之Servlet物gQ像是getRequest()可以取得ServletRequestQ?getServletConfig()可以取得ServletConfigQgetSession()可以取得HttpSession{等。提供取得隐含物件对应之Servlet物gq不是pageContext的主要作用,它的主要功能在提供一个单一个介面,以管理各U的公开物gQ像?HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse{等Q,提供一个单一的API来管理属性作用范围等{?br />我们之前曄使用qsession的setAttribute(){方法设定一个进E可以共用的属性物Ӟ使用session讑֮的属性在同一个进E中可以qQ除了session之外Q还有pageContext?request、application也都可以使用setAttribute()之类的方法(详请查阅API文gQ来讑֮可以q的属性物Ӟ只不q这四个物g所讑֮的属性其q范围各不相同?br /><strong>使用pageContext所讑֮的属性物Ӟ其共用范围限於同一?JSP面Q用request所讑֮的属性物Ӟ其在同一个request处理期间可以qQ包括forwardl其它JSP面Q,session物g所讑֮的属性物件则限於同一个进E作用期间可以共用,而application物g所讑֮的属性,则在整个Web应用E式中的JSP面都可以共用?br /><br /></strong>以下举applicationZQ您可以一些物件当作属性设定给applicationQ则另一个JSP面可以在适当的时候取得这个属性物Ӟ例如Q?br /><br /><%<br />String attr = "字串物g";<br />out.println("讑֮属性给applicationQ? + attr);<br />application.setAttribute("str", attr);<br />%><br /><br /><br /><br />我们先连上这个JSP|页以执行属性设定,然后我们再连上这个JSP|页Q?br /><br /><%<br />String attr = (String) application.getAttribute("str");<br />out.println("取得application属性:" + attr);<br />%><br /><br /><br /><br />由於我们之前已经字串物件设定在application中作为属性,所以我们可以在上面q个面中取得之前设定的物gQ同L道理Q您也可以用相同的方式设定属性给pageContext、request、session{物Ӟ只要在允许的作用范围中,可以取得所讑֮的属性物件?br /><br />您可以用pageContext物g来设定属性,q指定属性的作用范围Q而不用用个别的pageContext、request、session?application来进行设定,q就是之前所提的Q以pageContext提供一个单一的API来管理属性作用范_您可以用以下的Ҏ来进行设定:<br /><br />getAttribute(String name, int scope)<br />setAttribute(String name, Object value, int scope)<br />removeAttribute(String name, int scope)<br /><br /><br /><br />其中的scope可以使用以下的常数来q行指定QpageContext.PAGE_SCOPE、pageContext.REQUEST_SCOPE?pageContext.SESSION_SCOPE、pageContext.APPLICATION_SCOPEQ常数的名称已经直接指明属性范_我们可以上面的两个JSP面改ؓ以下的Ş式:<br /><br /><%<br />String attr = "字串物g";<br />out.println("讑֮属性给applicationQ? + attr);<br />pageContext.setAttribute("str", attr, pageContext.APPLICATION_SCOPE);<br />%><br /><br /><br /><br /><%<br />String attr = (String) pageContext.getAttribute("str", pageContext.APPLICATION_SCOPE);<br />out.println("取得application属性:" + attr);<br />%><img src ="http://www.aygfsteel.com/mhl1003/aggbug/390167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-10-24 15:55 <a href="http://www.aygfsteel.com/mhl1003/articles/390167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ServletRequest,HttpServletRequest ServletResponse,HttpServletResponse的区?/title><link>http://www.aygfsteel.com/mhl1003/articles/390166.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 24 Oct 2012 07:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/390166.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/390166.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/390166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/390166.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/390166.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">所有Servlet响应都实现ServletResponse接口。ServletResponse接口主要有以下方法:<br />  Q?Q从Servlet中可以通过getWriterҎ取得PrintWriter对象Q来输出字符数据。从Servlet中可以通过getOutputStreamҎ取得ServletoutputStream对象。ServletOutputStream既可以输出字W数据,也可以输出MIME格式的二q制数据。如果getWriterҎ已经被用过Q当使用getOutputStreamӞ会有java.lang.IllegalStateException例外抛出?br />  Q?QsetContentTypeҎQ在响应中可以表明内Ҏ式和长短?br />  Q?QsetBufferSizeҎQ设|Web容器的缓冲器大小; getBufferSizeҎq回Web容器的缓冲器大小; resetBufferҎ清空q|缓冲器Q用resetҎ清空~冲器、状态头信息Q用flushBufferҎ缓冲器内的所有输出内容向客户传递。用isCommittedҎ判断是否响应已经被行?#8220;履行”的定义是指状态码冬耕信息已l被写入响应?br />  Q?QsetLocalҎ讑֮响应的地域信息,主要在WebE序的国际货币国际化时用。这个方法应该在getWriter之前被用。默认的Web服务器的地域信息?br />  HttpServletResponsel承了ServletResponse接口Qƈ提供了与Http协议有关的方法,q些Ҏ的主要功能是讄HTTP状态码和管理Cookie?br />  Q?QsetStatusҎ用来讄Servlet向客Lq回的状态码Q它用来讄没有出错的状态。如果Servletq行出错QServlet可以使用sendErrorҎ讄状态码Q如sendError(int sc)Ҏ讄错误状态代码。sendError(int sc,String msg)Ҏ除了讄状态码Q还向客户发Z条错误信息?br />  Q?QsetHeader可以指定特定名称的头信息的|addDateheaderQaddIntHeaderQsetDateHeaderQsetIntHeader可以加入或理性特定时间或整数型头信息?br />  Q?QaddCookieҎ可以在Web服务器响应中加入Cookie对象Q这个对象将被浏览器所保存。Cookie机制也被用来l护会话状态?br />  Q?QsendRedirectҎ向客户发Z旉新导向的响应。它生成的响应状态码?02。该响应l了客户一个新的URL风趣。如果缓冲器已经被清I,q个Ҏ会弹Z个IllegalStateException例外?/p> <p style="text-indent: 2em">内置对象是不需要声明,直接可以在JSP中用的对象QJSP有以下几U内|对象: <br />request request表示HttpServletRequest对象。它包含了有x览器h的信息,q且提供了几个用于获取cookie, header, 和session数据的有用的Ҏ?br />response response表示HttpServletResponse对象Qƈ提供了几个用于设|送回览器的响应的方法(如cookies,头信息等Q?br />out out 对象是javax.jsp.JspWriter的一个实例,q提供了几个Ҏ使你能用于向览器回送输出结果?br />pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各U范围的名字I间、servlet相关的对象的APIQƈ且包装了通用的servlet相关功能的方法?br />session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信?br />application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信?br />config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数?br />page page表示从该面产生的一个servlet实例?/p> <p style="text-indent: 2em">Servlet API中的几个对象<br />JSP提供了八个内部对象,而其中的五个内部对象对应于Servlet API中的七个对象Q这也就使得我们正常理解q熟l用Servlet中的q七个对象显得尤光要。这五个JSP的内部对象和Servlet API中的对象的对应关pLQ?br />request对象对应于:javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest<br />response对象对应于:javax.servlet.http.HttpServletResponse和javax.servlet.ServletResponse<br />session对象对应于:javax.servlet.http.HttpSession<br />application对象对应于:javax.servlet.ServletContext<br />config对象对应于:javax.servlet.ServletConfig<br />javax.servlet.http.HttpServletRequest<br />q是一个接口,在我们提到接口之前,q是让我们来复习一下Java中接口的一个初步的解释Q?br />接口在语法上与类怼Q但是接口没有实例,使用接口Q只是指定类必须做什么而不是如何做?br /><strong>/*重点如下*/<br /><span style="color: red">HttpServletRequest接口用来处理一个对Servlet的HTTP格式的请求信息?/span><br /><span style="color: red">javax.servlet.ServletRequest</span><br /><span style="color: red">q也是一个接口,q个接口定义一个Servlet引擎产生的对象,通过q个对象QServlet可以获得客户端请求的数据。这个对象通过dh体的数据提供包括参数的名U、值和属性以及输入流的所有数据。而javax.servlet.http.HttpServletRequest也只是该接口的一个扩展,也就是说Q该接口的所有方法也可以被javax.servlet.http.HttpServletRequest所使用?/span><br /></strong>javax.servlet.http.HttpServletResponse接口<br />该接口用来描qC个返回到客户端的HTTP回应?br />javax.servlet.ServletResponse接口<br />该接口用来定义一个Servlet引擎产生的对象,通过q个对象QServlet对客L的请求作出响应。这个响应应该是一个MIME实体Q可能是一个HTMLc图象数据或其他MIME的格式。javax.servlet.http.HttpServletResponse接口是该接口的扩展?br />javax.servlet.http.HttpSession接口<br />该接口用来描qC个sessionQ至于什么是session我想在这里就没必要说了吧?br />javax.servlet.ServletContext接口<br />该接口用来定义了一个Servlet的环境对象。也可是认ؓq是多个客户端共享的信息Q它与session的区别在于应用范围的不同Qsession只对应于一个用戗?br />javax.servlet.ServletConfig接口<br />该接口定义了一个对象,通过q个对象QServlet引擎配置一个Servlet。每一个ServletConfig对象对应着一个唯一的Servlet?br />javax.servlet.http.Cookiec?br />q个cLqC一个cookieQcookie的作用其实与session很类|只是cookie保存在客LQsession保存在服务器?/p><img src ="http://www.aygfsteel.com/mhl1003/aggbug/390166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2012-10-24 15:19 <a href="http://www.aygfsteel.com/mhl1003/articles/390166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>protectedҎ能不能被l承http://www.aygfsteel.com/mhl1003/articles/336474.html自由战士自由战士Fri, 29 Oct 2010 04:40:00 GMThttp://www.aygfsteel.com/mhl1003/articles/336474.htmlhttp://www.aygfsteel.com/mhl1003/comments/336474.htmlhttp://www.aygfsteel.com/mhl1003/articles/336474.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/336474.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/336474.htmlpublic 都可以被l承或访问; protected在同一包,他的子类都可以去l承或访问; defaultQ在同一包中可以被承或讉KQ子cd果和父类不在一个包Q也不能l承Q? private,必须在一个类中才能被讉K?

自由战士 2010-10-27 18:01 发表评论
]]>
ArrayList,Vector,LinkedList的区?/title><link>http://www.aygfsteel.com/mhl1003/articles/336267.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 27 Oct 2010 04:27:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/336267.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/336267.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/336267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/336267.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/336267.html</trackback:ping><description><![CDATA[<dl> <dt> <pre></pre> <tt> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><br /> ArrayList的定义:<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> ArrayList</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">extends</span><span style="color: #000000"> AbstractList</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">implements</span><span style="color: #000000"> List</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #000000">, RandomAccess, Cloneable, Serializable<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <br /> List</tt> 接口的大可变数l的实现。实C所有可选列表操作,q允许包?<tt>null</tt> 在内的所有元素。除了实?<tt>List</tt> 接口外,此类q提供一些方法来操作内部用来存储列表的数l的大小。(此类大致上等同于 <tt>Vector</tt> c,除了<span style="color: red">此类是不同步</span>的。)</dt> <dt> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">        ArrayList</span><span style="color: #000000"><</span><span style="color: #000000">Integer</span><span style="color: #000000">></span><span style="color: #000000"> a </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ArrayList</span><span style="color: #000000"><</span><span style="color: #000000">Integer</span><span style="color: #000000">></span><span style="color: #000000">();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        a.add(</span><span style="color: #000000">3</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />        a.add(</span><span style="color: #000000">4</span><span style="color: #000000">);<br /> <img id="Codehighlighter1_146_247_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_247_Open_Text.style.display='none'; Codehighlighter1_146_247_Closed_Image.style.display='inline'; Codehighlighter1_146_247_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_146_247_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_247_Closed_Text.style.display='none'; Codehighlighter1_146_247_Open_Image.style.display='inline'; Codehighlighter1_146_247_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (Iterator</span><span style="color: #000000"><</span><span style="color: #000000">Integer</span><span style="color: #000000">></span><span style="color: #000000"> iterator </span><span style="color: #000000">=</span><span style="color: #000000"> a.iterator(); iterator.hasNext();) </span><span id="Codehighlighter1_146_247_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_146_247_Open_Text"><span style="color: #000000">{   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            </span><span style="color: #0000ff">int</span><span style="color: #000000"> number </span><span style="color: #000000">=</span><span style="color: #000000"> iterator.next();   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />            System.out.println(number);   <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />        }</span></span><span style="color: #000000"> </span></div> </dt></dl> <dl> <dt> <pre></pre> <code> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee">Vector定义Q?img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> Vector</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">extends</span><span style="color: #000000"> AbstractList</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">implements</span><span style="color: #000000"> List</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #000000">, RandomAccess, Cloneable, Serializable<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <br /> Vector</code> cd以实现可增长的对象数l。与数组一P它包含可以用整数烦引进行访问的lg。但是,<code>Vector</code> 的大可以根据需要增大或~小Q以适应创徏 <code>Vector</code> 后进行添加或U除的操作?span style="color: red">Vector是同步的</span>?/dt></dl><br /> LinkedList定义Q?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> LinkedList</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">extends</span><span style="color: #000000"> AbstractSequentialList</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #0000ff">implements</span><span style="color: #000000"> List</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #000000">, Deque</span><span style="color: #000000"><</span><span style="color: #000000">E</span><span style="color: #000000">></span><span style="color: #000000">, Cloneable, Serializable</span></div> <br /> <p><tt>List</tt> 接口的链接列表实现。实现所有可选的列表操作Qƈ且允许所有元素(包括 <tt>null</tt>Q。除了实?<tt>List</tt> 接口外,<tt>LinkedList</tt> c还为在列表的开头及l尾 <tt>get</tt>?tt>remove</tt> ?<tt>insert</tt> 元素提供了统一的命名方法。这些操作允许将链接列表用作<span style="color: red">堆栈</span>?a title="java.util 中的接口" style="color: red" href="mk:@MSITStore:F:\备䆾文g\E盘备份\eclipse-jee-galileo-SR1-win32\JDK_API_1_6_zh_CN.CHM::/java/util/Queue.html">队列</a>?a title="java.util 中的接口" style="color: red" href="mk:@MSITStore:F:\备䆾文g\E盘备份\eclipse-jee-galileo-SR1-win32\JDK_API_1_6_zh_CN.CHM::/java/util/Deque.html">双端队列</a>。此实现<span style="color: red">不是同步</span>?/p> <img src ="http://www.aygfsteel.com/mhl1003/aggbug/336267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2010-10-27 12:27 <a href="http://www.aygfsteel.com/mhl1003/articles/336267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Overriding和Overloding的区?/title><link>http://www.aygfsteel.com/mhl1003/articles/336219.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 26 Oct 2010 13:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/336219.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/336219.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/336219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/336219.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/336219.html</trackback:ping><description><![CDATA[<img height="108" alt="" src="http://www.aygfsteel.com/images/blogjava_net/mhl1003/OO.jpg" width="513" border="0" /> <img src ="http://www.aygfsteel.com/mhl1003/aggbug/336219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2010-10-26 21:24 <a href="http://www.aygfsteel.com/mhl1003/articles/336219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hashtable和HashMap的区?/title><link>http://www.aygfsteel.com/mhl1003/articles/336217.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 26 Oct 2010 13:22:00 GMT</pubDate><guid>http://www.aygfsteel.com/mhl1003/articles/336217.html</guid><wfw:comment>http://www.aygfsteel.com/mhl1003/comments/336217.html</wfw:comment><comments>http://www.aygfsteel.com/mhl1003/articles/336217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mhl1003/comments/commentRss/336217.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mhl1003/services/trackbacks/336217.html</trackback:ping><description><![CDATA[1.Hashtable原型如下Q承的是Dictionaryc,实现了Map接口<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> Hashtable</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #0000ff">extends</span><span style="color: #000000"> Dictionary</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #0000ff">implements</span><span style="color: #000000"> Map</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #000000">, Cloneable, Serializable<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <br /> <dt>HashMap原型如下Q实CMap接口Q? <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> HashMap</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">extends</span><span style="color: #000000"> AbstractMap</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #0000ff">implements</span><span style="color: #000000"> Map</span><span style="color: #000000"><</span><span style="color: #000000">K,V</span><span style="color: #000000">></span><span style="color: #000000">, Cloneable, Serializable<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> </dt>2.Hashtable是线E同步的QHashMap在默认情况下是非U程同步?br /> 3.Hashtable不允许key和value为null,而HashMap允许?br /> 4.׃底层的实现机制不同,HashMap的速度快于Hashtable,因ؓHashMap不需要同步检查,在非多线E环境中使用HashMap代替Hashtable? <img src ="http://www.aygfsteel.com/mhl1003/aggbug/336217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mhl1003/" target="_blank">自由战士</a> 2010-10-26 21:22 <a href="http://www.aygfsteel.com/mhl1003/articles/336217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>古典问题Q有一对兔?..http://www.aygfsteel.com/mhl1003/articles/336034.html自由战士自由战士Sun, 24 Oct 2010 11:51:00 GMThttp://www.aygfsteel.com/mhl1003/articles/336034.htmlhttp://www.aygfsteel.com/mhl1003/comments/336034.htmlhttp://www.aygfsteel.com/mhl1003/articles/336034.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/336034.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/336034.htmlpackage com;
import java.util.Vector;

/*
 * 题目Q古兔R题:有一对兔子,从出生后W?个月h?br />  * 月都生一对兔子,兔子长到第三个月后每个月又?br />  * 一对兔子,兔子的寿命都?0个月Q问每个月的兔子L为多?
*/

public class Test2{
    
//容器Q存储存zȝ兔子?/span>
    private Vector vector = new Vector();
    
//~号
    private int No = 0;
    
//构造函?/span>
    public Test2()
    
{
        InnerClass ic 
= new InnerClass();
        ic.setNo(No
++);
        vector.add(ic);
        
    }

    
public void born()
    
{
        InnerClass ic 
= new InnerClass();
        ic.setNo(No
++);
        vector.add(ic);
    }

    
//内部c?/span>
    class InnerClass
    
{
        
private int no = 0;
        
private int life = 0;
        
public void setNo(int no)
        
{
            
this.no = no;
        }

        
public void setLife(int life)
        
{
            
this.life = life;
        }

        
public int getNo()
        
{
            
return this.no;
        }

        
public int getLife()
        
{
            
return this.life;
        }

    }

    
public int calculate()
    
{
        
//讄20个月内每个月的兔子数
        int Max = 20;
        
//初始?只兔?/span>
        int sum = 2;
        
while(Max > 0)
        
{
            
for(int i = 0; i < vector.size(); i++)
            
{
                InnerClass ic 
= (InnerClass)vector.elementAt(i);
                
int life = ic.getLife();
                life
++;
                
if(life < 3)
                
{
                    
//do nothing
                    ic.setLife(life);
                }

                
else//可以生小兔子?/span>
                {
                    born();
                }

                
if(life >= 10)//必须M
                {
                    vector.removeElementAt(i);
                }

            }

            System.out.println(
"W?/span>"+(20 - Max) +"月兔子数? "+vector.size()*2);
            Max
--;
        }

        
return 0;
    }

    
    
public static void main(String args[])
    
{
        Test2 t2 
= new Test2();
        t2.calculate();
    }

}



自由战士 2010-10-24 19:51 发表评论
]]>
快速排序的递归实现http://www.aygfsteel.com/mhl1003/articles/335995.html自由战士自由战士Sat, 23 Oct 2010 15:15:00 GMThttp://www.aygfsteel.com/mhl1003/articles/335995.htmlhttp://www.aygfsteel.com/mhl1003/comments/335995.htmlhttp://www.aygfsteel.com/mhl1003/articles/335995.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/335995.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/335995.html/*快速排序算法实?br />  * key的值在一ơ递归中是保持不变的,递归函数体就是把整个?br />  * l小于key的值放|在key的左边,大于key的放|在key?br />  * 双Q接着改变数组长度Q递归
 * 
*/

package com;
public class Test1{
    
private int a[] = new int[]{49,38,65,97,76,13,27};
    
private final int LEFT = 1;
    
private final int RIGHT = 2;
    
private int flag = LEFT;
    
public void fast_sort(int index,int n)
    
{
        
int key = a[index];
        
int i = index;
        
int j = n;
        
while(i < j)
        
{
            
if(flag == LEFT)
            
{
                
if(key > a[j])
                
{
                    
int temp = a[i];
                    a[i] 
= a[j];
                    a[j] 
= temp;
                    
//key = a[j];
                    flag = RIGHT;    
                    i
++;
                }

                
else
                
{
                    j
--;
                }

            }

            
else
            
{
                
if(key < a[i])
                
{
                    
int temp = a[i];
                    a[i] 
= a[j];
                    a[j] 
= temp;
                    
//key = a[i];
                    flag = LEFT;    
                    j
--;
                }

                
else
                
{
                    i
++;
                }

            }

        }

        
if(index < i-1)
        
{
            fast_sort(index,i
-1);
        }

        
if(i+1 < n)
        
{
            fast_sort(i
+1,n);
        }

    }

    
public void swap(int a,int b)
    
{
        
int tmp = a;
        a 
= b;
        b 
= tmp;
    }

    
public void print()
    
{
        
for(int i = 0; i < 7; i++)
        
{
            System.out.print(a[i]
+" ");
        }

    }

    
public static void main(String[] args)
    
{
        Test1 t1 
= new Test1();
        t1.fast_sort(
0,6);
        t1.print();
    }

}


自由战士 2010-10-23 23:15 发表评论
]]>
Eclipse如何q行单步调试http://www.aygfsteel.com/mhl1003/articles/335994.html自由战士自由战士Sat, 23 Oct 2010 15:13:00 GMThttp://www.aygfsteel.com/mhl1003/articles/335994.htmlhttp://www.aygfsteel.com/mhl1003/comments/335994.htmlhttp://www.aygfsteel.com/mhl1003/articles/335994.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/335994.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/335994.html

自由战士 2010-10-23 23:13 发表评论
]]>
IT职业生路线?Q初E)http://www.aygfsteel.com/mhl1003/articles/335988.html自由战士自由战士Sat, 23 Oct 2010 12:15:00 GMThttp://www.aygfsteel.com/mhl1003/articles/335988.htmlhttp://www.aygfsteel.com/mhl1003/comments/335988.htmlhttp://www.aygfsteel.com/mhl1003/articles/335988.html#Feedback0http://www.aygfsteel.com/mhl1003/comments/commentRss/335988.htmlhttp://www.aygfsteel.com/mhl1003/services/trackbacks/335988.html

自由战士 2010-10-23 20:15 发表评论
]]>
վ֩ģ壺 | ׺| | ű| ɽ| ϲ| | | | | ַ| կ| ͤ| ³ɽ| ƽ| | | | ԰| ˹| ֶ| Ǩ| | | | | ½| | | | | | | ֹ| | ƫ| ɽ| ԭ| | | |