<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>zhaojuan8</title>
    <description></description>
    <link>http://zhaojuan8.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>简历是不是没突出重点,还是我根本不行?</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/218834" style="color:red;">http://zhaojuan8.javaeye.com/blog/218834</a>&nbsp;
          发表时间: 2008年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">简历
xxxx  男 | 未婚 | 1985 年1月生 | 户口：湖北襄樊 | 现居住于湖北武汉
            1年半工作经验 | 身份证： xxxxx
xxxxx(手机)
E-mail: zhaojuan8@126.com
	求职意向
期望工作性质：	全职
期望工作地区：	湖北省
目前状况：	我目前处于离职状态，可立即上岗

	自我评价
有上进心，有较强的时间观念和自学能力,积极主动、认真负责，具备良好的语言表达能力和沟通能力并敢言自己的想法，有团队合作工作经验；并具有良好的具有良好的编码习惯和注释习惯以及测试
	工作经历
2006/11 -- 至今：	武汉xxx网络 | JAVA软件工程师
负责日常维护，编码,文档编写，数据库设计都做过
2007/09 -- 2008/01：通行证系统
软件环境：win2000 jdk1.5 tomcat5.0
硬件环境：CPU：赛扬2.1 Ghz +内存：512M+硬盘：60G
开发工具：Eclipse+Mysql
责任描述：用户信息维护，小型在线测试，小型统计
项目描述：对用户信息数据中心数据进行维护，使用户登陆一次即可享受企业所有产品，该系统包括,用户信息维护,转钻，充值和充值接口同时该系统旗下还包括,小型在线测试系统,小型统计系统等


2007/04 -- 2007/06：人事管理系统
软件环境：win2000 jdk1.5 tomcat5.0
硬件环境：CPU：赛扬2.1 Ghz +内存：512M
开发工具：Eclipse+Mysql
责任描述：负责项目中的人事结构分析和人事基本报表统计、权限,
项目描述：主要实现对人力资源的各种统计,维护,录入分析和部门维护等，权限操作,日常工作流,使用户方便管理和查询统计并却易于操作，使员工工作效率更加高效、企业架构更加清晰.
架构：系统使用B/S结构，使用STRUTS+SPRING+HIBERNATE框架组合开发，数据库使用Mysql管理数据。


2007/02 -- 2007/03：网上订餐系统
软件环境：Spring +Hibernate+Struts +Mysql
硬件环境：Windows 2K/Windows XP
开发工具：eclipse3.2 + tomcat 5.0.28
责任描述：担任项目组成员，负责文档编写,前台js特效,购物车,财务查询、客户下单
项目收获：对javascript编程有了一个更加系统的认识
项目描述：本系统是针对网上订餐业务流程自动化需求开发的流程系统。系统通过定制流程模板，是一个多用户系统(大客户、普通会员、一般会员、网吧会员、等)，该系统主要分一下几部分：客户下单,呼叫中心审核,呼叫中心审核下单,分店接受并配送,财务营业额查询。
	教育经历
2001/09 -- 2005/07：襄樊职业技术学院 | 计算机科学和技术 | 大专

现想跳槽,觉得可以的留个地址
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/218834#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Jul 2008 09:37:35 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/218834</link>
        <guid>http://zhaojuan8.javaeye.com/blog/218834</guid>
      </item>
      <item>
        <title>java合适做论坛吗</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/190923" style="color:red;">http://zhaojuan8.javaeye.com/blog/190923</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          由于公司最近有一需求需要做个论坛但是在网上看了看PHP的论坛后发觉，java做到这个样子很困难，而且我们人手也不够，预计的论坛的流量非常大，有没有什么解决方案，
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/190923#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 May 2008 10:10:51 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/190923</link>
        <guid>http://zhaojuan8.javaeye.com/blog/190923</guid>
      </item>
      <item>
        <title>离开还是继续的抉择</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/173216" style="color:red;">http://zhaojuan8.javaeye.com/blog/173216</a>&nbsp;
          发表时间: 2008年03月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          大学专业是中西医结合，也许是以前选择专业的时候太过匆忙，以至于后来大学毕业了还不知道中西是怎么结合，后来去了培训机构认真，努力学习，<br />目前就职于一家游戏公司java程序员，但是该公司做事向来没什么制度，更别说项目管理了，比如星期一老板突然把你叫到办公室开会，说有个什么项目(其实那是老板的想法)然后就给你说星期4下班之前要能有测试版本给他，没办法team就把其他项目的人员一起调过来都扑到这个所谓老板的奇妙的想法上面去，估计这个版本上线不到一个月老板又会给你说这个版本 哪里哪里需要改动，而且全盘推翻第一版，以至于数据库，页面，代码全部重写，唉算了不说了，都被折磨的不行了，同事开玩笑说老板是出钱让我们陪他玩游戏而已！！<br />大家觉得这种公司我是该留下，还是。。。。。<br />不过我一直记着以前老是的一句话，去了公司如果这个公司很烂，要么你走，如果你留下来了，就什么都不要说
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/173216#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 18 Mar 2008 00:17:34 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/173216</link>
        <guid>http://zhaojuan8.javaeye.com/blog/173216</guid>
      </item>
      <item>
        <title>站内聊天程序-源码</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/169064" style="color:red;">http://zhaojuan8.javaeye.com/blog/169064</a>&nbsp;
          发表时间: 2008年03月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近没什么事做，做了一个小型站内聊天程序，发上来共享下，当然还有很多bug,也有由于个人原因或者是想偷懒后续版没完成，也没做代码优化<br />实现机制：<br />1 java Session机制<br />2 ajax异步机制<br /><br />进入地址http://localhost/login.jsp
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/169064#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 07 Mar 2008 14:46:45 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/169064</link>
        <guid>http://zhaojuan8.javaeye.com/blog/169064</guid>
      </item>
      <item>
        <title>很不错的文章</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/168507" style="color:red;">http://zhaojuan8.javaeye.com/blog/168507</a>&nbsp;
          发表时间: 2008年03月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          身边经常可见奇形怪状的男子。打扮时髦，出手大方，善于与女子暧昧，周转灵活，脑筋清楚，身上却不见任何承担的重量。 有些尚且自恋到一定程度，全身上下的名牌，告诉你他的鞋子购自普拉达，衣服来自POLO。也能畅谈一下哲学或者人生道理，时不时亮出无从考证的身份，炫耀左右逢源，家底丰厚的能力。男人无趣到只能以吹嘘或谈话来扩充自己，天花乱坠，花天酒地，没有主题，证明社会的个人价值取向已有畸形之处。浮躁，虚荣，狡猾且无力，没有耐性。女人身陷诸如此类的男子之中，眼花缭乱，却难以找到一个品性温厚纯良的男子为偶。 <br />         真正有趣的男子，他应知道怎么修理草坪，耐心的种一盆花，养活一缸鱼，手工做一个盆栽架，或下厨煲出一锅汤。这一切远胜过在酒吧呼朋唤友，眼神迷离，左拥右抱。他应是安静的，不多话。多话的男人多有儿童的幼稚心态。但他却又保留有童真，那是对自我的一种认同和坚定，不受世间标准的左右界定，来去自如，生性逍遥。 <br />         专注工作，并且独具一格。用一生来做对和做好一件事情。内心分明他的取舍和执着所在。干净，健康。挺着肚腩或骨瘦如柴的男子终究不好看。经常健身和运动的男子，心态平和，身上有均衡有力的肌肉，这是讨人喜欢的。他可以从一而终只喜欢粗布裤和球鞋，但简单的衣服穿在身上自显得干净明朗。他的感情显得有重量。 <br />         男人性感的定义是，女人愿意与之生儿育女，成为他的妻子。 <br />         对。不是一夜情，也并非性伴侣。女人对一个男人最彻底的爱慕，是想心甘情愿的为他生养孩子。
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/168507#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 05 Mar 2008 23:47:10 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/168507</link>
        <guid>http://zhaojuan8.javaeye.com/blog/168507</guid>
      </item>
      <item>
        <title>UML与软件开发生命周期</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/166586" style="color:red;">http://zhaojuan8.javaeye.com/blog/166586</a>&nbsp;
          发表时间: 2008年03月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">典型的软件开发过程包括一下几个阶段
