随笔-674  评论-4  文章-2 
  置顶随笔
摘要: 我的版本:(分为简单工厂、工厂方法、抽象工厂)简单工厂模式: 概念:当客户对象不能直接联系产品对象,那么需要联系工厂对象,完成对产品的联系。 目的:降低客户对象与产品之间的耦合。图形:代码:/*** Class**@authorANDY** 2012-9-1 上午3:57:40** 产生水果的工厂*/publicclassFactory {/** * Methods * *@paramstr *@return水果 * 得到水果实例的方法 */publicstaticFruit getinstance(String str) {if(str =="apple") {retur阅读全文
posted @ 2012-11-25 11:49 YangJin 阅读(57) 评论(0) 编辑
摘要: 我的版本:(分为多例和单例)单例: 概念:一个类只对外提供一个实例 目的:减少对象的产生,提高对象的复用性(利用率) 条件:1、自己关联自己 2、拥有私有的构造方法 3、拥有提供自己对象的方法 图像: 代码:/*** Class**@authorANDY** 2012-9-1 上午4:02:50** 登录类*/publicclassLogin {/** * 静态的登录类自己 */privatestaticLoginlogin=newLogin();/** * Constructors * * 私有的构成方法 */privateLogin() {}/** * Me...阅读全文
posted @ 2012-11-25 11:46 YangJin 阅读(63) 评论(0) 编辑
摘要: 我的版本:原型模式: 概念:用原型指点创建对象的种类,并且通过拷贝这些原型创建新的对象 目的:允许一个对象再创建另外一个可定制的对象,根本不需要知道任何如何创建的细节 原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来 实施创建 要求:实现cloneable 图像: 代码:/** * Class * *@authorANDY* * 2012-9-3 上午11:20:21 * * 克隆接口继承Cloneable接口 */publicinterfacePrototypeextendsCloneable {/** * Meth...阅读全文
posted @ 2012-11-25 11:41 YangJin 阅读(40) 评论(0) 编辑
摘要: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.为何使用?是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦过程和部件.因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:车轮 方向盘 发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技术),Builder模式就是为阅读全文
posted @ 2012-11-25 11:39 YangJin 阅读(27) 评论(0) 编辑
  2013年1月17日
摘要: 最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生,以达到节约资源的目的; 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。 2. 尽量.阅读全文
posted @ 2013-01-17 10:26 YangJin 阅读(66) 评论(0) 编辑
  2012年12月3日
摘要: java中整数和字符串间的转换方法 如果让您亲自动手来来写一个Integer中的toString()方法和parseInt()方法,您会怎么写? 请您先动手写toString()方法。 我对于toString()的思路: 1.首先需要得到这个Integer数值的位数,所以肯定有一个getIntegerSize()的private方法 2.然后要把这个Integer数值转化为一个字符数组,所以也要有一个getChars()的private方法 3.最后只要把这个字符数组转化为字符串返回即可 在编写完我们的代码,再确定对于现在自己的实力,已经没有再做优化的可能之后,再来看Integer中的toSt阅读全文
posted @ 2012-12-03 10:39 YangJin 阅读(169) 评论(0) 编辑
摘要: 看了这篇文章感触很多,特转载过来工作刚刚落实,论文也刚完成,终于有时间对自己的求职历程及求职经验进行总结了。应同学要求,最近准备书写系列文章“我的求职历程及经验分享”,请大家关注,谢谢!(一):求职历程总结2007 年1月10日,随着在三方协议上郑重签下自己的名字,我的求职历程终于划上了一个圆满的句号。在这三个月漫长而艰辛的过程中,我付出了很多,经历了很多, 也收获了很多。这一路走来,要感谢的人太多太多,尤其要感谢每一个在找工作过程中关心、帮助过我的人,我会一生铭记你们的恩情。现在,尘埃落定,到了该回 报的时候,我首先要回报的就是我的母校和同学。所以,决定把自己找工作中积累的经验写出来给大家分阅读全文
posted @ 2012-12-03 10:18 YangJin 阅读(321) 评论(1) 编辑
  2012年11月28日
摘要: 排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准:(1)执行时间(2)存储空间(3)编程工作 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。主要排序法有:一、冒泡(Bubble)排序——相邻交换二、选择排序——每次最小/大排在相应的位置三、插入排序——将下一个插入已排好的序列中四、壳(Shell)排序——缩小增量五、归并排序六、快速排序七、堆排序八、拓扑排序九、锦标赛排序十、基数排序一、冒泡(Bubble)排序----------------------------------Code 从小到阅读全文
posted @ 2012-11-28 10:38 YangJin 阅读(134) 评论(0) 编辑
摘要: 插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。要点:设立哨兵,作为临时存储和判断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;//分别为有序区和无序区指针for(i=1;i<length;i++)//逐步扩大有序区{j=i+1;if(L[j]<L[i]){L[0]=L[j];//存储待排序元素While(L[0]<L[i])//查找在有序区中的插入位置,同时移动元素{L[i+1]=L[i];//移动i--;阅读全文
posted @ 2012-11-28 10:37 YangJin 阅读(56) 评论(0) 编辑
摘要: 存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type)as变量1 类型(值范围);变量2 类型(值范围);Begin Select count(*) into 变量1 from 表A where列名=param1; If (判断条件) then Select 列名 into 变量2 from 表A where列名=param1; Dbms_output。Put_line(‘打印信息’); Elsif (判断条件) then Dbms_output。Put_line(‘打印信息’); Else Rai阅读全文
posted @ 2012-11-28 08:58 YangJin 阅读(75) 评论(0) 编辑
  2012年11月27日
摘要: 1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在spring中用scope="prototype"来管理2.MVC,分析一下struts是如何实现MVC的m:JavaBean 或结合 EJB 组件或者pojo构成c:Action 来实现v:一组 JSP 文件及其标签构成。3.struts中的几个关键对象的作用(说说几个关键对象的作用)Action:控制器类,ActionForm:表单对象,DynaValidatorForm:动阅读全文
posted @ 2012-11-27 13:47 YangJin 阅读(273) 评论(0) 编辑
摘要: hibernate怎么使用存储过程Hibernate3.x调用存储过程摘要:本文以详尽的实例展示了hibernate3.x中调用存储过程各步骤,从建立测试表、存储过程的建立、工程的建立以及类的编写和测试一步一步引导用户学习hibernate3.x中调用存储过程的方法.如果底层数据库(eg. Oracle、mysql、sqlserver)等支持存储过程,可通过存储过程执行批量删除、更新等操作。本文以实例说明在hibernate3.x中如何调用存储过程。说明:本例hibernate所用版本为3.0,mysql所用版本为5.0,所用数据库驱动为mysql-connector-java-5.0.4-b阅读全文
posted @ 2012-11-27 13:41 YangJin 阅读(302) 评论(0) 编辑
摘要: Java中调用存储过程JDBC中的java.sql.CallableStatement对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法。已储存过程储存在数据库中。对已储存过程的调用是CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参,另一种形式不带结果参数。结果参数是一种输出(OUT)参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN参数)、输出(OUT参数)或输入和输出(INOUT参数)的参数。问号将用作参数的占位符。 在JDBC中调用已储存过程的语法如下所示。注意,方括号表示其间的内容是可选项;方括号本.阅读全文
posted @ 2012-11-27 13:34 YangJin 阅读(96) 评论(0) 编辑
  2012年11月26日
摘要: 导读:本文是从《Manipulating Files in Java 7》这篇文章翻译而来。 文章内容如下:下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了。通过使用新的Files类里提供的各种方法,你可以只用一行代码就能完成下列的文件操作:创建文件删除文件复制文件文件移动/改名这篇文件是以你对Java7里提供的新的Path类很熟悉为前提,如果你不熟悉这个类,这里就简单说一句,Path是文件系统里对位置的一个逻辑概念,例如c:\ 和../foobar.txt都是Path。创建和删除文件下面的代码片段向你展示的是用阅读全文
posted @ 2012-11-26 21:34 YangJin 阅读(59) 评论(0) 编辑