2006年12月30日星期六

2006-12-29 星期五

刚刚搞定一个从昨天就搞不定的问题,都已经疯了,闹了半天,该了个名字就好了,我要做一个一对多的映射,一个出版社对应多本书,在Publish类里面定义了一个Set的eBook,就是这个eBook这个名字,换了个叫someBook就好了,想想,我的书类叫EBook,难道和这个有关系?纳了闷了,总是报Could not find getter for eBook in Publish类。

关于Hibernate的延时加载,如果出现

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.hwebmapping.pojo.Person.cats, no session or session was closed

的异常,就是Hibernate要读取数据的时候,Session已经关闭,可以用监听器的方法来在页面加载完成后关闭session.(implements javax.servlet.Filter).

       出现下面这样的错误:

java.lang.NoClassDefFoundError

    at com.hwebmapping.hibernate.HibernateDAOBean.doInsertCardDataToDB(HibernateDAOBean.java:337)

337行是下面finally中的语句

 

finally

{

    HibernateUtil.closeSession();

}

经查原来是因为,在Card.hbm.xml中的类名写错了,找不到,但是报上面的错误让人有点摸不着头脑了,为什么是在closeSession的时候出现的异常呢,按理说应该在加载xml的时候就应该有异常了阿。费解。

 

<hibernate-mapping>

    <class name="com.hwebmapping.pojo.Card" table="Card">

2006-12-28 星期四

转眼,几个月过去了,要找工作了,有些郁闷,没有底气阿,为什么?没好好学么?觉得还可以,呵呵,不知道人家是什么胃口,娘的。

       花了这么多钱,不知道值不值,想想,我们这些参加什么培训的,都是些急于求成的东西,跑这来想速成,呵呵,天下没有什么速成,我要多长时间把这钱挣回来?半年?要是净赚还行,呵呵,不了解外界什么行情,想想,人家因为什么理由要我呢?呵呵,要学的还很多,也是,总不能等万事俱备再出山不是,那就出不了山了,怎么现在还没有在学校找工作那时候有自信了呢?那时候可能我还比周围人还有一些竞争力吧,现在?不知道自己在什么层面上,不知道自己有什么优势了。怎么越过越倒退呢,一晚上心烦,狗日的。

       要元旦了,呵呵,日子怎么是这样的呢,我讨厌过节,昔日的好兄弟说我小子越来越孤僻了,得好好教育教育了,唉,确实如此,我倒想,没有人认识我,没有人找我,来无影去无踪,呵呵,不是我不想和人来来往往,热热气气,就像罗桑实说的,暖暖的都不想离开了。可是。今年下半年,我好想误入了一个大口袋一样的包围圈,进去了,口袋被慢慢扎紧,无法呼吸,我在努力挣脱,想出去,可是,又不想互相残杀,不想弄坏袋子,想和解,我还抱有希望,呵呵,希望有一天,我杀出重围。

       讨厌过节。

2006-12-27 星期三

Hibernate第二天,没有抽出时间来写日志,呵呵,这两天过的有些没有规律。

涉及到Hibenate的核心api,SessionFactory,Session,Query,Transaction。刚开始搞得有点晕头转向,呵呵,hibernate比spring复杂,的确不用写什么sql语句,配配配还是配,就这配,非得仔细不可,就因为一个字母写错,就得找半天,报的错还声东击西。呵呵。

2006年12月27日星期三

2006-12-26 星期二

昨晚上在网上闲逛,看到了一篇文章,忘了记下来网址了,说学java的三个境界,哈哈,同志尚需努力啊。

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

第一个层次:精通掌握Java语法、能调试基本的程序错误,精通掌握JSP+Java Bean写一些N年前ASP、PHP翻版的Java Web应用程序(如论坛、网站新闻发布系统、OA、网上商城等),精通JDBC使用、精通SQL语句、精通XML等。

  第二个层次:掌握设计模式原理及应用,掌握基于OO的分析及设计方法,并能精通熟练使用几种Java专业设计及开发工具,精通掌握流行的J2EE框架如Hibernate、EJB、Webwork、Spring的原理及应用,精通J2EE中一两个组成部分(如Servlet、EJB等)的工作原理及细节。

  第三个层次:少林的高僧有两种,禅僧及武僧。J2EE程序员的第三个层次也同样有禅、武两个分支,这里我们重点分析一下:

  第一个分支属于走的禅僧线路。在练完第二个层次中的各种武功基础上,结合实际项目中的千奇百怪的用户需求,游刃有余的选择适合的技术方案为客户解决问题,并形成自己的一套解决方案。达到这一个层次的J2EE程序员已经不在乎使用任何工具、任何框架了,而是根据不同的对手,使用不同的武器或招式来应对。好比小李飞刀一样,只有达到了“手中无刀、心中有刀”的境界,才能达到“出手一刀,例不虚发”的效果。这一层次的武功属于一个熟练度问题,刀练得多了、遇到的对手多了,再加上前面的武功修为,就算做不到例不虚发,也可达到十发九中。

  第二个分支属于走的武僧线路,在撑握熟悉第一二个层次中涉及到的内容后,进一步专研并撑握J2EE底层开发,J2EE规范制订、规范实现、Java虚拟机的工作原理、各种常见的J2EE服务器内核工作机制、内存管理、进程机制、源代码等。因为涉及的很多东西都比较抽象,代码也很多,练这一层的武功需要有很好的资质及耐性、并具还得有一定的环境及条件。好比神雕大侠杨过拿起“玄铁剑”,并练成“暗然销魂掌”的成长过程,需要前面的武功修为作基础,更需那只威力神武神雕的帮助指点及他处处为民、惩奸除恶的侠之心态。
  
  胡侃了这么多,现在来根据自己情况测算一下自己的份量,结果如下:

第一层 练到8成;
  第二层 练到5成;
  第三层 准备走禅僧线路,当前算是练到1成;
  
  唉,后面的武功提升越来越难,真不知道要到何年何月才能达到10成啊。你的武功练到哪一个层次了,不防亮出来大家切磋切磋。嘿嘿,要是有一天,咱们中国的Java程序员人手一把“玄铁剑”、人人会使“暗然销魂掌”,那还了得!汗...,写着写着居然做起白日梦了,不好意思,就此打住。

    今天开始讲Hibernate了,搞得有点晕,其中涉及到一些线程并发的只是,还有集合,真是应了先前基础课老师说的,以后学web开发很多地方要用到集合,多线程虽然框架已经做了封装,但是要想很好的理解它们的运行机理,还是要明白的,好好研究编程思想去。

    还有就是今天看到了一个用到静态语句块的地方。在HibernateUtil类里,用来初始化SessionFactory.

    对Hibernate的初步理解,它通过配置xml将持久化类与数据库的一条记录连接了起来。Hibernate也是轻量型框架,所谓轻量型,必须有两个特点,一是非侵入性,而是与容器无关性(不依赖于容器,也就是可在J2EE中运行,也可以在J2SE中运行)。Hibernate对JDBC做了很高的封装,让我们看不到任何涉及到数据库的代码,完全面向对象编程。

    第一天,还得好好学。

2006年12月26日星期二

2006-12-25 星期一

今天讲spring的DAO组件的事务处理和spring和struts结合的三种方法。

       Jdbc的事务处理分为全局事务和局部事务,全局事务是基于应用服务器实现的事务,局部事务是程序实现的,Spring的事务处理是局部事务。

       Spring 的事务处理又分为代码控制和声明控制,代码控制又分为实现PlatformTransactionManager接口方式和继承TransactionTemplate方式(需要用到匿名内部类,这里涉及到了一个回调的概念,回去研究研究编程思想,以前看到过没仔细看,好像回调只能用内部类实现,在java中)。

       Spring 与Struts 结合有三种方法,一种让Action继承一个ActionSupport类,这个类是由Spring 提供的,这是最傻瓜的方法,我觉得,呵呵,然后就是替代Struts中的RequestProcessor类,Spring在替代类里面做了些手脚,使Action类能够基于IoC容器来动态加载业务类对象,第三种方法,是在struts-config.xml中,将所有指定Action的Path属性设成spring的一个接口,然后在spring配置文件中配置action类。这是推荐的方法。

       一天下来头疼,明天开始讲Hibernate了,这样struts+spring+hibernate架构就学完了,要学的东西真是太多了,都跟不上新版本出来的速度,呵呵,要开始着手找工作了,郁闷,自己水平不够好。

2006年12月23日星期六

2006-12-22 星期五

      今天接着spring的SimpleFormController,使用spring框架如何提交表单,处理表单。

      同Struts相似之处的也是在web.xml中设置一个servlet控制器,然后有个xml文件来配置业务类,感觉比Struts还简单些,呵呵,都是做的简单的例子,还后涉及到事件,在发生某个响应后可以出发一个事件处理另一个并发的业务,比如用户注册成功后给用户邮箱发送一封邮件,这需要用到spring的两个类,一个ApplicationListener监听器,还有个事件类ApplicationEvent,一个implement 一个extends,ApplicationEvent是一个抽象类,必须实现它,在事件触发类中创建一个ApplicationEvent实现类的对象,构造器中以ApplicationListener的实现类的对象为参数,然后将ApplicationEvent实现类的对象作为参数调用ApplicationContext的publishEvent();方法。

       最后,简单介绍了spring的dao组件,经过封装后的jdbc确实好用,本来十几行的代码两行就搞定了。其中spring的dao组件不依赖于ioc,但是也可以用ioc注入,还有事务处理,还没有学到,这两天作bbs的例子。

2006年12月22日星期五

弄两幅图片玩玩

大自然"绝地大反攻",呵呵,不错,特别喜欢最后一幅,设成桌面了。
试一试baidu的上传图片,还不错,挺方便。

2006-12-21 星期四

试着实现了一下Struts和spring结合,在Struts的Action类中,使用spring得到业务类对象,结果开始启动Tomcat的时候报下面这个错误:

严重: Error listenerStart

2006-12-21 16:32:49 org.apache.catalina.core.StandardContext start

严重: Context [/BookShop] startup failed due to previous errors

其中在web.xml中配置spring的启动方式,是用的监听器模式:

<listener>

<listener-class> org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

在网上查了一下相关帖子,说把监听器模式换成servlet启动模式就没有问题了,但是是为什么还不知道,按照此说法把spring的启动方式在web.xml中配置成了servlet启动模式。

<servlet>

    <servlet-name>context</servlet-name>

    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

</servlet>

结果就好了,更加奇怪的是在设回成监听器,也没有问题了,我晕。

<listener>

<listener-class> org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

。。。。。。。。

       今天来了个老师讲一些人生规划、职业规划、工作、面试。讲的我有些郁闷,大道理谁都懂,但是…,哈哈,但是就很多了,要不谁都成伟人了呵呵,不是我消极,这些问题都是没有确切说法的,不想编程,true就是true,false就是false,这么写就能通过,那么写就是编不过,人活着,有很多可以选择,也可以不选择,这或许是为什么人活着很辛苦,呵呵,关于什么以诚待人啊什么的,谁都知道,谁都有一个评判,但是,做与不做,是不一样的人与人之间,都知道,付出就有回报,这都懂,甚至还做过试验,呵呵,可是,现在,我好像,没资格说这些了。我不知道还能不能回来。

补充: Error listenerStart的错误原因也可能是因为lib中有重复的jar包,将重复的jar包删除,问题解决

2006-12-21 星期四

因为在Struts中配置一个数据库连接池,折腾了一晚上,按照书上写的就是出问题,就在网上搜啊搜,还真是不好找,倒是有很多提出这样问题的帖子,但是都没回答到点子上,结果还是在网上找到了一篇文章,讨论是用Tomcat的连接池好还是用Struts的连接池好,结论是用哪个也不好,哈哈,其中有一段在Struts中配置连接池的实例,正好对我这个症状,哈哈,问题解决,甚是高兴。

下面是摘自这篇文章关于配置Struts数据源的内容:

 

Struts DataSource管理器在Struts配置文件(Struts-config.xml)里定义。这个管理器可以用来分发和配置任何实现了javax.sql.DataSource接口的数据库连接池(connection pool)。如果你的DBMS或者容器内置了符合这些要求的连接池,你可以优先选用它。


Jakarta的公共连接池实现 - BasicDataSource

  如果你的手头没有连接池的本地(native)实现,你可以使用Jakarta提供的公共连接池实现[org.apache.commons.dbcp.BasicDataSource],它可以和DataSource管理器"合作"的很好。另外,Struts还在它的util包里包含了一个GenericDataSource类,这也是一个连接池实现。但是这只是一个非常简单的实现方案,不推荐使用,因为它可能在Struts的以后版本中被BasicDataSource或其它的数据源实现替换掉。

  下面是一段Struts-config.xml配置文件中的数据源配置(使用GenericDataSource数据源实现),你可以更改相应的设置以适合你自己的系统。