需求获取
设计
编码
测试
部署
UML提供了几种合适软件开发生命周期的每个部分的图形类型
用例图：
       用来表示系统和用户参与的公共活动的集合，也描绘了每个用例的参与者
类图:
      在设计过程中的开始阶段用于定义应用的领域模型，系统中数据和对象的关系、对象
       之间的关系，对象可以执行的操作
交互图：
       说明系统中对象之间的交互
活动图:
      用于标识系统中的处理流程,与程序流程图不同，活动图包括超越于代码本身之上的用
       户活动，并能够清楚的描绘系统中的各个参与者分别扮演的不同角色
部署图：
       用来简要说明一个系统将如何分布于物理资源之上，也为系统在部署阶段对系统配置
       进行文档说明
对象图：
       它是描述系统在某个时刻的状态，对象图即可用于建模系统潜在的实质性的内容，也可以得到当前驻留在某个系统中的数据在某个时刻的系统快照
包图：
     一个UML的包图可以被理解成一个JAVA包，或者是一具有相关功能的类，而不考虑底层的实现
交互图：用于描述系统中多个对象之间的控制流转，在UML中交互图可分为序列图和协作图
序列图：是用来描述一系列的对象的交互序列，可以用来理解应用中的控制流转，序列图使得操作顺序非常清晰，但是他们的布局不是很灵活，也不能清楚的描述类或者对象之间的静态关系
协作图：是围绕对象来构建的
  
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/166586#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 02 Mar 2008 00:25:20 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/166586</link>
        <guid>http://zhaojuan8.javaeye.com/blog/166586</guid>
      </item>
      <item>
        <title>java中前置++和后置++的区别</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/163238" style="color:red;">http://zhaojuan8.javaeye.com/blog/163238</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">public static void main(String[] args) {
		int i = 0;
		int j = i++;
		j = j + i;
		int c=++j;
		System.out.println(c);
		System.out.println(j);
		/************************************************************
		 * 前置++和后置++的区别
		 * 在代码int j = i++;中实际上是先把i赋值给j然后在执行i++,由此可以得出结论
		 * 在后置++中会先执行前面的运算,后置后面的++运算,那么在这里j就是0,i就是1
		 * 那么上面的运算步骤实际上就是：
		 * 		1)j=i;//先执行赋值运算j和i都等于0;
		 * 		2)i=i+1;//i等于2；
		 * 在代码int c=++j;中这里是前置++那么会先执行前面的++然后在执行赋值运算
		 * 由此可得出前置++会先执行前面的++然后才在做其他的运算，那么上面的运算步骤实际上
		 * 就是
		 * 		1)j=j+1;//j在这里是等于2的
		 * 		2）c=j;//j对c进行赋值运算c等于2
		 ************************************************************/
	}</pre>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/163238#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 09:38:12 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/163238</link>
        <guid>http://zhaojuan8.javaeye.com/blog/163238</guid>
      </item>
      <item>
        <title>JAVA接口和抽象类</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/162659" style="color:red;">http://zhaojuan8.javaeye.com/blog/162659</a>&nbsp;
          发表时间: 2008年02月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我们知道在java中抽象类与接口的灵活运用大大简化了C++里的多重继承, 但却实现了C++里相似的功能,其实接口的运用其实也只是类层次关系中下传的一种表现,我们可以把java中类的层次关系想象想你的一个家族关系<br /><br />父类Object当然是你的老祖宗了,<br /><br />1  抽象类(Abstract Class):<br /><br /> 抽象类当然是你的祖辈(祖父,爷爷,父亲都有可能)了,而抽象类里的抽象方法就好象是你祖辈们本应该做的事情,而他们却没有能力去做,或者说他们根本不想去做(可能是他们有这个梦想,而却没有这个能力吧),不过好在他们最终的子孙们(当然不已经不再是抽象类了)都是些有能力,有出息的子孙,帮他们完成他们没有完成的事情(实现了抽象方法),如果当哪天有个想叫这些祖辈去做他们正好没有完成的那些事情时候(调用抽象方法),这些祖辈们就会跟你说,啊,这个我没办法完成,我已经让我的儿子负责来做了,你去找我的儿子去吧,那个人也只好找到他的儿子,假如这个儿子没有这个能力话(还是抽象类),他可能又会跟那个人说,这些事情我也完成不了(还有抽象方法),我让我儿子负责去做了,你找他去吧........依此类推,那个人只能一直找下去,直找到那个有能力完成这些事情为止的儿子(已经实现了抽象方法),然后就让这个儿子去那这件事情(调用这个实现的方法),当然了这些祖辈们多多少少还是做了大部分事情的(大部分不是抽象的方法),同时他们也有自己的性格啊,外貌啊,身高啊等等(这些都是属性).....<br /><br />2 接口(Interface):<br /><br />接口就更加牛了(只有属性,完全没有方法体),都些好吃懒做,完全没有出息的祖辈们(当然他们存在这个世上还是有外貌啊,体重啊,身高啊,爱好啊之类的特征啦....),]本来上天给了他们很多事情去做的(接口里的方法),而他们都懒得动手(可能是好吃懒做习惯了吧,哈哈,这各这样比喻是否准确),不过他们都有一个强项,生育儿子的能力特别的强(指实现这些接口的类或者派生的子接口),如果运气好的话,可能生到的是一个勤快的,有出息的儿子(实现了接口的类),这个儿子会把这些懒惰的祖辈们的事情全给包览下来,全部去帮他们做完(实现了接口中所有的方法),当然如果运行不好,生出来的儿子不既跟他一样,而且还会变本加厉(可能拥有更多没有方法体的方法),依此类推......哈哈,不过最终他们的子孙们都是有出息的,都会把他们祖辈(可能有曾爷爷,爷爷,爸爸,[伯伯,叔叔,可能有点不太准确,不过java能实现多个接口,我只能这么理解] ) 留下来的事情全部去做完的.就像抽像类一样,当哪天有人要这些懒惰的祖辈们去做他们应该做的事情的时候,他们就会不耐烦的跟你说,我找我儿子(或者侄子)去吧,我全权交给他来负责,那个人也只好找他儿子去啦....,最终最终,那个人还是找到这些懒惰祖辈们那个最有出息那个子孙(实现这些接口的类),让这个子孙去做那些事情(当用接口的引用调用接口的方法时)
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/162659#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 16 Feb 2008 17:42:56 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/162659</link>
        <guid>http://zhaojuan8.javaeye.com/blog/162659</guid>
      </item>
      <item>
        <title>java Inner Class</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/162642" style="color:red;">http://zhaojuan8.javaeye.com/blog/162642</a>&nbsp;
          发表时间: 2008年02月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          提起Java内部类（Inner Class）可能很多人不太熟悉，实际上类似的概念在C++里也有，那就是嵌套类（Nested Class），关于这两者的区别与联系，在下文中会有对比。内部类从表面上看，就是在类中又定义了一个类（下文会看到，内部类可以在很多地方定义），而实际上并没有那么简单，乍看上去内部类似乎有些多余，它的用处对于初学者来说可能并不是那么显著，但是随着对它的深入了解，你会发现Java的设计者在内部类身上的确是用心良苦。学会使用内部类，是掌握Java高级编程的一部分，它可以让你更优雅地设计你的程序结构。下面从以下几个方面来介绍：<br /><br />第一次见面<br />public interface Contents {<br />    int value();<br />}<br /><br />public interface Destination {<br />    String readLabel();<br />}<br /><br />public class Goods {<br />    private class Content implements Contents {<br />        private int i = 11;<br />        public int value() { <br />            return i; <br />        }<br />    }<br /><br />    protected class GDestination implements Destination {<br />        private String label;<br />        private GDestination(String whereTo) {<br />            label = whereTo;<br />        }<br />        public String readLabel() { <br />            return label; <br />        }<br />    }<br /><br />    public Destination dest(String s) {<br />        return new GDestination(s);<br />    }<br />    public Contents cont() {<br />        return new Content();<br />    }<br />}<br /><br />class TestGoods {<br />    public static void main(String[] args) {<br />        Goods p = new Goods();<br />        Contents c = p.cont();<br />        Destination d = p.dest("Beijing");<br />    }<br />} <br /> <br />在这个例子里类Content和GDestination被定义在了类Goods内部，并且分别有着protected和private修饰符来控制访问级别。Content代表着Goods的内容，而GDestination代表着Goods的目的地。它们分别实现了两个接口Content和Destination。在后面的main方法里，直接用 Contents c和Destination d进行操作，你甚至连这两个内部类的名字都没有看见！这样，内部类的第一个好处就体现出来了——隐藏你不想让别人知道的操作，也即封装性。 <br />同时，我们也发现了在外部类作用范围之外得到内部类对象的第一个方法，那就是利用其外部类的方法创建并返回。上例中的cont()和dest()方法就是这么做的。那么还有没有别的方法呢？当然有，其语法格式如下：<br /><br />outerObject=new outerClass(Constructor Parameters);<br /><br />outerClass.innerClass innerObject=outerObject.new InnerClass(Constructor Parameters);<br /> <br /><br />注意在创建非静态内部类对象时，一定要先创建起相应的外部类对象。至于原因，也就引出了我们下一个话题——<br /><br />非静态内部类对象有着指向其外部类对象的引用<br />对刚才的例子稍作修改：<br /><br />public class Goods {<br /><br />    private valueRate=2;<br /><br />    private class Content implements Contents {<br />        private int i = 11*valueRate;<br />        public int value() { <br />            return i; <br />        }<br />    }<br /><br />    protected class GDestination implements Destination {<br />        private String label;<br />        private GDestination(String whereTo) {<br />            label = whereTo;<br />        }<br />        public String readLabel() { <br />            return label; <br />        }<br />    }<br /><br />    public Destination dest(String s) {<br />        return new GDestination(s);<br />    }<br />    public Contents cont() {<br />        return new Content();<br />    }<br />}<br /> <br /><br />修改的部分用蓝色显示了。在这里我们给Goods类增加了一个private成员变量valueRate，意义是货物的价值系数，在内部类Content的方法value()计算价值时把它乘上。我们发现，value()可以访问valueRate，这也是内部类的第二个好处——一个内部类对象可以访问创建它的外部类对象的内容，甚至包括私有变量！这是一个非常有用的特性，为我们在设计时提供了更多的思路和捷径。要想实现这个功能，内部类对象就必须有指向外部类对象的引用。Java编译器在创建内部类对象时，隐式的把其外部类对象的引用也传了进去并一直保存着。这样就使得内部类对象始终可以访问其外部类对象，同时这也是为什么在外部类作用范围之外向要创建内部类对象必须先创建其外部类对象的原因。<br /><br />有人会问，如果内部类里的一个成员变量与外部类的一个成员变量同名，也即外部类的同名成员变量被屏蔽了，怎么办？没事，Java里用如下格式表达外部类的引用：<br /><br />outerClass.this <br /><br />有了它，我们就不怕这种屏蔽的情况了。<br /><br />静态内部类<br />和普通的类一样，内部类也可以有静态的。不过和非静态内部类相比，区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了，Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上，当然从设计的角度以及以它一些细节来讲还有区别。<br /><br />除此之外，在任何非静态内部类中，都不能有静态数据，静态方法或者又一个静态内部类（内部类的嵌套可以不止一层）。不过静态内部类中却可以拥有这一切。这也算是两者的第二个区别吧。<br /><br />局部内部类 <br />是的，Java内部类也可以是局部的，它可以定义在一个方法甚至一个代码块之内。<br /><br />public class Goods1 {<br />     public Destination dest(String s) {<br />          class GDestination implements Destination {<br />               private String label;<br />               private GDestination(String whereTo) {<br />                    label = whereTo;<br />               }<br />               public String readLabel() { return label; }<br />          }<br />          return new GDestination(s);<br />     }<br /><br />     public static void main(String[] args) {<br />          Goods1 g= new Goods1();<br />          Destination d = g.dest("Beijing");<br />     }<br />}<br /> <br /><br />上面就是这样一个例子。在方法dest中我们定义了一个内部类，最后由这个方法返回这个内部类的对象。如果我们在用一个内部类的时候仅需要创建它的一个对象并创给外部，就可以这样做。当然，定义在方法中的内部类可以使设计多样化，用途绝不仅仅在这一点。<br /><br />下面有一个更怪的例子：<br /><br />public class Goods2{<br />     private void internalTracking(boolean b) {<br />          if(b) {<br />               class TrackingSlip {<br />                    private String id;<br />                    TrackingSlip(String s) {<br />                         id = s;<br />                    }<br />                    String getSlip() { return id; }<br />               }<br />               TrackingSlip ts = new TrackingSlip("slip");<br />               String s = ts.getSlip();<br />          } <br />     }<br /><br />     public void track() { internalTracking(true); }<br /><br />     public static void main(String[] args) {<br />          Goods2 g= new Goods2();<br />          g.track();<br />     }<br />}<br /> <br /><br />你不能在if之外创建这个内部类的对象，因为这已经超出了它的作用域。不过在编译的时候，内部类TrackingSlip和其他类一样同时被编译，只不过它由它自己的作用域，超出了这个范围就无效，除此之外它和其他内部类并没有区别。<br /><br />匿名内部类 <br />java的匿名内部类的语法规则看上去有些古怪，不过如同匿名数组一样，当你只需要创建一个类的对象而且用不上它的名字时，使用内部类可以使代码看上去简洁清楚。它的语法规则是这样的：<br /><br />new interfacename(){......}; 或 new superclassname(){......}; <br /><br />下面接着前面继续举例子：<br /><br />public class Goods3 {<br />     public Contents cont(){<br />          return new Contents(){<br />               private int i = 11;<br />               public int value() { <br />                    return i; <br />               }<br />          };<br />     }<br />} <br /><br />这里方法cont()使用匿名内部类直接返回了一个实现了接口Contents的类的对象，看上去的确十分简洁。<br /><br />在java的事件处理的匿名适配器中，匿名内部类被大量的使用。例如在想关闭窗口时加上这样一句代码：<br /><br />frame.addWindowListener(new WindowAdapter(){<br />     public void windowClosing(WindowEvent e){<br />          System.exit(0); <br />     }<br />}); <br /><br />有一点需要注意的是，匿名内部类由于没有名字，所以它没有构造函数（但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类，创建它的时候必须带上这些参数，并在实现的过程中使用super关键字调用相应的内容）。如果你想要初始化它的成员变量，有下面几种方法：<br /><br />如果是在一个方法的匿名内部类，可以利用这个方法传进你想要的参数，不过记住，这些参数必须被声明为final。 <br />将匿名内部类改造成有名字的局部内部类，这样它就可以拥有构造函数了。 <br />在这个匿名内部类中使用初始化代码块。 <br />为什么需要内部类？ <br />java内部类有什么好处？为什么需要内部类？<br /><br />首先举一个简单的例子，如果你想实现一个接口，但是这个接口中的一个方法和你构想的这个类中的一个方法的名称，参数相同，你应该怎么办？这时候，你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的，所以这样做可以完成所有你直接实现这个接口的功能。<br /><br />不过你可能要质疑，更改一下方法的不就行了吗？<br /><br />的确，以此作为设计内部类的理由，实在没有说服力。<br /><br />真正的原因是这样的，java中的内部类和接口加在一起，可以的解决常被C++程序员抱怨java中存在的一个问题——没有多继承。实际上，C++的多继承设计起来很复杂，而java通过内部类加上接口，可以很好的实现多继承的效果。<br /><br />本文的目的只是向大家介绍一下内部类的概念以及使用方法，在后续文章里，将会针对本文中的内容举更多具体的例子，以及介绍如何使用内部类构建一个Applicaton Framework。
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/162642#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 16 Feb 2008 14:45:41 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/162642</link>
        <guid>http://zhaojuan8.javaeye.com/blog/162642</guid>
      </item>
      <item>
        <title>HIbernate事务</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/162589" style="color:red;">http://zhaojuan8.javaeye.com/blog/162589</a>&nbsp;
          发表时间: 2008年02月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1. 介绍数据库事务、事务隔离级别、悲观锁、乐观锁等概念。<br /><br />2.数据库ACID特征：<br /><br /> Atomic（原子性）：指整个数据库事务是不可分割的工作单元。<br /><br /> Consistency（一致性）：指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。<br /><br /> Isolation（隔离性）：指的是在并发环境中，当不同的事务同时操纵相同的数据时，每个事务都有各自的完整数据空间。<br /><br /> Durability（持久性）：指的是只要事务成功结束，它对数据库所作的更新就必须永久保存下来。<br /><br />3.数据库系统支持两种事务模式：<br /><br /> 自动提交模式：每个SQL语句都是一个独立的事务，当数据库系统执行完一个SQL语句后，会自动提交事务。<br /><br /> 手动提交模式：必须由数据库客户程序显示指定事务开始边界和结束边界。<br /><br />4.MySQL中数据库表分为3种类型：INNODB、BDB和MyISAM，其中MyISAM不支持数据库事务。MySQL中create table 语句默认为MyISAM类型。<br /><br />5.对于同时运行的多个事务，当这些事务访问数据库中相同的数据时，如果没有采取必要的隔离机制，就会导致各种并发问题，这些并发问题可归纳为以下几类：<br /><br />A.第一类丢失更新：撤销一个事务时，把其他事务已提交的更新数据覆盖。<br /><br />B.脏读：一个事务读到另一个事务为提交的更新数据。<br /><br />C.虚读：一个事务读到另一个事务已提交的新插入的数据。<br /><br />D.不可重复读：一个事务读到另一个事务已提交的更新数据。<br /><br />E.第二类丢失更新：这是不可重复读中的特例，一个事务覆盖另一个事务已提交的更新数据。<br /><br />6.数据库系统提供了四种事务隔离级别供用户选择：<br /><br />A.Serializable（串行化）：一个事务在执行过程中完全看不到其他事务对数据库所做的更新。<br /><br />B.Repeatable Read（可重复读）：一个事务在执行过程中可以看到其他事务已经提交的新插入的记录，但是不能看到其他其他事务对已有记录的更新。<br /><br />C.Read Commited（读已提交数据）：一个事务在执行过程中可以看到其他事务已经提交的新插入的记录，而且能看到其他事务已经提交的对已有记录的更新。<br /><br />D.Read Uncommitted（读未提交数据）：一个事务在执行过程中可以拷打其他事务没有提交的新插入的记录，而且能看到其他事务没有提交的对已有记录的更新。<br /><br />隔离级别越高，越能保证数据的完整性和一致性，但是对并发性能的影响也越大。对于多数应用程序，可以有优先考虑把数据库系统的隔离级别设为Read Commited，它能够避免脏读，而且具有较好的并发性能。尽管它会导致不可重复读、虚读和第二类丢失更新这些并发问题，在可能出现这类问题的个别场合，可以由应用程序采用悲观锁或乐观锁来控制。<br /><br />7.当数据库系统采用read Commited隔离级别时，会导致不可重复读喝第二类丢失更新的并发问题，可以在应用程序中采用悲观锁或乐观锁来避免这类问题。从应用程序的角度，锁可以分为以下几类：<br /><br />A.悲观锁：指在应用程序中显示的为数据资源加锁。尽管能防止丢失更新和不可重复读这类并发问题，但是它会影响并发性能，因此应该谨慎地使用。<br /><br />B.乐观锁：乐观锁假定当前事务操作数据资源时，不回有其他事务同时访问该数据资源，因此完全依靠数据库的隔离级别来自动管理锁的工作。应用程序采用版本控制手段来避免可能出现的并发问题。<br /><br />8.悲观锁有两种实现方式：<br /><br />A.在应用程序中显示指定采用数据库系统的独占所来锁定数据资源。SQL语句：select ... for update，在Hibernate中使用get，load时如session.get(Account.class,new Long(1),LockMode,UPGRADE)<br /><br />B.在数据库表中增加一个表明记录状态的LOCK字段，当它取值为“Y”时，表示该记录已经被某个事务锁定，如果为“N”，表明该记录处于空闲状态，事务可以访问它。增加锁标记字段就可以实现。<br /><br />9.利用Hibernate的版本控制来实现乐观锁<br /><br />乐观锁是由程序提供的一种机制，这种机制既能保证多个事务并发访问数据，又能防止第二类丢失更新问题。<br /><br /> 在应用程序中可以利用Hibernate提供的版本控制功能来视线乐观锁，OR映射文件中的&lt;version>元素和&lt;timestamp>都具有版本控制的功能，一般推荐采用&lt;version>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/162589#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 16 Feb 2008 09:16:53 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/162589</link>
        <guid>http://zhaojuan8.javaeye.com/blog/162589</guid>
      </item>
      <item>
        <title>SQL的数据类型与Java数据类型的对应关系 </title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/159016" style="color:red;">http://zhaojuan8.javaeye.com/blog/159016</a>&nbsp;
          发表时间: 2008年01月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>SQL的数据类型与Java数据类型的对应关系 <br />SQL数据类型&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java数据类型<br />CHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String <br />VARCHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String <br />LONGVARCHAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String <br />NUMERIC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.math.BigDecimal <br />DECIMAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.math.BigDecimal <br />BIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean <br />TINYINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte <br />SMALLINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short <br />INTEGER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 <br />BIGINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long <br />REAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float <br />FLOAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double <br />DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double <br />BINARY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] <br />VARBINARY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] <br />LONGVARBINARY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] <br />DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.sql.Date <br />TIME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.sql.Time <br />TIMESTAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.sql.Timestamp</p><p>datetime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; java.sql.Timestamp</p>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/159016#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Jan 2008 12:06:03 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/159016</link>
        <guid>http://zhaojuan8.javaeye.com/blog/159016</guid>
      </item>
      <item>
        <title>讨论下一站式登录的问题</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/157519" style="color:red;">http://zhaojuan8.javaeye.com/blog/157519</a>&nbsp;
          发表时间: 2008年01月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在平常的项目中大家是否遇到过这样的问题了？</p><p>假如现在有3个项目 项目A,项目B,这二个项目都有登录而且他们都要访问同一数据库中的一user表,但是我希望在项目A中登录后 点击链接项目B的链接的时候跳转项目B 这个时候不需要去手动登录，而是自动登录了，有没有什么好的解决办法</p>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/157519#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 18 Jan 2008 23:18:53 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/157519</link>
        <guid>http://zhaojuan8.javaeye.com/blog/157519</guid>
      </item>
      <item>
        <title>java for flash二（Flash Remoting MX交互）</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/151287" style="color:red;">http://zhaojuan8.javaeye.com/blog/151287</a>&nbsp;
          发表时间: 2007年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong>Java Servlet和Flash Remoting MX的数据绑定</strong></p>
