`
文章列表
1.当我们需要为一个类加上特殊的能力的时候,可以使用接口。 2.找出应用中可能变化的地方,把他们独立出来,不要和那些不需要变化的东西混淆起来。 3.面向接口编程而不是面向实现编程。 4.一种行为也可以表示成一个类,例如fly()的方法也可以定义他的最大高度和速度等。 5.多用组合少用继承,组合有更多的灵活性。 6.为了交互对象之间的松藕设计而努力。
1.EJB Enterprise Java Bean 企业bean,为了简化企业级的开发 2.EJB主要分为SeesionBean和MessageDrivenBean 3.(1)远程客户端:和EJB运行在不同的JVM上。    (2)本地客户端:和EJB在同一个JVM上     远程访问是需要消耗的,所以我们一定要减少方法的调用,要进行粗粒度的数据访问。 4.EJB的编写方法   (1)编写EJB的接口   (2)实现EJB的接口类   (3)定义EJB类型和EJB的访问类型   (4)部署到JBOSS 5.Client的编写方法   (1)建立一般的javaProject   (2) ...
package com.ioc; import java.util.HashMap; import java.util.Map; /** * 服务器定位,查询需要的服务和组件 * 他和工厂的主要区别是 他提供了整个应用所有 * 服务和组件对象的获取入口 * */ public class ServiceLocator { private static ServiceLocator locator; private Map<String,Object> services=new HashMap<String,Object>(); ...
package com.decorator; /** * 面包类 * @author Administrator * */ public class Bread extends Ingredient { private String description ; public Bread(String desc){ this.description=desc ; } public String getDescription(){ return descri ...

适配器模式

package com.Adapter; //适配器模式的作用是实现功能的增加和接口的匹配 //和装饰起来说,一个是对功能的丰富,一个是对功能的增加 public class AdapterTest { public static void main(String[] args) { //利用继承的方式实现 Target t=new AddAdapter(); System.out.println(t.add(1)); System.out.println(t.add(1,2)); //利用组合的方式来实现 Target t2=new AddAd ...

标识模式

package com.identity; public class Animal { } package com.identity; public class Cat extends Animal{ } package com.identity; import static com.identity.Food.*;//静态属性的引入 public class Feeder { public void feed(Animal animal,Food food) { System.out.println(animal.getClass().g ...

java内部类

1.基本的内部类 package com.innerclass; //1.内部类可以访问外部类的成员,但是外部类不可以访问内部类的成员 //2.想到方位内部类的变量,只有通过内部类的实例来实现 //3. 内部类不能定义静态成员 public class Outer { private int a1; private int a2; static int a3; public Outer(int a1,int a2) { this.a1=a1; this.a2=a2; } protected int methodA(){return a ...
1.java线程的运行机制 每个线程都有一个程序计数器和方法调用栈。 (1)计数器指向方法区中下一条要执行的指令。 (2)方法调用栈,跟踪线程运行的的调用过程。每次调用一个方法的时候就会往里面压入一个新帧。(包括局部变量区:存放局部变量和方法参数。操作数区:存放运算过程中生成的临时数据。栈数据区:为线程执行提供相关的信息,如何正常退出,异常中断等。) 程序运行的时候,创建一个主线程main(),计数器不断的往下走,每个方法运行完毕之后,也会pop掉,局部变量的生命周期也就到了。 堆区:对象。方法区:方法的内容。栈区:方法的push和pop。
1.最简单的单例模式: package com.singleton; /**这是最简单的单例模式,实现的效果的是在一个jvm中只有一个实例 * 类在加载的时候静态变量只会初始化一次。 * 1.这种模式的问题在于不能够延迟加载,当SimpleSingleton加载到内存的时候 * 实例就会自动生成,不能够延迟加载 * */ public class SimpleSingleton { private SimpleSingleton(){}; private static SimpleSingleton instance=new SimpleSingleton() ...
明天再写好啦
1.jbpm_processdefiniton 流程定义表 记录了不同版本流程的基本信息和流程初始的状态,也就是第一个节点的状态 2.jbpm_node节点表 记录了节点的类型和属性等 3.jbpm_transition节点过渡表 form one node to another 4.jbpm_action流程动作 记录流程动作的类型,动作脚本定时器等 5.jbpm_task任务表 记录了任务的属性,定时等 6.jbpm_processinstance流程实例 当前执行的流程实例 7.jbpm_token令牌 记录了当前流程实例的状态 8.Jbpm_runtimeactio ...
该框架的使用需要结合hibernate 1.创建基本的数据库表 JbpmConfiguration.getInstance().createSchema(); 2.定义流程 例如 <?xml version="1.0" encoding="UTF-8"?> <!-- 定义文档 --> <process-definition name="文档测试流程"> <!-- 文档开始 --> <start-state name="开始"> <tra ...
1.component组件 2.dispatcher调度员 3.via通过 4.alternative替换物 5.facility设施设备 6.unified统一的 7.distrubuted分布式的 8.transaction事务处理 9.profiled描绘 10.terminated终止 11.mechanism机制 途径 12.retrieved恢复 13.architecture建筑 架构 14.customized自定义 15.implicit objects内置对象 16.maintain维护 17.interact 相互影响 ...
1.首次创建servlet时,会调用init方法,因此,init是防止一次性设置代码的地方。在这之后每一次用户请求,都会创建一个线程,该线程调用前面创建实例的service方法。 2.service方法检查用户请求的类型,get,post.delete等。 3.servlet一定要保证是线程安全的,可以使servlet继承singlethreadmodel 4.用户发送来的请求信息全部在httprequest里面,request header里面放着请求的报头信息 5.response.sendError sendRedirect 6.Resources are anything c ...
package multithreading; public class ProductConsumer { public static void main(String[] args) { Stack stack=new Stack("s1"); Productor p1=new Productor("p1",stack); Consumer c1=new Consumer("c1",stack); } } class Consumer extends Thread { privat ...
Global site tag (gtag.js) - Google Analytics