<!-- configuration for GenericDataSource wrapper -->
  <set-property="autoCommit" value="false"/>
  <set-property="description" value="Example Data Source Configuration"/>
  <set-property="driverClass" value="org.postgresql.Driver"/>
  <set-property="maxCount" value="4"/>
  <set-property="minCount" value="2"/>
  <set-property="password" value="mypassword"/>
  <set-property="url" value="jdbc:postgresql://localhost/mydatabase"/>
  <set-property="user" value="myusername"/>
        

使用BasicDataSource数据源实现的配置方案如下:


<!-- configuration for commons BasicDataSource --> 
<set-property="driverClassName" value="org.postgresql.Driver" />
<set-property="url" value="jdbc:postgresql://localhost/mydatabase" />
<set-property="username" value="me" />
<set-property="password" value="test" />
<set-property="maxActive"  value="10" />
<set-property="maxWait" value="5000" />
<set-property="defaultAutoCommit"  value="false" />
<set-property="defaultReadOnly" value="false" />
<set-property="validationQuery" value="select COUNT(*) FROM market" />

 

出处:http://wenson.javaeye.com/blog/33316

值得注意的是上面两个数据源的配置中的property属性的值有些不一样,就是这个问题困扰了我一晚上。涨经验了呵呵,以后也很可能不会用Struts配置连接池。

    另外,还查得了如何查看sqlserver2000的版本的方法,如下:

SELECT @@VERSION

 

SQL Server 2000 版本和级别 @@VERSION 产品级别
SQL Server 2000 原始版本 8.00.194 RTM
Database Components SP1 8.00.384 SP1
Database Components SP2 8.00.534 SP2
Database Components SP3、SP3a 或 MSDE 2000 Release A 8.00.760 SP3
Database Components SP4 8.00.2039 SP4

原来以为是数据库没有装sp3的原因,通过上面的方法排出了这个猜测。

2006-12-20 星期三

昨天晚上装jbuilder2006遇上安装好后不能启动的问题,从网上找的解决问题的办法。

安装 JBuilder 后第一次可以成功运行,可是机器重新启动之后再次运行 JBuilder 时却每次只是看到 Logo 闪了一下就没有任何反应了。

        这种情况主要是由于 VM 的内存分配设置出了问题。可以在 X:\JBuilder2006\bin 目录下找到一个名为 jbuilder.config 的文件,打开该文件,其中有如下一行设置:

# Tune this VM to provide enough headroom to work on large
# applications
vmmemmin 32m
vmmemmax 75%
vmparam -XX:MaxPermSize=128m

将其改为:

# Tune this VM to provide enough headroom to work on large
# applications
vmmemmin 32m
vmmemmax 512m
vmparam -XX:MaxPermSize=128m

          即可解决上述问题。

 

       今天讲spring的MVC实现,理论上跟Struts差不多,只是换汤不换药,目前只是接触到了Spring的控制器和模型之间是如何联系的,Spring利用IoC实现了松耦合。这是比Struts先进的地方。

2006-12-19 星期二

继续学习Spring,在web上面的应用,spring的关键,是将业务类在spring框架中注册,也就是在xml文件中,其中包括类的属性的初始化,这有个属性注入的概念,常用的有构造方法注入,和set方法注入,还有一种不常用的接口注入,Class.forName();,注册以后,在控制器中使用的时候,通过spring框架来创建对象,然后我们来使用这个对象,其中这里有个很重要的要求就是,面向接口编程,要实现一个业务类,必须先定义一个该业务类的接口,然后让实现类实现它,这样做的好处可以隐藏实现类的内部实现,将想让客户见到的方法放到接口中,这样实现隐藏其他不想公开的方法。另外从客户的角度来看,客户只是得到了一个实现类的接口类型,并没有得到具体的实现类,甚至不知道实现类的名字,面向接口编程。

       另外,IoR是一种设计思想,将类的创建,管理,销毁,还有单一模式,这一档子事全部交给别人来负责,客户只拿来使用创建好的对象,为客户带来了简便,使更多的精力放到业务放到业务处理上,另外,也带来了代码的松耦合。

       一天下来还是头疼,不知怎么搞得,感冒还是没好利索,今天抽时间将编程思想的对象初始化看完了,接下来计划复习Struts。

2006年12月20日星期三

2006-12-18 星期一

今天接触到了Spring,我喜欢的名字,呵呵,Spring应用框架是应用于业务层的框架,要求面向接口编程,将类与类之间的关系进行解耦,Spring最基本的就是IoR(Inversion of Control)翻译过来是控制反转,是一种设计模式,使应用程序逻辑外在化,将创建对象,初始化,销毁交给spring来管理,通过动态加载来使用对象。

       好久没有打代码了,今天问起strues的东西,都有点陌生了,不行,得好好复习不行。今天一天下来头疼,不知为什么,精力太集中了?呵呵。

       今天发现有个人去工作了,哦天,呆两天不会来再哦天。

       头疼,回家。

2006年12月17日星期日

小试了一下baidu的blog

无意中发现baidu的blog可以从别的地方搬家,哈哈,拉拢我们的好办法,决定试一下,哈哈转过来了,还不错,除了因为我原来的页面有背景,字体设成白色的了,在这边显示不出来,让我甚是不爽,改了半天,这下终于行了,还不错。

感觉baidu的速度还是相当快的。/

偷来的学习

类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。

类与类之间存在以下关系:

(1)泛化(Generalization)

(2)关联(Association)

(3)依赖(Dependency)

(4)聚合(Aggregation)

UML图与应用代码例子:

1.泛化(Generalization)

[泛化]

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。

[具体表现]

父类 父类实例=new 子类()

[UML图](图1.1)



图1.1 Animal类与Tiger类,Dog类的泛化关系



[代码表现]



  1. class Animal{}
  2. class Tiger extends Animal{}
  3. public class Test
  4. {
  5. public void test()
  6. {
  7. Animal a=new Tiger();
  8. }
  9. }


2.依赖(Dependency)

[依赖]

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

[具体表现]

依赖关系表现在局部变量,方法的参数,以及对静态方法的调用

[现实例子]

比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作

[UML表现](图1.2)



图1.2 Person类与Screwdriver类的依赖关系



[代码表现]

  1. public class Person{
  2. /** 拧螺丝 */
  3. public void screw(Screwdriver screwdriver){
  4. screwdriver.screw();
  5. }
  6. }


3.关联(Association)

[关联]

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

[具体表现]

关联关系是使用实例变量来实现

[现实例子]

比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司

[UML图] (图1.3)



图1.3 公司和员工的关联关系



[代码表现]
  1. public class Company{
  2. private Employee employee;
  3. public Employee getEmployee(){
  4. return employee;
  5. }
  6. public void setEmployee(Employee employee){
  7. this.employee=employee;
  8. }
  9. //公司运作
  10. public void run(){
  11. employee.startWorking();
  12. }
  13. }
(4)聚合(Aggregation)

[聚合]

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

[具体表现]

与关联关系一样,聚合关系也是通过实例变量来实现这样关系的。关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。

[关联与聚合的区别]

