- 博客(39)
- 收藏
- 关注
原创 委派者模式
下面的定义是copy的,类图是按自己的理解画的图,如有不准确,望大家指正哈!委派模式(Delegate)是面向对象设计模式中常用的一种模式。这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功...
2018-05-06 14:56:01
294
原创 装饰者模式
参考java设计模式装饰者模式 动态的将责任附加到对象上,若要扩展功能,装饰者提供比继承更有弹性的代替方案类图:举例:一杯茶,有绿茶、红茶、通过装饰者模式变成蜂蜜绿茶,加糖绿茶上代码:package Decorator;/** * 茶的抽象类 */public abstract class AbstractTea { protected String description = ...
2018-05-05 12:56:04
173
原创 适配器模式
适配器模式 是将一个类的接口,转换成客户希望的另一个接口,适配器让原本接口不兼容的类可以合作无间。举例子:参考java设计模式java中已经实现了迭代器,但是还有相当多的遗留的”客户代码“,依赖于枚举接口,所以需要利用适配器模式,将Iterator适配成Enumeration,下面对Arraylist的循环使用Enumeration的适配器实现。import java.util.Enu...
2018-05-05 11:37:46
206
转载 策略模式
引用TOM的课程作用:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这...
2018-05-03 11:09:42
560
翻译 JDK动态代理模式和CGLIB代理
本文先举例子:后续跟进讲解内容,参考TOM老师xiaoming是根据JDK媒婆代理找媳妇,要实现InvocationHandler接口zhangsan时根据cglib媒婆代理找媳妇,无需实现接口JDK代理如下:package jdkProxy;public interface Person { public void findJob();}package jdkProxy;/*...
2018-05-02 23:07:48
127
转载 原型模式和深度拷贝、浅拷贝
Prototype Pattern(原型模式)意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。适用性• 当要实例化的类是在运行时刻指定时,例如,通过动态装载;• 为了避免创建一个与产品类层次平行的工厂类层次时;• 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。结构 参与者:• Prototype(原型...
2018-05-01 20:08:04
252
转载 java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)
转载:https://blog.youkuaiyun.com/yujin753/article/details/46125283-闭锁(Latch)闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都通过了,那么这个闭锁的状态就失效了,门的状态也就不能变了,...
2018-05-01 18:13:42
146
原创 工厂模式
工厂模式大致分为三种:简单工厂,工厂方法,抽象工厂我把工程目录贴出来:开发流程时从按照 1、简单工厂,2、、工厂方法,3、抽象工厂一、简单工厂: 简单工厂模式其实不是一个设计模式,反而比较像一种编程习惯。主要我们定义一个非常简单的类主要负责帮我们生产不同的产品。类图如下: 例子:生产鞋子:NIKE,ADIDASpackage SimpleFactory;/***鞋子的抽...
2018-04-30 10:51:57
169
翻译 java类的加载机制和反射
参考java疯狂讲义一、概述: 如果一个类还未被加载到内存中,此时程序需要主动使用该类,那么系统就会对该类进行如下三个步骤:1、 加载、2、连接、3、初始化。(ps: 每一个类都是java.lang.class的对象) 类的加载:就是将类的class的文件加载到内存,并未之创建一个java.lang.Class的对象。 类的连接:分三个阶段:1、验证...
2018-04-22 10:40:06
217
原创 java线程池
1、创建大小固定的线程池import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Test {//创建一个固定大小为15的 线程池private static ExecutorService executor = Executors.newFixedTh...
2018-03-21 09:58:18
119
翻译 IO流
视频教程参考:https://www.imooc.com/video/18321、文件的编码: 用什么编码的书写的文本,则需要对应的编码解码来读,否则会出现乱码 文本文件就是字节序列, 可以是任意编码的字节序列,如果我们在中文机器上直接创建文本文件,那么该文本文件只认识 ansi编码package test;import java.io.UnsupportedEnc...
2018-03-18 22:50:30
134
转载 java反射学习
本文参考imooc的教学视频:https://www.imooc.com/video/3736 编写1、Class类的说明a、java是面向对象的语言,在java中一切都是对象。b、类也是对象,类是java.lang.Class类的实例对象, 例如说:String类的类类型用 String.class表示;基本的数据类型 都存在类类型。c、Class.forName("类的全称"); 不仅表示...
2018-03-17 23:45:10
138
转载 使用反射生成并操作对象
下面的程序转摘与 疯狂java主要功能:实现了一个简单的对象池,该对象池就会根据配置文件读取key-value对,然后创建这些对象,并将这些对象放入一个HashMappackage Tjava;import java.io.FileInputStream;import java.util.HashMap;import java.util.Map;import
2016-08-22 23:05:26
240
转载 Autowired与@Resource的区别
原博客的地址 http://bhdweb.iteye.com/blog/1663907Autowired与@Resource的区别博客分类: spring 1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 2、@Autowired默认按类型装配(这个注解是属业spring
2016-06-09 09:29:48
254
转载 多线程同步几个例子(买票程序的synchronized)
//例子1:用extends继承Thread类,使用synchronized修饰方法里面代码块的办法//这里面的记得static是必须的,因为如果不用static的话 在Test类中声明了两个A的对象,各自都有自己的100张票//违背了火车站点购票资源统一的原则class A extends Thread{ public static String str = new
2016-05-26 19:54:16
721
原创 ORACLE新建表,删除表,设置主键,查询的简单例子
SELECT * FROM empinfdrop table empinf--创建一个员工信息表create table empinf( name VARCHAR2(32) default SYS_GUID() not null, --员工姓名 id NUMBER(24) not null,
2016-05-26 15:37:37
320
原创 struts2的一点知识(引入别人的项目,path问题,package的名字不能一样哦 )
一、引入别人的项目 import --> General --> Existing Projects into Workspace -->填入web项目的路径-->记住 勾选 copy project into workplace 二、path问题 index.jsp href中一定得是绝对路径(应该是webapp的路径localhost8080/webapp/ 即),主要
2016-05-25 22:42:19
407
原创 struts2复制项目的时候需要注意的
当你复制一个struts2项目是,但部署到服务器上已不能正常运行 解决办法:设置复制后的项目的property --> Web Project Settings --> Context root里面的值改为你复制项目的名字即可
2016-05-25 22:39:15
398
原创 搭建struts2的helloworld
搭建struts2的helloworld的步骤如下:1,下载struts22,在eclipse上新建一个动态的web项目ps:新建项目的时候不要直接点击finish,而要点击next,在后面有个生成web.xml选项上勾选上,否则不能自动生成web.xml3, 把路径\struts-2.3.28-all\struts-2.3.28\apps\struts2-blank\WEB-
2016-05-25 22:36:44
264
转载 JSP九种内置对象
JSP九种内置对象:request, response, out, session, application, config, pagecontext, page, exception. 一.request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。二.response对象:对客户的请求做出动态的响应,向客户端
2016-05-25 22:30:39
274
原创 js使用window.open用select打开新页面
文件名:使用window.open用select打开新页面.html文件代码:使用window.open打开新页面function fun(thisurl){ alert("通过this.value就可以去到Select的值 = "+thisurl); window.open(thisurl,"页面标题","width=470,hight=15,
2016-05-25 18:37:38
974
原创 js输入一个日期,返回星期的数字.html
文件名:输入一个日期,返回星期的数字.html文件代码:输入一个日期,返回星期的数字,例如输入的日期是2016-05-24 输出为 2function calcWeek(dt){var da = (dt.replace(/-/g, "/")) // 把2016-05-24 转换为2016/05/24 var da= ne
2016-05-25 18:33:52
2874
原创 js正则替换指定的所有字符
文件名字:js正则替换指定的所有字符.html文件代码:转换日期格式function calcWeek(dt){var da = (dt.replace(/-/g, "/")) // 把2016-05-24 转换为2016/05/24 return da}alert("2016-05-24 转换格式为"+calcWeek('2
2016-05-25 18:32:37
1010
原创 js比较日期格式大小 功能da1=da2返回真
文件名字:比较日期格式大小 功能da1=da2返回真.html文件代码:比较日期格式大小 功能:da1function cmpDateymd(da1,da2){var dt1 = (da1.replace(/-/g, "/")) // 把2016-05-24 转换为2016/05/24 var dt2 = (da2.replace(/-/g
2016-05-25 18:31:06
475
原创 js使用window.open打开新页面
文件名:使用window.open打开新页面.html文件代码:使用window.open打开新页面function fun(thisurl){ alert("通过this.value就可以取到Select的值 = "+thisurl); window.open(thisurl,"页面标题","width=470,hight=15,scrollb
2016-05-25 18:25:03
1317
转载 js获取当前日期的前后N天日期的方法.html
文件名:js获取当前日期的前后N天日期的方法.html文件代码: function GetDateStr(da,AddDayCount) { var da = (da.replace(/-/g, "/")) // 把2016-05-24 转换为2016/05/24 var dd = new Date(da); dd.setDate(dd.ge
2016-05-25 18:23:38
3818
原创 js点击按钮返回一个确认框
文件名:点击按钮返回一个确认框.html文件代码:点击按钮返回一个确认框 function fun() { if(window.confirm("确认删除?")){ alert("你选择的”是“!"); } else{ alert("您选择的“否”!"); }} 删除邮件
2016-05-25 18:18:46
545
原创 js创建子窗口,并通过子窗口操作父窗口的对象
文件名:创建子窗口,并通过子窗口操作父窗口的对象.html文件代码:创建子窗口,并通过子窗口操作父窗口的对象function fun(thisurl){ window.open(thisurl,"页面标题","width=470,hight=15,scrollbar=yes,resizable=no");}
2016-05-25 18:16:19
1296
原创 js定义父类窗口,接收子窗口返回的内容,window.opener.document取得父类窗口的对象.html
文件名: 定义父类窗口,接收子窗口返回的内容,window.opener.document取得父类窗口的对象.html文件代码:定义父窗口,接收子窗口返回内容 function shownewpage(thisurl) { window.open(thisurl,"弹出页面","width=470,hight=15,scrollbar=yes,resiza
2016-05-25 18:10:30
1250
转载 http://www.doc88.com/p-7374285513754.html
http://www.doc88.com/p-7374285513754.html
2016-05-16 23:43:39
11812
翻译 sds
jdbc.driverClass=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@d0lrcs.dbdev.paic.com.cn:1526:d0lrcs
2016-04-25 18:18:05
268
转载 项目学习第二天
网页上对应的是 资产证券化--资产计划管理一、.dodo是一种网页后台程序,*.jsp或者struts的组件文件*.do ,它不是一个文件,并没有一个真正的·do文件存在。它不能用编辑器(如记事本)直接打开。但是在编程的过程中后缀名的选择并没有特殊的限制,多数为编程人员为了使网站极具个性化或者隐藏正确的网页而自发使用一些后缀名网页,如今多数为Spring的组件中使用,这也成了大部
2016-03-21 14:29:40
197
转载 项目中涉及的知识第一天
一:和的区别1.:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet2.:所有代码分别处理,在页面被请求的时候才编译,被编译成多个servlet,页面语法相对独立,处理完成之后再将代码的显示结果(处理结果)组合进来。二:HTM
2016-03-18 13:58:25
233
转载 HTML中的css和div,和table的用法
CSS(层叠样式表)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。Cascading Style Sheets Positioning(CSS-P)是 CSS 的一个扩展,它可用来控制任何东西在网页上或是说在窗口中的位置div现在一般网页的布局都是使用的div+css来布局,div的话,就是通过
2016-03-12 14:58:46
734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人