<div><strong>Flash Remoting</strong> Mx为<strong>java</strong>应用服务器环境提供了2个重要的参数,即<strong>FLASH.PARAMS</strong>个<strong>FLASH.RESULT</strong>.</div>
<ol>
    <li><strong>FLASH.PARAMS是</strong>一个数组,他包含了从flash影片应用程序传递的参数。从flash影片应用程序传递过来的参数.&nbsp;&nbsp; 从Flash影音程序传递过来的的参数依据先后顺序首先被Flash Remoting网关转换成java数据类型,Servlet程序将转换后的参数识别为数组,这样你就可以在Servlet程序中运用数组的语法获取参数数据(如例1：). </li>
    <li><strong>FLASH.RESULT</strong>参数比较复杂，它可以将Servlet运算后的数据返回给Flash影片应用程序.从Servlet返回的数据先被Flash Remoting网关转换成Action Script数据类型.FLASH.RESULT的数据类型可以包括多种，比如字符串、逻辑值、数组、和记录集等。Flash Remoting 可以自动识别不同类型的数据，并将他们转成Action Script(如例2：). </li>
</ol>
<div class="code_title">&nbsp;例1：</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>ActionScript代码： &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>myService.MyMethod(参数</span><span class="number">1</span><span>，参数</span><span class="number">2</span><span>，参数</span><span class="number">3</span><span>); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>Servlet代码： &nbsp;&nbsp;</span> </li>
    <li class=""><span>Object&nbsp;o=request.getAttribute(</span><span class="string">&quot;FLASH.PARAMS&quot;</span><span>); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span></span><span class="keyword">if</span><span>(o&nbsp;</span><span class="keyword">instanceof</span><span>&nbsp;List){ &nbsp;&nbsp;</span> </li>
    <li class=""><span>List&nbsp;list=(List)o; &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>list.get(</span><span class="number">0</span><span>); &nbsp;&nbsp;</span> </li>
    <li class=""><span>list.get(</span><span class="number">1</span><span>); &nbsp;&nbsp;</span> </li>
    <li class="alt"><span>list.get(</span><span class="number">2</span><span>); &nbsp;&nbsp;</span> </li>
    <li class=""><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><strong>例2</strong>&nbsp;：</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span>String&nbsp;name=</span><span class="string">&quot;zhaojuan8&quot;</span><span>; &nbsp;&nbsp;</span></span> </li>
    <li class=""><span>request.setAttribute(</span><span class="string">&quot;FLASH.RESULT&quot;</span><span>,name);&nbsp;&nbsp;</span> </li>
</ol>
</div>
<strong>需要注意的是Servlet 仅在符合Servlet 2.2 或者Servlet2.3规范的应用程序服务器才能实现和Flash Remoting MX交互</strong>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/151287#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 27 Dec 2007 16:32:50 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/151287</link>
        <guid>http://zhaojuan8.javaeye.com/blog/151287</guid>
      </item>
      <item>
        <title>正则表达式</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/150073" style="color:red;">http://zhaojuan8.javaeye.com/blog/150073</a>&nbsp;
          发表时间: 2007年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-family: Arial">&ldquo;正则表达式&rdquo;（<strong>Regular Expression</strong>）就是一个字符构成的串，它定义了一个用来搜索匹配字符串的模式。</span></p><ul><li><span style="font-family: Arial">句点符号 <strong>.</strong></span> </li></ul><p>假如你现在想写一个3个字符的单词必须是以z开头n结尾。那么你可以写<strong>z.c</strong>那么他匹配<strong>&quot;zyc&quot;,&quot;z*c&quot;</strong>还包括空格</p><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span>正则表达式z.c &nbsp;&nbsp;</span></span> </li><li><span>匹配:zyc,z*c,z&nbsp;c,z&amp;c等&nbsp;&nbsp;</span> </li></ol></div><ul><li>方括号[ ] </li></ul><p>假如正则表达式<strong>z[asdy]c,</strong>那么他只匹配<strong>zac,zsc,zdc,zyc,</strong>因为方括号内只能匹配单个的字符</p><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span>正则表达式z[asdy]c &nbsp;&nbsp;</span></span> </li><li><span>匹配：zac,zsc,zdc,zyc&nbsp;&nbsp;</span> </li></ol></div><ul><li>&quot;或&quot;符号 | </li></ul><p>假如你现在想匹配<strong>zac,zsc,zyyc</strong>那么你的正则表达式应该这样写<strong>z(a|s|yy)c,</strong>因为方括号只能匹配单个字符，这里只能用园括号</p><div class="code_title">java 代码</div><div class="dp-highlighter"><ol class="dp-j"><li class="alt"><span><span>正则表达式：z(a|s|yy)c &nbsp;&nbsp;</span></span> </li><li><span>匹配：zac.zsc.zyyc&nbsp;&nbsp;</span> </li></ol></div><ul><li>&nbsp;表示匹配次数的符号 </li></ul><p><table cellspacing="1" border="1" align="center" width="200" cellpadding="1"><caption>表示匹配次数的符号</caption><tbody><tr><td><strong>符号</strong></td><td><strong>次数</strong></td></tr><tr><td><strong>*</strong></td><td><strong>0次或者多次</strong></td></tr><tr><td><strong>+</strong></td><td><strong>1次或者多次</strong></td></tr><tr><td><strong>？</strong></td><td><strong>0次或者1次</strong></td></tr><tr><td><strong>{n}</strong></td><td><strong>n次</strong></td></tr><tr><td><strong>{n,m}</strong></td><td><strong>n到m此</strong></td></tr></tbody></table></p><p>那么看下列例子:</p><p align="center"><strong>[0-9]{3}\-[0-9]{2}\-[0-9]{4}</strong></p><p align="left"><strong>上面的这个正则表达式的意思前3位必须是0-9的数字然后是&ldquo;-&rdquo;做连接符号，0-9的数字出现2次然后是&ldquo;-&rdquo;在然后就是0-9的数字出现4次那么他匹配的是123-12-1234</strong></p><p align="center"><strong>[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}</strong></p><p align="left"><strong>上面的这个表达式在第一个表达式的基础上改进的，就不做过多的解释，\-?的意思是&quot;-&quot;连接符可以出现0-1次那么他匹配123-12-1234，也匹配123121234</strong></p><p align="center"><strong>[0-9]{4}[a-zA-Z]{2}</strong></p><p align="left"><strong>在看上述表达式是前4位必须是0-9的数字，后2位必须是a-z的字母或者是A-Z的字母，那么它匹配1234aa,也匹配1234AA</strong></p><ul><li><div align="left">&quot;否&quot;字符 ^:表示不想匹配的字符[^z]表示非z的字符</div></li><li><div align="left">&nbsp; 常用的符号</div></li><li><div align="left"><table cellspacing="1" border="1" width="200" cellpadding="1"><tbody><tr><td>符号</td><td>等价的正则表达式</td></tr><tr><td>\d</td><td>[0-9]</td></tr><tr><td>\D</td><td>[^0-9]</td></tr><tr><td>\w</td><td>[0-9A-Z]</td></tr><tr><td>\W</td><td>[^0-9A-Z]</td></tr><tr><td>\s</td><td>[\t\n\r\f]</td></tr><tr><td>\S</td><td>[^\t\n\r\f]</td></tr></tbody></table></div></li><li><div align="left"><pre name="code" class="java">^\d+$ //匹配非负整数（正整数 + 0） 
^[0-9]*[1-9][0-9]*$ //匹配正整数 
^((-\d+)|(0+))$ //匹配非正整数（负整数 + 0） 
^-[0-9]*[1-9][0-9]*$ //匹配负整数 
^-?\d+$ //匹配整数 
^\d+(\.\d+)?$ //匹配非负浮点数（正浮点数 + 0） 
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数 
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数（负浮点数 + 0） 
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数 
^(-?\d+)(\.\d+)?$ //匹配浮点数 
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址 
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
</pre>&nbsp;</div></li></ul>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/150073#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Dec 2007 22:02:20 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/150073</link>
        <guid>http://zhaojuan8.javaeye.com/blog/150073</guid>
      </item>
      <item>
        <title>java I/O</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/149544" style="color:red;">http://zhaojuan8.javaeye.com/blog/149544</a>&nbsp;
          发表时间: 2007年12月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><font size="2">虽然做java有段时间了发觉对java IO流掌握的还不是很好，所以觉得花一个晚上的时间在对io资料看看,所以就有了这片文章流在JAVA中一般分为输入流(Input Stream)和输出流(Output Stream)2类，但这不是绝对的划分，比如一个文件当我们在向该文件写数据的时候，就是一个输出流；当从该文件读数据的时候，那么就是一个输入流，对于初学者而言可能经常把输入流和输出流弄混淆包括我也是这样，经常弄不清楚输入流和输出流，拿上面的例子分析，当程序向文件写数据的时候，就是程序把流输出到文件那么流的源头(既所有者)是程序，当在程序去读文件的数据的时候，这个时候还是以程序为中心是把文件中的对象（流）输入进程序，呵呵 以上只是个人比较愚昧的理解。</font></p>
<p><font size="2">在java中主要是java.io包中提供一系列的类和接口来实现输入和输出处理的，标准输入和输出则是java.lang包提供的类来处理，但他们都是从java.io包中的类继承而来。</font></p>
<p><font size="2">基本输出流的原理如下：</font></p>
<ul>
    <li><font size="2">读(输入流)：打开一个流对象-&gt;当不是结尾，从流中读入数据-&gt;关闭流对象。</font></li>
    <li><font size="2">写(输出流)：打开一个流对象-&gt;当不是结尾，向流中写入数据-&gt;关闭流对象。</font></li>
</ul>
<p><font size="2">在java1.1以前，java.io中只提供了字节流，在1.1以后的版本中加入了字符流</font></p>
<ul>
    <li><font size="2">字节流</font></li>
</ul>
<p><font size="2">java中每一种字节流基本功能都依赖于基本类InputStream和OutputStream，他们都是抽象类，不能直接使用&nbsp;&nbsp; </font></p>
<p><font size="2">下面是个文件流的简单例子</font></p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;java.io.*; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="keyword">class</span><span>&nbsp;Filestream &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String&nbsp;args[]) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;inFile=</span><span class="keyword">new</span><span>&nbsp;File(</span><span class="string">&quot;file1.txt&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;outFile=</span><span class="keyword">new</span><span>&nbsp;File(</span><span class="string">&quot;file2.txt&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileInputStream&nbsp;fis=</span><span class="keyword">new</span><span>&nbsp;FileInputStream(inFile); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fos=</span><span class="keyword">new</span><span>&nbsp;&nbsp;FileOutputStream(outFile); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;c; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>((c=fis.read())!=-</span><span class="number">1</span><span>)&nbsp;&nbsp;fos.write(c); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fis.close(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fos.close(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span class="keyword">catch</span><span>(FileNotFoundException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span class="string">&quot;FileStreamsTest:&nbsp;&quot;</span><span>+e); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span class="keyword">catch</span><span>(IOException&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println(</span><span class="string">&quot;FileStreamsTest:&nbsp;&quot;</span><span>+e); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<ul>
    <li>字符流：java.io包中的类以Reader和Writer为基础类派生而来，Reader和Writer类也是抽象类，只提供处理一系列字符流的接口。</li>
</ul>
<p>InputStreamReader和OUtputStream是java.io包中处理字符流的最基本的类</p>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/149544#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Dec 2007 22:08:37 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/149544</link>
        <guid>http://zhaojuan8.javaeye.com/blog/149544</guid>
      </item>
      <item>
        <title>java for flash</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/148236" style="color:red;">http://zhaojuan8.javaeye.com/blog/148236</a>&nbsp;
          发表时间: 2007年12月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>下面介绍下flash和服务器进行交互的方法:</p>
<p>flash的脚本语言叫做<strong>ActionScript</strong> 、我们用<strong>ActionScript</strong>和我们的服务器进行数据交互，<strong>flash</strong>内置了很多方法用于向服务器传递数据，而且有多种形式下面做一些简单的介绍：</p>
<ol>
    <li>使用<strong>MovieClip</strong>对象的<strong>getUrl</strong>,<strong>loadCariables</strong>，<strong>loadCariablesNum</strong>他们是使用<strong>http</strong>和<strong>https</strong>协议以<strong>URL</strong>编码格式向服务器传递数据 </li>
    <li>使用<strong>LoadVars</strong>的<strong>load</strong>，<strong>send</strong>和<strong>sendAndLoad</strong>方法可以使用<strong>http</strong>或者<strong>https</strong>协议以<strong>URL</strong>的编码格式向服务器传递数据 </li>
    <li><strong>Sound</strong>对象的<strong>loadsound</strong>方法可以以<strong>http</strong>或<strong>https</strong>协议向服务器传递数据，请求从服务器加载声音文件 </li>
    <li><strong>loadMovie</strong>和<strong>loadMovieNum</strong>可以使用<strong>http</strong>或<strong>https</strong>向服务器传递数据,请求从服务器加载<strong>JPEG</strong>图像文件和其他的<strong>flash</strong>文件 </li>
    <li>使用<strong>XML</strong>类的<strong>XML.send</strong>，<strong>XML.load</strong>和<strong>XML.sendAndLoad</strong>方法可以以XML格式向服务器传递数据 </li>
    <li>使用<strong>XMLSorket</strong>类的<strong>XMLSorket.connect</strong>和<strong>XMLSorket.send</strong>方法可以使用<strong>TCP</strong>/<strong>IP</strong>协议进行套接字连接，以<strong>XML</strong>形式向服务器传递数据&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>
</ol>
<p>以上如此强大的功能只是action script的功能，但是个人觉得有一个缺点就是，不能很好的处理服务器返回的数据，为此flash推出了Flash Remoting MX访问远程服务的技术。</p>
<p>下面就flash和java交互做个简单的介绍(使用Flash Remoting MX访java服务器大致上分3个步骤：</p>
<ul>
    <li>引用与Flash Remoting MX相关的ActionScript类库</li>
    <li>连接到Flash Remoting MX的服务器</li>
    <li>远程调用服务器程序的方法以及处理返回的结果</li>
</ul>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/148236#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Dec 2007 09:33:11 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/148236</link>
        <guid>http://zhaojuan8.javaeye.com/blog/148236</guid>
      </item>
      <item>
        <title>Session event listener threw exception</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/144828" style="color:red;">http://zhaojuan8.javaeye.com/blog/144828</a>&nbsp;
          发表时间: 2007年11月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;<img src="D:\My Documents\服务器.bmp" alt="" />
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/144828#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 29 Nov 2007 13:46:00 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/144828</link>
        <guid>http://zhaojuan8.javaeye.com/blog/144828</guid>
      </item>
      <item>
        <title>SOS java动态生成falsh</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/143544" style="color:red;">http://zhaojuan8.javaeye.com/blog/143544</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/143544#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 11:08:45 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/143544</link>
        <guid>http://zhaojuan8.javaeye.com/blog/143544</guid>
      </item>
      <item>
        <title>在线急等谁有和163邮箱风格式的收缩菜单栏代码</title>
        <author>zhaojuan8</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhaojuan8.javaeye.com">zhaojuan8</a>&nbsp;
          链接：<a href="http://zhaojuan8.javaeye.com/blog/121367" style="color:red;">http://zhaojuan8.javaeye.com/blog/121367</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h1><font face="Arial">在线急等谁有和163邮箱风格式的收缩菜单栏代码<img src="C:\Documents and Settings\Administrator\桌面\tmp_data_img\1.bmp" alt="" /></font></h1>
          <br/>
          <span style="color:red;">
            <a href="http://zhaojuan8.javaeye.com/blog/121367#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Sep 2007 17:51:28 +0800</pubDate>
        <link>http://zhaojuan8.javaeye.com/blog/121367</link>
        <guid>http://zhaojuan8.javaeye.com/blog/121367</guid>
      </item>
  </channel>
</rss>