(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系,而不是聚合关系,因为人不是由自行车组成的。

聚合关系涉及的两个对象处于不平等的层次上,一个代表整体,一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系,因为主板是电脑的组成部分。

(2)对于具有聚集关系(尤其是强聚集关系)的两个对象,整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在,它的生命周期依赖于整体类的对象的生命周期,当整体消失,部分也就随之消失。比如张三的电脑被偷了,那么电脑的所有组件也不存在了,除非张三事先把一些电脑的组件(比如硬盘和内存)拆了下来。

[UML图](图1.4)



图1.3 电脑和组件的聚合关系



[代码表现]
  1. public class Computer{
  2. private CPU cpu;
  3. public CPU getCPU(){
  4. return cpu;
  5. }
  6. public void setCPU(CPU cpu){
  7. this.cpu=cpu;
  8. }
  9. //开启电脑
  10. public void start(){
  11. //cpu运作
  12. cpu.run();
  13. }
  14. }




[参考资料]

1.《Java与模式》(阎宏 编著) 第2章 统一建模语言UML简介
作者写的很好,偷来了就,希望不会被追究,原始链接:http://www.javaeye.com/topic/37302

2006-12-17 星期日

突然感觉自己是个木讷的人,还矫情的写写心情,呵呵,女不女人。时间过的真快,天气已经很冷了,开始越来越担心,这个年该怎么过,话虽说,车到山前必有路,但还是免不了不知如何是好。想想,我想要的,其实我也不想太奢侈,自己的路真想自己走,就应该自己走,可是...哪有那么多可是,男人一点。我该表明我的观点,我的立场,唉,头晕/跟着感觉走吧。

2006-12-14 星期五

Oracle数据库课结束了,老师上完课坐晚上的火成回沈阳,专业Oracle数据库老师,当老师还是不错的嘛,呵呵。

下周就是Spring/冬眠了呵呵,接着Struts继续研究代码的阶段,也不能单纯的研究代码不是,MVC,设计模式,面向对象,这是最基本的,好好研究编程思想吧。

自己好好学吧,靠别人是不行的,也不要多管闲事。

2006-12-13 星期三

数据库,存储过程,游标

没什么具体写的,心情不好,身体也不好,狗日的,回家。

今天的自讲因为机子连接的问题取消了。

2006-12-11 星期一

这周接着讲Oracle,

今天脖子特别疼,还比较困,老师一讲就犯困了,

晚上还好,郭斌斌讲了继承,还不错,蛮有收获。哎呦脖子疼,刚刚发现手机欠费了,买了张充值卡充上了,还是说我欠费不让我打电话,真是气死我,狗日的移动。

2006-12-12 星期二

脖子疼好些了,嗓子又肿了,昨晚一晚上没睡好,还挺厉害,中午买了点消炎药,昨晚开玩笑说,以后我挣的钱还供不上吃药的,呵呵,还活着干啥。

数据库讲了一些如何配置,然后是一些sql语句oracle独有的,老师的水平还是厉害的,看得出来,就是有些腼腆哈哈,感到oracle还是很强大的,有很多它独有的东西。要想学好它可是要费一段功夫的。

昨晚的讲课进行的不好,感觉的在糊弄我们,也没说什么,唉0能说什么呢,今天邓讲内部类,挺麻烦的东西。

2006-12-8 星期五

最后一天uml,行为模式,Chain of Responsibility (COR)职责链模式,Command模式,Iterator迭代器模式,Mediator模式,Memento备忘录模式,Visitor访问者模式,Strategy策略模式,State状态模式。

COR模式,职责链模式,定义一个接口,有一个处理方法,有一个该接口类型的字段,并且有一个该字段的set设置方法,不同的职责分别实现该接口,处理方法判断是否是自己的方法,如果是,处理,如果不是,利用接口里定义的字段访问下一个职责的处理方法,在客户端,建立各个职责的对象,并用set方法设置下一个职责是哪一个,最后调用第一个职责的处理方法。

Command模式,国王发好施令,定义一个命令接口,用于发布命令,实现该接口,有一个士兵类属性,构造器负责传入士兵对象,用于让那个士兵去执行该命令,士兵类,士兵类里面有具体执行命令的方法,国王类,有发布命令的方法,在客户端,实例化一个士兵,实例化一个发布命令类,将士兵对象作为参数传给命令类,实例化一个国王对象,将命令对象作为参数传给国王,国王发号施令。

Iterator迭代器,就像集合里面有个方法可以得到Iterator对象,用于遍历、排序。

Mediator媒体模式,由多个类需要调用,将这几个类组合到一个类,在这个类里面有每个类类型的属性,让客户端实例化这个类,不需关心其他类。

Memento模式,建立一个跟已有的类一模一样的类,用于保存在某个时刻的值,防止后悔,呵呵!已有类里面有个memento类的对象。

Visitor访问者模式,解决了泛型要解决的问题,利用多态,多态真是太有用了,哈哈,我觉得很多设计模式都用了多态特性。

Strategy策略模式

State状态模式

今天下课给大家讲了讲第三章,比较简单,但是不够自信,怕自己说错了,呵呵,还好,大家都分了一章,下星期都安排好了,安排好后几个人又开始玩cs了,怎么能这样呢,还不好意思说他们,唉…

2006-12-6 星期三

设计模式,创建型模式,工厂方法,Builder模式

工厂方法就是建一个工厂类,这个工厂类负责生产对象,生产需要的对象,生成什么样的对象由调用工厂方法的对象决定,也可以由xml文件配置,就像在struts里面配置action。随着工厂类的增多,可以将工厂类抽象,然后由子类继承。

Builder模式,可以单独有一个类负责另一个类的对象的创建。我的理解,可以

Interface Car{};

class BuildCar

{

class RedCar implements Car

{}

Public Car getCar()

{

return new RedCar();

}

}

就像10-12日的那个例子,我想这就用了Builder模式。另外,Builder模式还可以有一个叫导向器的类Director,它负责怎样创建这个对象,适用于几个类的属性基本相同,只有少许不同,这样用到导向器,实现Builder类的重用。

基础太重要了,高楼大厦的基石,好好看java编程思想。老师建议我们每个人一人一章,然后负责给每个人讲解,这样的学习效率是很高的,再有,看明白了跟讲明白了是两个层次,可是没人相应,下课我问大家觉得老师的提议怎么样?没人理我,呜呜。大家不想学好么。

2006-12-7 星期四

设计模式,构建型模式最后一个:Singleton单件模式

保证一个类只有一个实例存在,方法是隐藏构造方法,在类的内部构造一个静态的实例,然后建一个静态方法返回这个实例,其中一个知识点是,静态变量是在main方法执行前初始化的,也就是在程序运行前初始化的。

结构性模式:适配器模式Adapter,桥接模式Bridge,组合模式Composite,装饰模式Dectorator,外观模式Fa ade,享元模式FlyWeight,代理模式Proxy。

Adapter模式,是多重继承的一种替代方法,通过继承一个类,组合一个类,来实现。

Bridge模式,将要执行的业务方法抽象出来,建立一个桥接接口,通过实现该接口用于不同的业务,然后使用该实现类。

Composite模式,多个相同的对象要调用它们的一个方法,单独写一个类,里面有个该对象的类的类型的集合,里面装有许多对象,有个方法,利用循环依次调用每个对象的方法,宗旨是让类的使用者更方便。

Dectorator模式,避免过深继承的一种方式,目前有一个类,但业务需求改变导致这个类有少许变化,如果继承这个类,将导致无限制继承,办法是建立一个这个类的兄弟,实现新的业务需求,然后调用兄弟的方法。

Fa ade模式,用于业务操作十分复杂,为了实现对复杂性的封装,建立一个类,建立一个面向外界的接口,类的使用者只需调用该接口就搞定了,而背后复杂的逻辑不必去关心。

FlyWeight模式,跟单件模式有类似之处,都是为了减少重复对象的创建,这个模式是,建立一个缓存,将已建立的对象放入缓存,当再次需要的时候在缓存中查找是不是已经存在了该对象,如果存在,直接返回,否则创建,这样节省了内存空间,这样的适用于有许多的小型对象的适用。

Proxy模式,用于不同用户有不同操作权限的类似情况,有一个类负责业务逻辑的执行并不负责用户是否具有权限的判断,这件任务由另一个类负责。

以上设计模式的理解,用自己的话写了一下,希望加深理解。

明天可能要给大家讲第三章,得好好准备准备,争取完美,嘻嘻。

2006-12-4 星期一

今天开始上uml课,老师还是很厉害的。

其中一个很容易混淆的关系就是一个依赖关系,一个关联关系,依赖关系就是参数关系,一个类的对象作为一个参数在另一个类里被使用,而关联关系,是一个类的对象作为另一个类的一个属性或者集合属性来使用。

另外,在实际设计开发中,应尽可能少的使用继承,完全符合继承逻辑关系的才使用继承,以免造成代码的混乱,关于多重继承在java中不直接被支持,采用内部类或者关联关系来实现。

在C++ 中有个名词叫友元,一般情况下,子类继承父类,子类是不能访问父类的私有成员的,而如果一定要访问,就在父类中将子类声明为父类的一个朋友,这样子类就可以使用父类的私有成员,这就是友元,在java中没有这样的概念。

Java基础知识很重要,要注意复习,进一步掌握。

2006-12-5 星期二

接着uml,接下来就应该是设计模式了,这部分都是些理论的东西,基本不用写代码,一些画uml图的含义,感觉记不住,只能到时候用到的时候,再来查查资料了,uml很重要/

感觉自己掌握的知识太欠缺了,要好好掌握基础才行。

面向对象程序设计实际上进行的是创建新的数据类型。也可以认为,类型决定了接口,而类是该接口的一个特定实现。值得好好理解。

类描述了具有相同特性(数据元素)和行为的对象集合。

2006年12月4日星期一

2006-12-3 星期日

呵呵,时间,时间过的真快,7月,8月,9月,10月,11月,12月。一天一天,稀里糊涂过来了,真快,为什么总是感叹快呢。大家都这样,呵呵。/盼望着,有一天,我的blog重新开放,到时候,我就应该解脱了,应该恢复以前的那样,应该......做梦,梦见一切都雨过天晴了,美好了,大家都很高兴了,我就也高兴,可是......睁开眼发现,头顶的天花板,一切还是现实,痛.....做梦,梦见战火又起,天啊, 梦着梦着,痛得惊醒,再也睡不着......昨天,她和朋友短信聊天又哭了,真不知道怎么去安慰,有什么办法呢,谁能告诉我,我这个无耻懦夫有时候甚至极端的想,羡慕电影里没有父母亲人自己一个人,自己努力,也蛮快乐的。唉...也许真的家家有本难念的经。人说像这样的家庭真是不好找了,而我这样的也不好找,呵呵,逃避,想法设法的逃避,可这不是办法,你逃能逃到哪去呢,出走了,你狠的下心么/常常说自己冷血,却狠不下心,煎熬着......我不想这么活着,我想抬起头!!!

2006-12-1 星期五

今天因为老谢有事,决定uml换老师了,说是博士,呵呵呵,博士不博士无所谓的,只是个头衔嘛,中国的博士就是这样,呵呵,下周见,今天上自习,哈哈上自习好,这两天完善了一下我的bookshop,丑陋无比,五脏俱全,哈哈,还是得实践,像老谢说的,得自己做,不自己做永远变不成自己的。

2006-11-30 星期四

转眼又到月底了,过的真快

今天老谢发威,问oracle老师到底怎么回事,问我们干嘛嘛,既然培训中心做了换老师的决定,肯定有为什么换的足够理由阿,因为下午有事,今天的课没上,上自习,上自习挺好,自己做做东西,复习以前的内容。

2006年12月3日星期日

2006-11-29 星期三

上uml,令人惊奇的是竟然是老谢给我们讲,应该说是走运,学校就那么两个牛老师,能不能碰上他们给讲算是运气了,首先先训了我们一顿,我们这个班换老师不止一次了,其中老师是有问题,换个角度讲,我们同学有没有问题,是有问题的,没有用上十二个劲儿的去投入到学习中,再好的老师,自己不努力也是没有用的,so我们首先得努力。

讲uml的语法,用例图的画法,做了道题目,这部分内容跟编程不一样,需要思考,想周全,明天老师看看怎么做这个练习。

2006-11-28 星期二

今天没老师,数据库的老师没来,还比较嫩,回去再修练修练。

自己上自习,下午答了个j2ee的测试,感觉有点陌生,一是本来课程目标就是给我们一个总体性了介绍,二是这些天私下里也没看j2ee方面的东西。测试还没有涉及到web services,这部分知识应该是高端的了。

Oracle数据库先搁置,明天开始,uml在j2ee平台中的具体应用,这个是很重要的,涉及到开发软件的流程,如何设计、规划,要好好学。

2006-11-27 星期一

PL/SQL、procdure

最简单的块结构定义、循环loop…if…then exit end loop\while …loop…end loop\for i in low_bound..high_bound loop …end loop三种方式

Create procdure p_proc_name(……)

as

begin

……

End;

里面的参数分为in和out两种,老师就因为这个折腾了一个下午,到最后还是没讲清楚,我的理解,如果是out,即为输出参数,既然是输出参数就要指定输出给谁呢,比如我定义个varchar型的v_name ,执行存储过程的时候告诉它我用v_name来接收参数,如果是in out,则这个v_name 可以有初值作为传入参数传入,总之,既然是输出参数,就必须有一个变量来接收这个参数,所以不能以’abc’这样的常量传入。

不知道是这个理儿不,呵呵,下午,老师好像也蒙了,哈哈。

老师自己搞不通,排错的过程浪费了大部分时间。

还是要问,培训中心是怎样衡量一个老师的。

这部分数据库的知识,基本上跟以前的知识没有联系,可不能因为没了联系,而把前面的丢了,熊瞎子掰苞米,掰一个丢一个可不行,一定要注意学习安排。

自己弄个例子做做。

2006年11月26日星期日

2006-11-24 星期五

今天介绍了索引和锁,索引分为唯一索引,非唯一索引,位图索引,函数索引,锁讲了半天也没弄太清楚,行级锁,表级锁,默认作insert、update、delete时行被锁定,不能由其他客户端更改,也可以设查询锁,在一个用户查询的时候别人不能修改,在select语句最后加for update,关于数据库的学习,一周过去了,大家都认为这个老师实在是不怎么样,来这里培训近三个月了,给我的感觉,这里的老师能力基本都不咋地,不知道天下培训都是这样,这样当然能为培训节省成本,但这将是个恶性循环,,培训要对老师的能力素质严格把关的。

2006-11-22 星期三

感冒好些了,因为吃了新康泰克,所以也发困了,昏沉沉的。

前面,老师在边折腾边讲那写sql语句,嗷呦,真实有些费劲,老师不觉得脸红么?

2006-11-23 星期四

一直在埋怨老师能力太次(确实很次),学习这东西,是两方面的,在老师,在学生,老师好好教,学生好好学,哈哈,废话。

但是,老师也得过得去不是,老师最重要的一个素质应该实事求是,知之为知之,不知之为不知之,哈哈,非常明显,老师在上课之前没有好好的准备,否则不会犯这种弱智的错误,垃圾,娘的,没有一个正式些的例子,瞎起名,连自己都不知道自己用过什么名了,实际工作中就是这么做的么?

2006-11-21 星期二

Today

如常

感冒的难受

好像因为提意见,老师开始改变了一些授课方式,不过好像越发不清楚,一会儿讲讲这儿一会儿讲讲那,一点也不系统不完整,唉…罢了。

2006-11-20 星期一

开始Oracle,安装,初识这东西,也不知道这东西跟sqlserver有啥不一样,问老师了一下,说是oracle更安全一些,没了么?郁闷!

老师说我们的日志,没有东西,每天十分钟就这么两行,哈哈,有时候真的是没有时间,有时候真的是没啥好写的,一天就是那样,要是每天都那么高涨,进步,那真的是伟大了,俺们又不是文学家,不记流水账,怎么办,还写成流传千古的文章,那也不来这学什么java语言了,我们的语言就够活了,哈哈,牢骚一下。

2006-11-19 星期日

做了个webServices的实例,服务端是纯java写的,然后用.net写的客户端调用,真是过瘾,还有很多资料要看,谢老师的资料很实用。

今天Struts课就算结束了。

但还要好好看资料。加深理解。

听谢老师的课感觉就是不一样,一个问题是怎样出现的,是怎样思考的,是怎样想办法解决的,而又会有什么问题……,不是给我鱼,是让你知道怎样钓鱼的。

老师跟老师是不一样的阿,哈哈,有些老师在来上课以前没有好好的思考这么课该怎么讲更好,只是懒惰的找一些现成的讲义,幻灯片,删删改改就成自己的了,然后就来课堂上拿来念。呜呼

2006-11-18 星期六

刚刚自己手工写了个简单的HelloWorld级别的ejb,

感觉:1、一定要仔细,就是仅仅差一个字母,就错,一定要仔细,用老师的话说,心要静

2、还是因为马虎,把实现bean中的ejbCreate()方法给忘写了

3、ejbCreate()方法必须抛出RemoteException异常,否则报错

4、home接口中的create()方法必须抛出RemoteException、CreateException两个异常,否则报错

5、remote接口的方法也要抛出RemoteException异常

哈哈,看到ejbc successful.真是高兴。

另外对于命令java weblogic.ejbc,好像是weblogic的命令,不知道它做了些什么

明天,最后一天谢老师的课,要讲web serveices,真是来劲

2006-11-17 星期五

Today讲了很多内容,真是要好好的来消化一番,从最基本到利用工具开发远程方法调用RMI讲了个清清楚楚,接下来要消化了。

自己写一个远程方法调用

需要有一个远程方法的接口,在客户端和服务器端都要有,然后在服务器端实现这个接口,然后在webLogic中部署,需要有这么一命令行

build.cmd

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

set SERVER_CLASSES=c:\serverclasses

javac -d %SERVER_CLASSES% IHello.java HelloDemo.java

java weblogic.rmic -d %SERVER_CLASSES% demo.HelloWorld.HelloDemo

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

然后在weblogic配置页面,启动和关闭页面添加要加载的类

其中在main方法里实现了向jndi添加Hello对象

测试代码D:\刘朝春\test\firstrmi

另外,在weblogic中配置数据库驱动(不用它自带的驱动),目前就知道这一个方法,不知道还有没有更好的

我们可以在C盘根目录下建立一个文件夹:JDBCSQLSERVER2000。把这三个文件拷贝过去。

在目录C:\bea\user_projects\domains\mydomain下找到文件startWebLogic.cmd,这是WebLogic启动的时候第一个执行的文件,把它打开。

第一行加上:

set CLASSPATH=.;c:\JDBCSQLSERVER2000\msbase.jar;c:\JDBCSQLSERVER2000\msutil.jar;c:\JDBCSQLSERVER2000\mssqlserver.jar

以设置CLASSPATH路径。

路径C:\bea\weblogic81\server\bin下的文件setWLSEnv.cmd是工作窗口设置classpath用的,也需要在第一行把上面的语句加上去。

完整的:

set CLASSPATH=.;C:\bea\weblogic81\server\lib\*;C:\bea\jdk141_03\*

set CLASSPATH=%CLASSPATH%.;C:\serverclasses

set CLASSPATH=%CLASSPATH%.;c:\JDBCSQLSERVER2000\msbase.jar;c:\JDBCSQLSERVER2000\msutil.jar;c:\JDBCSQLSERVER2000\mssqlserver.jar

我只在startWebLogic.cmd下设置了Classpath就在管理界面配成功了,不知道在setWLSEnv.cmd有什么用?

发现webLogic好像不读系统变量?

2006-11-16 星期四

企业级javaBean,熟悉weblogic,远程方法调用,jdbc数据源

远程方法调用要用到jndi,远程方法调用在tomcat里不能实现,客户端需要有一个远程方法的接口,服务器端将远程方法在服务器的jndi上注册。最后客户端通过jndi查找强制转换成接口名实现远程方法调用。

2006-11-14 星期二

今天上午Struts算是基本上讲完了,还有一些零碎的东西要自己看,老师准备剩下的三四天讲一下EJB和webLogic,这个周六周日要上课了。

2006-11-15 星期三

企业级JavaBean,远程方法调用,在weblogic中配置连接池,配置数据源,操作数据库,一天天过的真快,时间不够用了,不知怎么搞得还有点感冒,难受,有点不支了。

该怎样……

多有深意,呵呵……

2006年11月25日星期六

2006-11-14 星期二

第八,在配置连接池的时候,如果测试不通,而且没有任何异常,请检查数据源xml的配置,特别是文件名的后缀名问题,比如写成了book.xml.text

今天讲了讲Sruts配置文件,可以有多个struts-config.xml,在web.xml中设置,还有就是可以设置一个虚拟ActionForm,以解决大量页面将产生大量的ActionForm,另外解决这个问题的方法就是在jsp页面中设置一个隐藏标签,以在ActionForm中区分是哪个jsp页面的事件。

虚拟ActionForm,就是用DynaActionForm类,在struts-config.xml中配置ActionForm属性,….

2006-11-13 星期一

今天老师还没回来

做老师的网上书店的例子

发现几个问题,想记录一下,以后引以为戒。

一是,在Struts-config.xml中

映射ActionForm

须这样写

<form-beans>

<form-bean name="booklistform" type="bookshop.form.BookListForm"/>

<form-bean name="shoppingform" type="bookshop.form.ShoppingForm"/>

</form-beans>

这样写是不正确的

<form-beans>

<form-bean name="shoppingform" type="bookshop.form.ShoppingForm"/>

</form-beans>

<form-beans>

<form-bean name="booklistform" type="bookshop.form.BookListForm"/>

</form-beans>

二是,ActionForm中的属性必须和jsp页中的标签一一对应,否则会出错。

三是,在标签中一定注意格式,属性值的双引号不能缺。

四是,request. getAttribute()和request. getParameter()的区别

五是,不能在自定义Tag里或在Servlet里输出Struts标签

六是,HashMap中得到所有的键值

//HashMap book = (HashMap)(super.pageContext.getSession().getAttribute("shpping"));

Object[] strid = (book.keySet().toArray());

七是,在jsp页面中使用userbean不需在web.xml中映射,直接

<jsp:userBean id=”” class=””></jsp:userBean>

Servelt要在web.xml中映射

在Struts中,ActionForm和Action都要在Struts-config.xml中映射

八是,脑袋不转了,睡觉去,再整理。

2006-11-10 星期五

这几天一直在休息,老师出差了,昨天研究了在tomcat下配置jndi,发现在tomcat5.0和5.5下配置还有些不一样,老师是使用得5.0,按照老师那样配在5.5下就是不行,把下面这段xml放在tomcat的server.xml中的<Host></Host>标签里面

<Context path="/book" docBase="d:/bookdemodata" debug="0" reloadable="true"> 

<Resource name="jdbc/book" auth="Container" type="javax.sql.DataSource"/> 

<ResourceParams name="jdbc/book"> 

<parameter> 

<name>factory</name> 

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 

</parameter>

<parameter> 

<name>driverClassName</name> 

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> 

</parameter>

<parameter> 

<name>url</name> 

<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=book</value> 

</parameter> 

<parameter>

<name>username</name> 

<value>sa</value>

</parameter> 

<parameter>

<name>password</name>

<value></value> 

</parameter> 

<parameter>

<name>maxActive</name>

<value>20</value>

</parameter>

<parameter> 

<name>maxIdle</name>

<value>10</value>

</parameter>

<parameter> 

<name>maxWait</name>

<value>-1</value>

</parameter> 

<parameter>

<name>removeAbandoned</name>

<!-- Abandoned DB connections are removed and recycled -->

<value>true</value>

</parameter>

<parameter>

<name>removeAbandonedTimeout</name>

<!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->

<value>60</value>

</parameter>

<parameter>

<name>logAbandoned</name>

<!-- Log a stack trace of the code which abandoned -->

<value>false</value>

</parameter> 

</ResourceParams>

</Context>

如果是在5.0下就没有问题,测试通过,而在5.5下面这样写就有错误了,到网上搜了些资料,说它们两个配置还是有些不一样的

在tomcat5.5下conf\Catalina\localhost目录下新建一个针对自己项目的xml文件

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/addressbook" docBase="/addressbook" debug="0" reloadable="true"> 

<Resource

auth="Container"

name="jdbc/address"

type="javax.sql.DataSource"

password=""

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

maxIdle="10"

maxWait="100000"

username="sa"

url="jdbc:microsoft:sqlserver://localhost:1433;databasename=addressbooksample"

maxActive="20"/>

</Context>

文件名叫addressbook.xml这里的文件名是随便起的,在tomcat启动的时候会自动加载这个目录下的所有xml文件,OK 这样就调试通过了,而且看起来这样配置要比在5.0下配置简单。

还有一个方法

就是把sql的配置资源

<Resource

auth="Container"

name="jdbc/address"

type="javax.sql.DataSource"

password=""

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

maxIdle="10"

maxWait="100000"

username="sa"

url="jdbc:microsoft:sqlserver://localhost:1433;databasename=addressbooksample"

maxActive="20"/>

放入conf文件夹下的Context.xml中的<Context></Context>标签内,就可以了

再有就是在java代码中取得Connection的时候就不能像原来这样写了

Context initContext = new InitialContext();

Context envContext = (Context)initContext.lookup("java:comp/env");

DataSource ds = (DataSource)envContext.lookup("jdbc/addressbook");

conn = ds.getConnection();

这样写我试过也不行,tomcat会有异常

这样写就没错

Context initContext = new InitialContext();

DataSource ds = (DataSource)initContext.lookup("java:comp/env/jdbc/address");

conn = ds.getConnection();

经过一番研究试验,终于搞定了,但是其中玄机还不知是为何

像这个东西"java:comp/env"是啥意思(JNDI查找的Tomcat的默认名字)

Oh.god,我弄错了

Context initContext = new InitialContext();

Context envContext = (Context)initContext.lookup("java:comp/env");

DataSource ds = (DataSource)envContext.lookup("jdbc/address");

conn = ds.getConnection();

和这样写

Context initContext = new InitialContext();

DataSource ds = (DataSource)initContext.lookup("java:comp/env/jdbc/address");

conn = ds.getConnection();

都没错,都能出来数据

2006年11月9日星期四

2006-11-6 星期一

今天讲完了自定义标签后,老师演示作了个网上书店的简单但五脏俱全的Struts例子,下午就没有讲课,因为老师明天出差要准备准备嘛,自己练习,几个人去书店逛了一圈,哈哈哈,因为老师说那本孙卫琴的Struts书不错,大家都跑去自己买了本回来,老师的影响力真是大阿,哈哈。

2006-11-5 星期日

一连一周没有休息,这几天有点累了,得休息休息了,可能是习惯了,每五天就休息两天,坚持,工作了比这可累多了。

2006-11-3 星期五

换老师的第二天,老师很忙,又开会又接待客人的,不过讲的相当好,让人豁然开朗,有理有序,真的是不一样啊,哈哈。今天讲了struts里的一些主要的标签,并作了例子,老师讲在web标签方面做得好的是微软的.net,深有体会,asp.net比这个方便多了,不过在这之前一点不知道他的标签的实现原理,是怎样前台和后台联系的,现在初步了解了一些,原来每个标签通过xml文件影射在后台对应一个类。这两天下来,做个两三个Struts的例子,一个页面的,三个五个页面的,没有用集成开发工具,基本都是用JCreater写的,发现必须清楚这里面的来龙去脉,必须非常仔细配置每个资源文件,有一点错误就不能正常运行。而且是让人感觉莫名其妙的错误。

2006-11-4 星期六

今天没有休息,因为老师下周要出差,接着讲Struts的知识,要想深入理解掌握成为自己的东西必须多自己敲代码多练习。

2006-11-2 星期四

今天换老师了,就是不一样啊,对Struts有了一个清晰的认识,对培训中心还不是预期的很失望,有新好老师了,好好努力学习吧,有这样的机会可不多。 Struts是一个框架,用老师的比喻就是它把一个单位办公各个部门需要的房间都盖好了,而每个部门有几个成员,怎么处理业务由我们来决定,这就方便了我们开发。

2006-11-1 星期三

晚上十二点了,第一个Struts程序弄到现在还是有一点问题,今天的课开了个Struts头儿,听得一蹋糊涂,就自己看书,明天可能换老师,要加倍努力了,好了,睡觉去。

2006-10-31 星期二

今天讲

2006年10月31日星期二

2006-10-30 星期一

今天开始讲Xml,讲了一天算是完了,什么没听着,真是没有重点,下午下课跟因此而郁闷的郭去书店买书了,唉,真是郁闷。

2006-10-27 星期五

今天,J2EE Web组件编程技术这门课的最后一天,讲了两个例子,接触到了MVC设计模式,M-Model V-View C-Controller,例子用到了javaBean + Servlet + jsp

跟在学java基础的时候,小崔讲的一样,现在更深入的更实际的理解了他那时候说的MVC,哈哈,那时候说MVC,模糊。

下周开始J2EE Struts 及 XML,呵呵,真的希望不再是这个老师讲了,真是受不了,迟到,讲课东拉西扯,80%废话,没有重点,敷衍提出的问题,不实事求是,我怀疑这家伙是不是做过开发,就会念幻灯念课本,当然也有好的一面,…..没有特别好的。

在这两个星期里,认识jsp,熟悉html、javaScript,熟悉jsp,javaBean,Servlet,MVC,还是有不少新的东西,并且项jsp、html以前没什么基础的,现在也把那些常用标签拿来就写了。

2006-10-25 星期三

早上讲对象初始化的过程,首先定义一个对象的引用,然后开辟内存空间,然后给成员变量初始化,然后把这个内存空间的指针给开始定义,老师这么讲,那么象String s = “string”;就直接分配空间存放”string”,等在网上问问,我怀疑它间接调用了String的构造方法。

上午开始讲Servlet,我的理解,Servlet就是一个在Tomcat这样的Servlet容器中执行的类,跟jsp页面没有必然联系,跟javaBean不同,javaBean好像必须通过jap利用<jsp:useBean….<jsp:setProperty….来使用。

在有就是在web.xml中映射Servlet时

<servlet>

<servlet-name>myservlet</servlet-name>

<servlet-class>MyServlet.FirstServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>myservlet</servlet-name>

<url-pattern>/firstservlet</url-pattern>

</servlet-mapping>

一,上面必须被包含在<web-app></web-app>中

二,在<url-pattern>/firstservlet</url-pattern>标签中,firstservlet前必须有”/”

2006-10-24 星期二

看到了第一个最简单的javaBean的例子,一直想把javaBean跟asp.net C# 中的什么东西联系起来,但一直没有想到,在jsp中的用法<jsp:useBean name=”” ……有点像asp.net 中的控件在其中的表现形式,但是他没有一个单独的类,它是整个页面后台类(姑且先这么叫)的一个成员,不知道jsp里有没有类似DataGrid的控件。

然后是利用javaBean来连接数据库,连接数据库,用<jsp:setProperty 来设置javaBean的属性,不知道asp中也有类似javaBean的属性,等问问他们/。

学生::老师,我的猫为什么不能吃食呢?

老师(看了一眼):我叫你把猫做成白色的你怎么能做成黑色的阿?

学生(晕):猫吃不吃食,跟是白猫黑猫有关系么?

。。。。。。

2006-10-23 星期一

讲了Session,开始又重复了那个判断Cookie的逻辑,有老师说的那么难么?纳了闷了,然后开了个javaBean的头,无聊。

2006年10月30日星期一

2006-10-26 星期四

学了javaBean和Servlet,在想它们两个有什么相同有什么不同,想到的

2006年10月22日星期日

2006-10-21 星期六

今天用javaScript写了一个超级简单的邮箱登录的jsp页面,发现javaScript太不容易调试了,一个简单的逻辑错误,竟然困扰了我一天,转了好几个圈,发现一个 问题:无论是在javaScript中还是在java中有关数组 字符串的length属性,它是一个属性,而不是方法,返回数组的字符串的长度,这里,关于数组返回的时数组初始化时定义的长度,而不是数组中所包含对象的个数不知道写javaScript有什么好的工具对了昨晚上发现IE7正式版发布了,立马下了一个体验了一下,给我印象最深的就是它的英文字体了,两字,漂亮,越看越喜欢,哈哈哈哈 生活还在继续祈祷...

2006-10-21 星期六

今天周六在家坐了一天昨天晚上装Eclipse MyEclipse Jdk5 Tomcat Mysql,好家伙好一顿折腾装Mysql的时候因为我的系统盘空间先天空间小才5个G,现在只剩几百兆了,为了不造成危机,我把mysql 装载别的盘了,结果装完后不能用,起不来,其实在安装的时候看到了,人家写的很清楚,如果你不是默认安装,必须在my.int文件里加入两句话才可以,加上去了,搞定。装jdk的时候 因为我已经装了jdk1.4,但是在从没有配过环境变量,这次装上5后,自己动手配了一下,加深记忆,就是连个变量,一个path用于指名java的exe文件的路径,也就是在那里能找到java.exe javac.exe编译嘛 执行嘛,也就是jdk下的bin文件夹,path=C:\sun\appserver\jdk\bin;二是classpath,用于指定java类库的路径,也就是存放那堆jar文件的lib文件夹,classpath=C:\sun\appserver\jdk\bin;.;,其中.;表示所执行代码所在的当前路径。装Tomcat的时候装Tomcat的时候,必须注意端口号的设置,不能跟其他程序已经占用的端口冲突,sqlserver2000是1433,IIS是80 8080,mysql3306,我把Tomcat弄了一个8081,呵呵。还有就是Tomcat的默认安装目录好长,最好弄短点,因为以后可能会经常查看它,我就吃了这亏了,不得不弄了个快速启动,呵呵/MyEclipse啥时候给各中文包阿,得好好学英文了,呵呵。

2006-10-20 星期五

Today 在浪费时间 其实现在已经是周六了,上面一行是昨天在老师非常认真负责的又极其无聊的讲课的时候写的,威慑呢没这么说呢,不知道是老师认为我们水平在地平线下阿还是就是那样的讲课风格,一个if()else()的问题他能讲半个小时,来来去去重重复复,嗷呦,听得脑袋都炸开了,最后一同学在cmd上用net send给我发了一条消息说:简单的问题讲复杂了。呵呵,反倒晕了。昨天一天下来,感觉就是一天讲的内容接触的内容真是没什么,就说了那么几个简单的关键字的用法,其实这么说是不公正的,所涉及到的这些简单的东西是相当重要的,像我这样的没有html,asp的基础学起来什么都是新鲜的,所以我还是比较喜欢看java代码。

2006-10-19 星期四

讲了jsp,安装Tomcat,真他娘的麻烦,重装了五六次,才凑和着搞定,也不知道哪得毛病,老师看样子也力不从心,配置真麻烦,让后讲了一写jsp的标签,如果有asp的基础学jsp肯定很简单,也不知道老师是按照什么讲的,一会儿讲讲这个一会儿讲讲那个,真是晕。 晚上看《java编程思想》里面内部类的总结,内部类的用途或者说好处,一是可以为其外部类提供一个被访问的窗口,因为内部类可以无限制的使用其外部类的所有资源,而是可以实现多继承,一个类只能继承自一个类,而如果在外部类已经继承了一个类,内部了又继承了一个类,这样变相的实现了多继承,就像在以前用内部类实现事件的例子。还有三四五条用处,一时想不起来啦。哈哈…

2006-10-18 星期三

今天继续讲了一些javaScript的有关常用的方法,有的是以前见过的,有的没见过,以后能混个脸儿熟了,呵呵,然后简单回顾了jdbc的有关内容,并做了练习。 好家伙,这个老师真是太能说了,哈哈,连续不断的讲半天不停,讲的相当的细,相当的细,呵呵。

2006-10-17 星期二

今天老师特意讲了一下关于多态的知识,下面是写的一个小例子,发现前两天写的那个关于内部类的例子也用到了多态的知识,通过一个接口实现类的方法返回了一个这个接口类型的引用,但这个引用指向的是一个内部类的对象,他不可以调用这个内部类独有的方法。

同理,下面这个例子也说明了这一点。

如果想调用实现类里面独有的方法,必须向下造型。

/**

* @(#)Test.java

*

*

* @author Administrator

* @version 1.00 2006/10/17

*/

class Person

{

public void eat()

{

System.out.println ("eat");

}

}

public class Test extends Person{

public Test() {

}

public void eat()

{

System.out.println ("Test eat");

}

public void hello()

{

System.out.println ("Hello");

}

public static void main(String[] args)

{

Person p = new Test();

//调用子类重写的方法没有问题

p.eat();

//不能调用子类特有的方法

//p.hello();

//可以强制类型转换后调用子类特有的方法

if(p instanceof Person)

{

Test ta = (Test)p;

ta.hello(); //这样做没有问题

}

}

今天着重讲了javaScript,还有MyEclipse的使用,哈哈,这个MyEclipce还是相当强大的,感觉比较爽,呵呵!

终于有机会熟悉了一下javaScript,这东西还是相当强大啊,今天知识接触了一些基本的语法和使用,一些技巧和类库还需要学习。

唉……,呵呵!! 

2006-10-16 星期一

今天开始学习所谓的《J2EE Web组件编程技术》,换了个老师,讲了一些这个课程的大概组成以及教学计划,我觉得这样还是蛮不错的,起码对课程首先有个大概的了解。然后是一些html的基础知识l.

2006年10月13日星期五

2006-10-13 星期五

今天考试

2006-10-12 星期四

今天没有上课,但是还要过来,真是过水。

在《java编程思想》上看了个关于内部类的例子,感觉很有意思,自己打出来,作了些注释,加深理解记忆。

//声明接口Ia

interface Ia

{

int a();

}

//声明接口Ib

interface Ib

{

String b();

}

//声明类,在其中声明内部类实现上两个接口

class Test

{

//内部类 a 实现接口Ia

private class a implements Ia

{

private int value = 11;

public int a()

{

return value;

}

public String a2()

{

return "a2()";

}

}

//内部类 b 实现接口Ib

protected class b implements Ib

{

private String value = "b";

public String b()

{

return value;

}

public String b2()

{

return "b2()";

}

}

//Test类的方法 返回一个a接口对象

//用户不能从该对象向下转型,也就是不知道它向下是a类型

public a getIa()

{

return new a();

}

public b getIb()

{

return new b();

}

}

public class TestParcel

{

public static void main(String[] args)

{

Test test = new Test();

Ia ia = test.getIa();

System.out.println(ia.a());

//ia不能访问a类实现Ia接口以外的扩张方法

//ia.a2();

Ib ib = test.getIb();

System.out.println(ib.b());

//ib.b2();

//Test.a ia = test.new a();

}

}

也许java的类库有的就是这种实现,我们可以通过某个类的方法得到某个接口的实例。^_^

2006-10-11 星期三

今天是java高级的最后一天课,老师晚上就坐火车回家了,哈哈。

总的来说,对这段日子的培训不是很满意,跟我想象的可以说相差很大,分开来说,在java基础部分还是比较满意,老师还比较负责,讲的也可以,到了高级部分,跟“高级”这个词对应不上,称不上为高级,顶多是一些实际应用中的一些技巧,java基础的实例化,java的一些高级特性很多都没有涉及到,怎么能称得上高级呢,可能这只是我的一面之词。

好了,发了一点牢骚。

最后一部分简单介绍了国际化和Bean的制作,Bean的制作不是很成功,可能一是比较复杂二是英文障碍三是老师对这部分不很重视,一带而过。我也确实不知道在实际应用中各个部分的重要性,当然也分不同方向的。

感觉培训部在学员要求方面不够严格,用一种有点不合适的话说就是在当初说的那些严格要求实在是在忽悠,哈哈,这是一个很高明的招生手段。

2006-10-10 星期二

Java高级的倒数第二天,简单介绍了序列化和java 2D高级绘图,一带而过。

序列化是个很有意思的东西,原来程序也不是那么聪明的嘛,哈哈。

2006-10-9 星期一 十一长假后

节后的第一天,高级课程的倒数第三天,结束了jdbc的课程,完善了我的记事本程序,添加学员管理的增删改查,老一套,跟C#差不多, 没什么意思,这东西都是一个套路。

2006年10月5日星期四

平静的一天

十一过了一大半,接连两天猫在这个小屋里,陪伴我的,我的电脑,不出门一步。没有言语,感觉不错,安静,安静,继续下去不错,我喜欢安静,安安静静的,安安静静的,头疼,头疼的厉害,呵呵,睡觉,看书,看新闻,看电影,吃。呵呵

2006年10月1日星期日

2006-09-30

今天是十一前的最后一天上课,讲了java的JDBC,和在C# 中学的ado.net差不多,所以感觉还比较简单。中午和老师呆了一中午,哈哈,他说我不够用功,呵呵,我也不知道,是不是,他说我是这个班第一的,但是下的力气还不够,呵呵夸奖了,我也就这点能耐了。希望十一没有什么事发生。。。。

2006年9月30日星期六

马上 又是一个十一

痛苦啊,我的一切都变了,变得苍白,哎,说这有什么用呢〉?想啊 想啊,没有办法,没有出路。。。。晚上回来给家打了电话,说不回去了,我知道娘还是很想让我回去,我想了很久,路上,上课时,老走思,真的不想回去,我怕,我怕看到他们,不知道说些什么,不知道怎么回答他们的问题,甚至都害怕打电话,想发个短信算了,看到那些幸福的人,确实会有两秒钟的羡慕,呵呵,也许我真的冷了,不是也许,真的,我究竟为了什么,没有了方向,没有了憧憬,呵呵,又老调重弹了,哎....有时候她跟我说起我们的事,我们的回忆,我们的曾经,我一看就想哭,我知道她给我发短信时也一定哭了,可我不能哭,人家会以为我是神经病,骑车从一堆等公交的人群中经过,不知道又没有人注意我,呵呵,她在跟我说这些的时候,我又能说些什么呢,我又能怎么样呢?呜呜,她说这些话只能跟我说,可我没人能跟谁说,我跟谁说呢,自己往肚子里咽吧,她说我冷血,变了,可我又能怎么样呢,我整天面对这些事我会活不下去的,我只能转移注意力,想点别的,当我想哭的时候,就使劲的让自己想些别的,想些别的,是啊,这一切又是我一手造成的,哈哈,又能怪谁呢,自己憋着吧,不知道我能承受多久,活的好累,只是可怜可怜的她。我的皇上太上皇,你们让我以后活在心债里无法自拔,我无脸见我的朋友同学,他们会骂我是狼心狗肺,禽兽不如,我想终有一天,你们会认识到你们的认识是错误的,是错误的,可到那时,可能什么都晚了,请原谅和理解我对你们的冷淡,我也不想,可我...,我不想让任何人伤心,我想让任何人都觉得我很乖很听话很可靠,可我 ...,我以为她不会那么的....,可我...,......................................我究竟为了什么?/。好了,又借此机会发了一通牢骚,是啊,说出来些,心里会舒服一些,早就想写写了因为没有人可说也不会说,因为没时间,呵呵,顺着太阳起落,伴着随风起舞漫无目的的蒲公英飞阿飞阿,它也不知道它会飞多久,飞到哪去,落在哪,成为一个低级动物。

9月29日 星期五

今天挺无聊的,讲了些集合的相关类,map,list,set,有点不知道他们的具体用途,下午讲了基本的一些sql语句,没意思!

2006年9月29日星期五

2006-9-28 星期四



今天没什么新东西,做了一天记事本,真不知道老师是怎么计划的,基本功能都实现了,刚刚把查找弄了个差不多,想了半天怎么在FindDialog类里面操作记事本Frame类里面的TextArea,首先想用FindDialog的perent来调用,因为FindDialog的父窗口式Frame,结果行不通,还是用最初想到的,在初始化FindDialog的时候给它的构造函数一个Frame里TextArea的一个引用,然后再FindDialog里操作它,果真这样能行,不知道还有没有更好的办法。

发现java一些更深入的东西老师都没讲,老师太注重实战,理论讲的不够深入,只是讲这东西怎么用,至于它的原理机制就涉及到的很少了,只能回去自己看书了。

2006年9月28日星期四

2006-9-27 星期三



有一天过去了,今天真正认识了Jbuilder2005的面目,上来就给我了个下马威,自动提示功能不能用,在老师的建议下冲撞Jbuilder,结果还是不行,再重装,还不行,哈哈,无意中发现是输入法的问题,狂晕。

上面全是英文,然后金山词霸还不能用,真是让我有些头疼,看来要想驾驭它还是得好好学英文了,跟着老师对这家伙作了一些设置,给的感觉就是跟VS.Net的易用性差远了,天上地下,代码自动生成不够智能,丢代码,试图页面不正常显示,切换不灵活,添加控件不方便的很,控件属性修改也不好使,唉我就不说了,再有就是这东西吃内存太厉害,512有点吃力了,看来我是急需买内存了,呜呜!

通过昨天晚上和今天的努力,把贪吃蛇游戏基本上做出来了,按照软件设计的一般思路,构建合理的类,有Frame类,Panel类,Snake类,Food类,各负其责。当然了,实现的只是基本功能,不能跟实际的游戏相比,了解的是一种思路,这就是经验。

2006年9月27日星期三

2006-9-26 星期二

2006-9-26 星期二

今天又接着学习了一些swing里的控件,都是以前在C#里熟悉的,用起来还比较顺手,老师让我更注意一些变成风格,低耦合高内聚,好专业的词汇,刚刚理解了一些它的含义。

上午迫不及待的打开JBuilder2005浏览了一番,看了看它自动生成的代码,突然想到,java里没有委托么???反正在目前所见到的代码里面没有这东西,在C#里是利用委托实现事件关联的,在java里是用继承监听适配器或实现监听器接口,然后用addActionListener方法添加给按钮之类的控件,而这个addActionListener方法其又是怎样实现的呢???

2006-9-24 星期日

Java高级第一天,呵呵

今天初步接触了swing

感觉swing里的那些组建才更像C#.net里的那些,用法阿,功能,特点阿

Awt有些笨拙难看,swing也不好。

难道这样是为了在各种系统中兼容〉?/ ,呵呵,要是这样只能求其最小公分母了。

感觉,的确是C# 要更胜一筹,可能是C#站在java的肩膀上进行了改进进行了增补修改,越来越完善越来越强大嘛。

话说回来,java更底层一些,所有要实现的东西越来越抽象,抽象到要实现一个效果只需要调用一个现成的方法就可以了,用户也不用明白其是怎么实现的,越来越傻瓜式变成,在这方面C# 要先进些。

多了解一些底部的东西,以后好容易进步,知其然更知其所以然,哈哈。

2006-9-25 星期一

今天继续学习java的swing,打开文件,保存文件的类和方法,练习又快又好的编码。今天没什么好说的,呵呵,现在都是手动写代码,能够了解它的结构和思想,写java的那些天才程序员简直太厉害了,呵呵。

用学到的知识实现了打开文件,保存文件,感觉设计一个好的结构简直太重要了,不知道JBuilder自动生成的代码什么样子,呵呵!

哦忘了说了,今天下雨了,给我的感觉就是车堵的更厉害了,占满了路的每一个角落,该想想办法了,瞎操心,呵呵。

还是那样的郁闷,沉重,就好像那些递归方法,汉诺塔?不容易理清,不容易走出来,呵呵,我现在是在while(true){}里面,找不到合适的条件走出来,在里面挣扎,挣扎,结果会是什么?

为了什么?

2006-9-22 星期五

Java基础最后一天

学些了网络编程,java中的一些类和方法,用套接字Socket编程。

新接触的东西,有意思。

做了个小程序,用一台机子做服务器,实现多个人聊天,哈哈,一个小的聊天室。

接下来要学swing了。

2006年9月25日星期一

2006-9-21 星期四

今天是java基础课的倒数第二天,学习流,当初学C++的时候,流这部分只是潦草的看了一下,今天学习java的流,好家伙,它的类真是多阿,有点理不清,感觉常用的也就是字节流和字符流,如果用字节流就用FileInputStream(FileOutputStream),BufferedInputStream(BufferedOutputStream),用FileReader,FileWriter(BufferedReader,BufferedWriter)可以直接写入字符串。

记得用C#做自动生成静态页面的时候用到了流的类,当时只是照猫画虎实现了,现在理解的更深入一些。

作了个小程序,用递归的方法实现给定文件夹内的所有文件夹和文件的遍历

明天最后一天,接触网络编程。

2006年9月21日星期四

好久没下雨了

今天说这个周日要上课,说是为了跟十一假期错开,想起马上就要十一了,真不想回家,不想回,郁闷!不知道这样下去会是个什么样的结局,怕,恐惧,不想想这些。谁会了解,我是个什么样的心情。我都不怎么清楚。心疼了好久了。深吸气会舒服些。她更可怜,我知道,可我又有什么办法呢?/呜呜......

2006-9-20 星期三



今天学习了applet,java的小应用程序,给我的印象它就好像javascript,只不过要强大一些,呵呵,可以嵌在网页里,由浏览器执行,就像脚本一样嘛,哈哈

只不过还不清楚在实际应用中,它具体用在哪。

这可能就是java中特别的部分吧。好好学.

2006年9月20日星期三

2006-9-19 星期二 Now



接着学习线程。

线程的同步和对象锁的概念和使用。

Object类的三个方法wait()、notify()、notifyAll(),使线程之间通讯。

对线程还不是能深入的了解,回去看看《java编程思想》的线程章节。昨天晚上通过修改画线段的代码实现了线段的自动移动,并且通过方向键来改变方向,就像贪吃蛇的样子,主要思路就是,通过将两个点组成一条线段,将这些线段加入到ArrayList中,当ArrayList的大小达到设置的长度后,每向ArrayList中加入一条线段则从尾部移除一条线段,这样实现了线段的移动。

接下来,考虑将这条线段,也就是蛇,写成一个类,它有长度,控制方向的事件以及移动的方法。蛇类的对象将成为Frame的一个属性。考虑中…

另一个程序,就是抽奖,从十个数中随机取数,每次取一个,不能重复,这里的关键就是怎样不重复,就是随机生成的数为数组的下标,而后将下标对应的值将末尾一个值调换,一次类推,随机生成数的范围将每次缩小1。

由于昨天晚上没有休息好,今天的状态不是很好,老困,中午吃完饭,抓紧时间睡,哈哈,下午精神多了。

好了回家。呵呵

2006-9-18 星期一 today



今天是新的一周开始,通过上一周的学习,掌握了一些java最基础的应用。

上午学习了异常处理

Java中如果想在一个方法中抛出异常,必须在方法声明后加上throws Exception或者具体异常名称,调用该方法的方法可以对异常进行处理也可以接着向上抛出。

作了三个练习,其中汉诺塔的问题用递归实现理解起来比较复杂:

public class Hanoverian

{

public Hanoverian()

{}

public void calculate(int i,char a,char b,char c)

{

if(i == 1)

{

remove(a,c);

}

else

{

calculate(i-1,a,c,b);

remove(a,b);

calculate(i-1,b,a,c);

}

}

private void remove(char m,char n)

{

System.out.println(m + "->" + n);

}

public static void main(String[] args)

{

Hanoverian myhanoverian = new Hanoverian();

myhanoverian.calculate(10,'a','b','c');

}

}

留下代码,供以后参考,呵呵!

下午初步学习了线程,这是以前接触比较少的,有很多新知识

当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread),因为它是程序开始时就执行的 。可以把main方法的内容理解为主线程的线程体。而其它子线程的线程体是Runnable接口的run方法。Thread类实现了Runnable接口,我们可以扩展Thread类或自写一个类来实现Runnable接口来完成多程序程序。

我们不会调用run方法来启动线程,必须用start方法

调用Thread的interrupt()方法可发送中断请求,如果线程在休眠或等待状态可触发一个异常从而实现中止线程。

今天是刚刚详细接触线程的有关知识,还需要更深入的理解。

刚才做了个例子。如果想使用线程,必须实现Runnable接口或者继承Thread类,重写Run方法来实现,自己的理解。

明天接着学习线程。

有了线程就可以做更多事了,哈哈。

2006-9-15 星期五



做了两个小程序,感觉代码风格和C# 很相似的,到目前为止,所有的代码都是手动敲上去的以增进对java体制和代码风格的理解和掌握,当初学习C# 可没有这样,直接用.net 2003写代码,其中一些代码在创建文件以及拖拽控件时,代码都给自动生成了,也么怎么研究它的机制。

2006-9-13 星期三



学习继承。

Java的继承关键字extends

学习包,包的概念就像C# 中的命名空间nameSpace,对应java的关键字是package

引用包是import ,就像C#中的using

2006-9-14 星期四

学习一些常用类,比如Math类,日期类,特别注意的是日期的月份是从0开始的,就像数组的下标。

学习AWT,AWT金山词霸的翻译是“高次废水处理”,哈哈哈,AWT 抽象窗口工具集,我的理解AWT包含一些用于窗口显示类,用于画窗体,按钮之类。老师说它不够强大并且跨平台兼容性不好,以后会学更强大的swing。

AWT是够不强大的,连个下拉列表框都没有,哈哈

2006-9-12 星期二



学习java中的数组和字符串,其中的一些方法,和C#很相似,呵呵,可能应该说C# 和Java很相似

Java的一般书写规则:类名首字母均大写,方法名和字段名首字母均小写。

fanal关键字,修饰类时,此类不可以被继承,为终极类。修饰字段时为常量,值不能更改

2006-9-11 星期一

学习java的第一天。

了解了java的发展历程,学习了HelloWorld.java程序

public class HelloWorld

{

public static void main(String[] args)

{

Syetem.out.println(“Hello World”);

}

}

与C# 的不同点:一是main方法必须有String数组类型的参数,另外java的书写习惯是在方法声明后紧接“{”,感觉不习惯很结构不清晰,呵呵,个人习惯。

学习java环境配置类路径

选择"环境变量",在"环境变量"窗口中编辑classpath和path。

1、JAVA_HOME

C:\j2sdk1.4.2

2、path 该变量已经存在,需在其后添加如下:

%JAVA_HOME%\bin

3、classpath

.;%JAVA_HOME%\lib; 学习常规数据类型和控制结构,这些与C++,C# 没什么太大差别。

感觉java的System.out.println()和print()方法很强大,它们几乎将输出所有类型的参数转换成字符串输出。

2006年8月30日星期三

好像有秋天的味道了

某某人总是以天气为题,呵呵呵刚趴窗台上,脖子伸出窗外,用力的呼吸,好像有秋天的味道了,还不时很浓,呵呵呵,时间过得真快。中午吃饭,要得炒饼,放了点辣椒,没吃两口,辣椒被我吸了进去,狂咳,顿时眼泪、鼻涕都出来了,再咳,狂咳,差点没死掉,呵呵,原来,死掉也是蛮容易的哦。我有吃东西喝水爱呛的毛病,不定哪回,就呛过去了,呵呵!也不错。不想让别人知道我的太多事和心情,所以今天把blog权限关了。无限期关闭。

2006年8月29日星期二

雨一直没下

现实太残酷痛苦...... 我像这只燕子么?!不像。我太懦弱了,没准儿不敢降落去叫她,呵呵。真的是禽兽不如。心债啊,我自己跳下去,欠下的,用什么来还?我知道我会失去更多... ...

2006年8月26日星期六

天气还是阴蒙蒙的

学了一招怎么在日志里插入图片,试验一下,呵呵呵 真羡慕它们搞了三次,才搞定,嗯,不错还!代码人生。

2006年8月25日星期五

据说有阵雨

昨天刚夸了天气好,今天就变得灰蒙蒙了,伴随着心情,早上一坐在这,头就疼,好像被涨大了,恼人的游戏哦,加着好像没有空调,屋子里闷热,更增加了心情烦躁。还好沈工没叫我,我的脑袋可转不动了,头疼...敢问路在何方?!路在脚下。哈哈哈哈! 郁闷!

接连几天的好天气

呵呵,改了字体大小,看看是不是看起来舒服一些。这个星期都是好天气,阳光普照,好像昨天是处暑,天气转凉了。日子还是照常一天一天过着,我的让人头疼的游戏继续让人头疼着,自己已经疯了好几次了,看看这些旧知道了,呵呵。255 定义内存指针 碎片缓冲 ★

碎片缓冲 100 看内存

起始地址: FF9D0898

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEFFF9D0890 FF 00 00 00 BC 42 9D FF 00 00 00 00 73 5C 53 51 ...糂?....s\SQ

FF9D08A0 4C 58 4D 4C 20 34 2E 30 5C 62 69 6E 5C 00 4C 4F LXML 4.0\bin\.LO

FF9D08B0 47 4F 4E 53 45 52 56 45 52 3D 5C 5C 41 4D 50 43 GONSERVER=\\AMPC

FF9D08C0 00 4E 55 4D 42 45 52 5F 4F 46 5F 50 52 4F 43 45 .NUMBER_OF_PROCE

FF9D08D0 53 53 4F 52 53 3D 32 00 4F 53 3D 57 69 6E 64 6F SSORS=2.OS=Windo

FF9D08E0 77 73 5F 4E 54 00 50 61 74 68 3D 43 3A 5C 57 49 ws_NT.Path=C:\WI

FF9D08F0 4E 44 4F 57 53 5C 73 79 73 74 65 6D 33 32 3B 43 NDOWS\system32;C★

碎片缓冲 100 填0 ★

碎片缓冲 100 看内存

起始地址: FF9D0898

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEFFF9D0890 FF 00 00 00 BC 42 9D FF 00 00 00 00 00 00 00 00 ...糂?........

FF9D08A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

FF9D08B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

FF9D08C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

FF9D08D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

FF9D08E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

FF9D08F0 00 00 00 00 00 00 00 00 00 00 00 00 33 32 3B 43 ............32;C★

1 碎片缓冲 0 字节写 ★.

碎片缓冲 100 看内存让人头疼的东西啊,这部折磨人呢么?! 以前平淡的生活已去回不来了,虽然生活一直是平淡的,可是..,总感觉少了些什么,难道真的要面对现实么,真的不想去想,得过且过的苟活。 刚才看了一个博客,看人家好幸福,充实,美满,呵呵,看来我只能妄想了。 呵呵,人不是想怎么样就能怎么样的,不羡慕了,继续苟活吧/把自己说的这么可怜,可是这一切却都是你一手造成的,而且还带着她,唉... 我顶你个肺儿.............

2006年8月19日星期六

难得的一个双周末

今天是周末了,过得真快,时间过得真的很快,转眼八月过了大半了,时间在行不留情的走着,而我呢,而我们呢,有时候时间是漫长的,有时候时间是匆忙的,昨天看到小范写的blog,羡慕于他能写出那么欢快而且细于观察生活的的文字,想想自己,肯定写不出那样的文字,至少现在不能了。呵呵,这也许可以解释为这就是毕业跟没毕业的差别吧?!希望真的不像我这有点残酷的解释,多让人绝望阿。现在真的越来越像一个禽兽了。随着时间的走着,不留情的走着,我在变,就像生物变异,我也在变异,不确定会进化到什么,进步?倒退?也许强弩之功首先要倒退给自己一个憋红了脸的...之势(想不出词来),这好像是给自己的一个进步的解释,给自己倒退的一个狡辩,看到这些文字的朋友可能会觉得我有些怪异,呵呵,其实不怎么愿让别人看到。可能人越发的成长,会变得越发的没有思维,越发的不了解自己,越发的不知道自己心底还没有有那点曾经的梦想,为什么叫梦想,可能跟梦更想象,梦总归是梦,很容易破灭的。又在狡辩,呵呵。现在真的迷茫了,以前也迷茫过,不同于以前的迷茫,这次是大方向的迷茫,这是必然的么,生物是在外界环境的雕刻下进化的,为了适应生活而进化,哈哈,打这个比喻好像还有点不恰当,恩,我也是为了适应生活么?那就又要讲到自私了,周围环境塑造一个人,有劣根性,这也许是正确的,有劣根性也应该有优根性吧,哈哈,又在为自己狡辩。几千年中的那几千分之二十几就塑造了我这么个...(什么?),而这个“什么”应该在它拥有的所有时间里追求自己的快乐呢还是应该...(不知道怎么写了,这个“应该...还是...” 只能||不能&&的,所以),好了,不说这些让人难懂的了。 听说我以前的日志是快乐的,是积极向上的,我记不起来了,我,是健忘的了,前两天去面试,那么简单又熟悉一个语句,竟然硬是想不起来,无奈!可能燕雀永远不会进化到鸿鹄吧,呵呵。以前想做的只是个燕雀,其实现在也没有鸿鹄之志,从生物上讲鸿鹄的妈妈爸爸肯定是鸿鹄,燕雀的妈妈爸爸肯定是燕雀,哈哈,又在狡辩了,你说非要把燕雀变成鸿鹄岂不是很累?!而为什么燕雀就没有鸿鹄之志呢,也不是所有燕雀都没有,反正这个比喻是不可推敲的,哈哈,为什么是比喻呀,比喻总是要有一些不切实际的。也许燕雀就应该有鸿鹄之志的。 很多事,都是一念之间的,一件事和另一件事之间可能有几个if{}else if{}else{}建立了它们之间的联系,每次给的参数肯定是唯一的,所以结果也是唯一的,并且不是可逆的,一不小心,参数给错了,也许太空中的航天飞机就回不来了,呵呵,在属于自己的那几千分之几十分之几的时间里,如果你决定的一个参数错了,可能本来应该是第一个{}的结果,结果确是第二||三else...个{} 的结果,其实事先也不知道哪个{}里是哪个结果,呵呵,这就麻烦了,应该依据什么给这个参数呢?!可能到最后,也不知道是不是给错了参数,不知道应该给哪个参数,人生的程序是不可以调试的。 本来想写几行文字,没想到都出滚动条了,哈哈,稀里糊涂的不知说了些什么想说些什么,自己都看不懂,好了,喂肚子去吧........

2006年8月15日星期二

终于见太阳了

今天天气格外好,据说昨天还出现难得一见的彩虹了,呵呵,有了太阳可定要热的要命,呵呵,这是悲观的想法。大概又半个月过去了,每天有规律的生活,消费的挺奢侈的,每天都去下馆子,唉...,到现在还没发过钱呢,钱真是好东西,呵呵呵呵!第一行字是早上来的时候写的,现在都中午了,忙别的事了,想写点什么来着,现在又想不起来了,再说吧,吃饭去。

2006年8月9日星期三

今天好像有雨

路走到这里,都是自己的脚一步步迈出来的,其实,其实我挺后悔的,但是,又找不到回去的路,或许有,但是相当难,或者,或许有,但是只是或许,不知道能不能回去,或许,只是更深的深渊。没有她的日子就像一具行尸走肉,木讷、冷漠,虽然她也有很多缺点。她要来了,觉得心里很轻松,舒畅了很多,可是,见到她,又有好像被包围的压力,路已经到了这里,还能怎么回去呢?!我有太多的后顾之忧,使我不能抉择,呵呵,其实是抉择了,选择了痛苦...我是自私么?某方面是的,可是,我也是痛苦的...如果要为我的自私狡辩一下的话,我心里我向往的不是这样的,我没那么“志向远大”。如果我是自由的,我想我会是幸福的!

2006年8月3日星期四

今年的七月是黑色的

今天天气还算不错,比前一个星期好多了,伴随着我昏暗的心情。上个月发生了太多事,哈哈,都是自己做出来的,原来我是有梦想的,是有憧憬的,但是现在,我好像空白了,我的事业,我的爱情,我的...,都有他们来掌控,哈哈,自由是要有代价的!我到底是个什么?我应该为了什么而做出决策?我,是冷血的,而且有病,哈哈!

2006年7月3日星期一

免于失业的十大软件技术

免于失业的十大软件技术

作者:A. Russell Jones出处:南京大学小百合站[ 2006-07-02 19:03 ]摘要:你对我们列出的十门技术精通吗?哪怕是大略精通?

能跟上关键技术的发展,是你在就业市场和未来保持优势的最佳手段。你对我们列出的十门技术精通吗?哪怕是大略精通? -- 罗素·琼斯,执行编辑。

  我不知道你的具体工作是什么。如果你是某冷门领域的专家而变得不可或缺,或者你们的公司十分稳固,以你现有的技术就足以安度你的职业生涯,那我不知道你是否有失业的危险。不管怎样,请你先不要急着寄出那些告诉我你们的公司对用VB3十分满意或你们除C以外永不用其它语言的信件,并保留起那些讲述.NET将如何把Java扫地出门、XML将如何取

  代关系型数据库、或你怎样能用汇编语言或C写任何软件而任何其它开发工具都不重要的信件。

  现在,想象一下如果你像很多受裁员和公司倒闭影响的同行一样失去了工作,那将会怎样。如果你突然需要搬往它处该怎么办?如果你的公司突然做了技术转向又怎么办?

  在目前的就业市场,经理们是根据当前和未来的开发需要招聘雇员。作为开发人员,你所掌握的知识是你找工作和保住工作的关键。你要了解技术的发展方向,跟上技术的变化,这一点十分重要,即使你永远不用再找开发方面的工作。

  1. XML

  首先,你要了解XML。我不是说仅仅是XML规格本身,还包括一系列相关的基于XML的语言:最重要的是XHTML、XSLT、XSL、DTDs、XML Schema(XSD)、XPath、XQuery和SOAP。那些在过去5年内从未碰过键盘的人,可能不知道XML为何物。XML是一种文本文件,使用与HTML类似的标记。XML能定义一个树状结构,并能描述所含的数据。XML最好的一点是既能存结构化数据也能存非结构化数据。它既能存贮和描述“规格的” (regular)表格数据,也能容纳和描述“粗糙的”(ragged)文件数据。XHTML是现今写HTML的首选方法。因为它是形式完好(well formed)的XML,比起古老的、通常是畸形(malformed)的HTML文件,XHTML格式的文件更容易处理。XSLT和XSL是用于把XML文件转成其它格式的语言。可转换的格式包括:文本文件、PDF文件、HTML、以逗号为分隔符的文件,或其它XML文件。 DTD和XML Schema描述XML文件所能包含的内容的类型,并让你“验证”XML文件内容的合理性,而不用写特殊代码以确保内容符合规则要求。XPath和XQuery是用于从XML文件中抽取单个项目或一组项目的查询语言。XQuery扩展了XPath,因而更重要。XQuery与XML的关系正像SQL与关系数据库的关系。SOAP是Web服务之间的一个标准通讯协议。尽管你不需要对SOAP标准一清二楚,你应该熟悉一般的schema和它的工作原理,以便能应用这门技术。

  2. Web服务

  Web服务是XML流行后的一个直接产物。因为你能用XML描述数据和物件,因为你能用schema确保XML文件内容的合理性,因为XML是基于文本的规范,XML为跨平台通讯标准提供了一个极其方便的基本格式。如果你还从来没碰到Web服务,你可能很快就会碰到,在未来5年内,你几乎肯定会碰到。熟悉Web服务十分重要,因为它是目前所有跨不同机器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。不管你需要与否,Web服务是迈向互用性的重要一步。

  XML工作组主席John Bosak曾说XML“给Java一些事做”。实际上,Web服务让所有语言都有了一些事做。Web服务让在大型机上运行的COBOL应用软件能调用在手持设备上运行的Java应用程序、能让Java applet与.NET服务器交谈、能让微机软件与Web服务器无缝连接,并提供了一个相对容易的方法,让企业不光能向外界提供数据,还能提供功能,而且是一种与语言、平台和位置都独立的方法。

3. 面向对象的编程

  很多程序员仍认为OOP是象牙塔里的技术。但如果你想一下是什么语言在过去的10年里占主导地位,你就会理解OOP不是象牙塔里的技术。OOP从Smalltalk开始,传到C++和Pascal (Delphi)。Java使OOP大踏步地迈向主流,几年后的VB.NET和C#则完全确立了OOP的优势地位。尽管这些语言中的多数并不要求你必须会OOP,但我觉得如果你不了解OOP的基本概念也不知道如何应用这些概念,你能找到的编程工作将越来越少。

  4. Java、C++、C#和VB.NET

  我把这些语言列在一起,并不是建议你成为每一种语言的专家。我的理由是:学习编程最有效的方法之一是看代码,而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。

  在过去几年,各语言的能力越来越接近。现在,你可以用VB.NET写Windows服务、Web应用程序或命令行程序。即使你只使用一种语言,你也应该学一些其它语言,以便能看懂那些样例,并将其翻译到你所用的语言。这4种语言是基本核心,还有其它一些满足不同需要、颇具用途的语言,如FORTRAN、COBOL、APL、ADA、Perl和Lisp。

  5. JavaScript

  尽管名字有些相像,但Java与JavaScript并无关联。为什么一个脚本语言会如此重要呢?因为所有主流浏览器都用JavaScript。如果你需要写Web应用程序,你就有足够的理由学JavaScript。JavaScript可以用作ASP或ASP.NET的服务器语言,也可以当做用于扩展XSLT的功能语言(functional language)。JavaScript是Mozilla/Netscape中用于激活基于XUL的程序接口的首选语言。JavaScript的一个变种ActionScript是Flash MX的编程语言。将来,JavaScript很可能成为新设备的编程语言,以及大型应用软件中的宏语言。

  与JavaScript相对照的是VBScript。尽管Microsoft的软件对VBScript有良好的支持,但VBScript在未来的开发工作中很可能是一个糟糕的选择。就是Microsoft也倾向于用JavaScript(或Microsoft自己的变种:JScript)写客户端程序。在选择脚本语言时,请选择JavaScript。

  6. 正则表达式(Regular Expressions)

  查寻关系数据库可以用SQL,查询XML可以用XPath和XQuery,查询纯文本文件则可以用正则表达式。例如,你可以用一个命令从一个HTML文件中查找并删除所有的注释。各种开发语言内置的一些简单的文本查询功能,如"IndexOf"函数或VB中经典的"InStr"函数或"Like"操作符,根本不能与...(乱码)

7. 设计模式

  正像OOP通过把对象分类以简化编程一样,设计模式对一些普遍的对象之间的交互进行分类,并赋予一个恰当的名称。OOP用得越多,设计模式就越有用。一些最常用的模式的名称已经变成了软件开发领域共同使用的术语,所以要跟上信息的主流,你就要对设计模式有相当的理解。

  8. Flash MX

  如果你需要在客户端得到比HTML和CSS更多的图形和更强的编程功能,Flash是你的答案。用Flash编程比开发Java applets或写.NET代码要快得多,也容易得多。在最新版本 (MX) 中,Flash不仅仅是画图和制造动画的工具,它已经成为一个编程功能强大的开发环境:能调用SOAP Web服务,也能调用远端服务器上的ColdFusion、Java或.NET程序。Flash无处不在。它的引擎存在于世界上大多数客户端计算机,包括手持设备、置顶盒、甚至是新的书写板电脑

  。所以使用Flash能大大扩展你的程序的应用范围。

  9. Linux/Windows

  熟悉Linux。在一台旧机器或新机器上安装Linux。下载图形用户界面,在其基础上写一些程序。安装Apache,写一个Web应用程序。这个世界不再仅仅是属于Windows,这种趋势可能还会持续下去。如果你是一名中坚的Linux开发人员,那就抛弃你对Windows的憎恶,看看你能否做一些Windows编程。Windows能继续在台式电脑上称王是有其原因的,这不仅仅是因为Microsoft控制了这个市场。

  没人知道你们公司会在什么时候决定从Linux转向Windows(或从Windows转向Linux),或者你想跳到一家用另一种平台的公司,或者你想出了开发一个杀手软件的好主意,所以你要争取拥有在不同操作系统上的编程经验。

  10. SQL

  尽管SQL不像本文讨论的其它技术那样新,而且SQL的重要性在未来10年内很可能降低,但它仍然是一项基本技能。很多开发人员还没有掌握这门技术,或掌握得不够,不足以有效率地使用它。不要依赖具有图形用户界面的SQL生成器替你做事情,你要自己手工地写查询命令,直到你熟悉基本的SQL语法为止。了解SQL不仅能帮助你日后学习XQuery,你还有可能马上发现能简化或改进目前项目的方法。

  培养好奇心

  最后,(对,我意识到这是第11门技术),好奇心是你最重要的技能。要去尝试各种东西。新语言或新技术对你当前或将来的工作可能有用,也可能没用,但并不是你所学的每一件事都是为了工作。不要害怕失败,万事开头难,学新技术也是如此。大多数失败是因为人们希望太快地学到太多的东西。要对每一点进步感到满意,不要让时间(或缺乏时间)妨碍你。相反,你要安排时间留心、研究、试验新的开发技术和工具。

  你可能永远也没有必要成为这些技术的专家,而且我的选择可能根本不适合你的特殊情况,但通过培养好奇心,你将会发现你应该了解的东西。

2006年7月2日星期日

今天还算凉快

两则故事什么是爱情

有一天,柏拉图问老师苏格拉底什么是爱情?老师就让他先到到麦田里去,摘一棵全麦田里最大最金黄的麦穗来,期间只能摘一次,并且只可向前走,不能回头。柏拉图于是按照老师说的去做了。结果他两手空空的走出了田地。老师问他为什么摘不到?他说:因为只能摘一次,又不能走回头路,期间即使见到最大最金黄的,因为不知前面是否有更好的,所以没有摘;走到前面时,又发觉总不及之前见到的好,原来最大最金黄的麦穗早已错过了;于是我什么也没摘。老师说:这就是‘爱情’。

什么是婚姻

柏拉图问他的老师什么是婚姻,他的老师就叫他先到树林里,砍下一棵全树林最大最茂盛、最适合放在家作圣诞树的树。其间同样只能砍一次,以及同样只可以向前走,不能回头。柏拉图于是照着老师的说话做。今次,他带了一棵普普通通,不是很茂盛,亦不算太差的树回来。老师问他,怎么带这棵普普通通的树回来,他说:‘有了上一次经验,当我走到大半路程还两手空空时,看到这棵树也不太差,便砍下来,免得错过了后,最后又什么也带不出来。’老师说:‘这就是婚姻!’人生就正如穿越麦田和树林,只走一次,不能回头。要找到属于自己最好的麦穗和大树,你必须要有莫大的勇气和付出相当的努力。

从此不再相信有电影中的麦穗和圣诞树......

2006年7月1日星期六

要是一头猪,该多好啊!!!

走出校门了,发现自己越来越不像个人了,兽一头,还不凶猛,兽也有好兽,唉,反正不是东西了!在这个世界无能为力的偷生!从此更加冷漠!

应届毕业生少走弯路的十条忠告

应届毕业生少走弯路的十条忠告
2006.06.29 来自:pconline  佚名



  刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。

  如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课堂课程来,它毫不逊色!

  1、买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去 某地,沿途的风景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握 在每个人的心中。

  2、如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。

  3、每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一 下子不知所措起来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因 为寂寞而乱了方寸,而去做无聊无益的事情,白白浪费了宝贵的时间。

  4、走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心 绝食三日,减肥之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。 退路同样重要。饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就会身价百倍。

  5、不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。

  6、管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会自大虚伪,在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠 缠不清。每天下班后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往会把议论同事、朋友当做话题。背后议论人总是不好的,尤其是议论别人的短 处,这些会降低你的人格。

  7、机会从不会“失掉”,你失掉了,自有别人会得到。不要凡事在天,守株待兔,更不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创 造机会的人而言的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被你对面那个同样的“倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要 巧妙地抓住。

  8、若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶。

  9、千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。

  10、写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。

2006年6月27日星期二

2006年6月21日星期三

今天下雨了

昨天,晚上,喝了些没意思的酒,吃了些不知道啥名儿的菜...

2006年6月15日星期四

唉,真的要毕业了

今天早上五点半被叫起来去学校穿学士服照相昨天结束请了一多星期的假来公司上班了昨天的昨天毕业设计答辩了,昨天的昨天的前面一些天,准备毕业论文了。

唉,流水帐记完。

今天

正睡着好觉呢,被老三喊醒,晕,以至于困的我不得不在桌上趴了会儿,穿学士服嘛,没感觉

昨天

一多星期没上班,感觉挺漫长的,第一天来,感觉不错,就是一天下来眼睛干的不行,缺乏眨眼,呵呵

昨天的昨天

顺利的答完辩,鄙视为个破格式斤斤计较的老师们,难道他们只会这些?

昨天的昨天的前一星期

论文改阿改阿,改阿改阿,不过老头对我们还算好,哈哈

六月份的这些天,感受着毕业、忙碌、人走、茶凉、还有石家庄的热,呵呵呵,其实除了最后一个无奈剩下的还是比较冷漠的

毕业了,从此那种睡到12点12点才睡的美好时光没有了,开始为自己的事业奋斗了,哈哈,凑合过呗!!!困了,睡会儿,下午还得干活呢

2006年5月28日星期日

又又学一招,又Jscript的,哈哈

想在关闭子窗口同时刷新父窗口,在网上搜了半天终于实现啦,哈哈,只要一句话:“HttpContext.Current.Response.Write("<Script language='JavaScript'>opener.location.href=opener.location.href;window.close();</Script>"); ”还有个写法:“HttpContext.Current.Response.Write("<Script language='JavaScript'>parent.location.reload();</Script>")"我的父窗口加载需要传入一个参数,这样出现了一个头疼的问题,就是页面产生了回送事件弹出一个对话框,用第一个写法就没问题了,哈哈!Jscript真是太厉害了,能实现好多事,学习Ing!好了,下班拉,回家啦!哦,对了,明天周末,休息...

又学一招,Jscript的

想用Jscript的"<script language='javascript'>window.parent.location.href('"+strUrl+"');</script>"弹出一个提示框,想将里面的消息换行,搞了半天,“\t”、"\r”、“\r\t”、“<br>都不行,这才知道JavaScript的转换成这个样子的:“\\r\\t”"格式化为JS可解释的字符串

/// <summary>

/// 格式化为JS可解释的字符串

/// </summary>

/// <param name="s"></param>

/// <returns></returns>

public static string JSStringFormat(string s)

{

return s.Replace("\r","\\r").Replace("\n","\\n").Replace("'","\\'").Replace("\"","\\\"");

}"又学一招,哈哈,高兴!

2006年5月27日星期六

哈哈,高兴,刚解决一个问题

2006年5月27日上午十点整,哈哈,刚刚解决了一个简单的问题,但足以让我这个菜猪兴奋高兴啦,哈哈,赶忙跑来记下拉,以供以后察看,哈哈! 问题:RadioButton加入DataGrid模板列引起的问题。我的页面有几个panel,用户在datagrid里选中一个RadioButton点击下一步,进入下一个panel,上个panel隐藏,问题出现于,在点击上一步回到选择RadioButtn页时(是同一个页,不同panel的切换),单选框RadioButton失灵了...解决方案:在html页添加脚本

2006年5月14日星期日

嘿嘿,要转正拉,高兴ing

经过两个月的实习,终于可以转正了,在学校规定的五月底前能签协议了,高兴高兴

2006年5月8日星期一

不要为自己寻找理由

美国职业篮球协会最佳新秀「杰森.基德」,谈到自己成功的历程时说:「小时候,父亲常常带我去打保龄球。我打得不好,总是找借口解释自己为什么打不好,而不是去找原因。父亲就对我说:「别再找借口了,这不是理由,你保龄球打得不好是因为你不练习。」他说得对,我发现自己的缺点,便努力改正,绝对不找借口塘塞。」生活中,我们经常可以碰到类似的情况,遇到一些自己不愿做或不想做的事情,总是找个理由替自己推脱-说「没有时间」;看到一些成功人士的事例,想到自己一事无成,总是找个理由安慰自己-说「别人的机遇好,是我自己不走运」 如果我们真的想做一件事,想得食不甘味,夜不能睡,就一定会去做,而且一定会做得很好,要是你真的喜欢,总会有时间的。每一个成功者都清楚知道自己需要的是什么,他们懂得如何去寻找答案,而不是整天为自己找理由开脱。「不要为自己寻找理由」,这看似简单的一句话,却是打开成功之门最好的钥匙

2006年4月29日星期六

清华签名

一、每天辛勤工作,因为生命便系于此 二、持之以恒,方可掌握命运

三、深谋远虑,否则你将终身随波逐流

四、未雨绸缪,在顺境中为逆境做准备

五、陷入苦难困境时,仍要面带微笑,直到逆境向你俯首称臣

六、只有计划,没有行动,永远只是空想家

2006年4月27日星期四

看完后想10秒,你会获益匪浅

看完后想10秒,你会获益匪浅[转贴] 发表者: karer



  有一对兄弟,他们的家住在80层楼上。有一天他们外出旅行回家,发现大楼停电了!虽然他们背着大包的行李,但看来没有什么别的选择,于是哥哥对弟弟说,我们就爬楼梯上去!于是,他们背着两大包行李开始爬楼梯。爬到20楼的时候他们开始累了,哥哥说“包包太重了,不如这样吧,我们把包包放在这里,等来电后坐电梯来拿。”于是,他们把行李放在了20楼,轻松多了,继续向上爬。



  他们有说有笑地往上爬,但是好景不长,到了40楼,两人实在累了。



  想到还只爬了一半,两人开始互相埋怨,指责对方不注意大楼的停电公告,才会落得如此下场。他们边吵边爬,就这样一路爬到了60楼。到了60楼,他们累得连吵架的力气也没有了。弟弟对哥哥说,“我们不要吵了,爬完它吧。”于是他们默默地继续爬楼,终于80楼到了!兴奋地来到家门口兄弟俩才发现他们的钥匙留在了20楼的包包里了。



  有人说,这个故事其实就是反映了我们的人生:20岁之前,我们活在家人、老师的期望之下,背负着很多的压力、包袱,自己也不够成熟、能力不足,因此步履难免不稳。20岁之后,离开了众人的压力,卸下了包袱,开始全力以赴地追求自己的梦想,就这样愉快地过了20年。可是到了40岁,发现青春已逝,不免产生许多的遗憾和追悔,于是开始遗憾这个、惋惜那个、抱怨这个、嫉恨那个.就这样在抱怨中度过了20年。到了60岁,发现人生已所剩不多,于是告诉自己不要在抱怨了,就珍惜剩下的日子吧!于是默默地走完了自己的余年。到了生命的尽头,才想起自己好象有什么事情没有完成.原来,我们所有的梦想都留在了20岁的青春岁月。

2006年4月26日星期三

希望有一天

希望有一天

我能用鼠标双击我的钱包

然后选中一张100元

按住“ctrl+c”

接着不停的“ctrl+v”

嘻嘻~~~笑醒~~~

2006年4月21日星期五

时光如流水~~哈哈又在感叹了

时间过得真快,四月份马上就要过去了,感叹~`太快了@@,如此轮回,工作地二个月了,开始习惯了,在学习,在进步,在成长,在感触,在理解,也在感叹,哈哈,猪*&^%$#@!——继续奋斗吧!!!不早了,先睡觉...