- 博客(30)
- 收藏
- 关注
原创 设计模式-行为模式
设计模式分为:创建模式、结构模式、行为模式行为模式:(1)Chain of Responsibility-责任链模式 定义:使多个对象都有机会处理请求,从而避免了请求发送者和接受者的耦合关系.将这些对象链成一个链,并沿着该链依次向上发送请求,直到有对象处理该请求为止 来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这样象一个链条(cha
2016-03-19 20:25:36 404
原创 设计模式-结构模式
设计模式分为:创建模式、结构模式、行为模式结构模式:(1)Proxy-代理模式 定义:为一个对象提供代理,以控制对象的访问.优点: 1. 代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。 2. 代理对象将被代理对象透明化. 3. 具有较高的扩展性.被代理对象的修改不会影响代理对象及其外部调用.缺点: 1. 由于在客户端和
2016-03-19 20:04:07 366
原创 设计模式-创建模式
设计模式分为:创建模式、结构模式、行为模式创建模式:(1)Factory-工厂模式 定义:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。由产品类的具体类来决定,将要实例化哪一个产品类。优点: 1. 良好的封装性,代码结构清晰。要创建一个产品只需要知道产品类的名字,不需要了解产品类的具体实现。 2. 良好的扩展性。要添加一个新的产品,只需要继承抽象产
2016-03-19 19:31:40 330
原创 JMS-OpenJMS提供商
JMS是一个规范,实现 JSM 客户端发送和接收消息,必须有一个实现了 JMS 的消息系统(即 JMS 提供商),我们在编写 JMS客户端时,使用 **JNDI API** 查找已配置的 JMS 对象(ConnectionFactory、Destination被管理对象),JMS供应商提供专有的工具来创建和管理它们。目前用的最多的JMS主流开源项目是OpenJMS和ActiveMQ。 本文选
2016-03-18 23:07:27 536
原创 Maven-相关命令
1. 使用 maven 安装 jar 包到本地仓库把jms-1.1.jar 安装到仓库 javax文件夹下mvn install:install-file -Dfile=C:\jms-1.1.jar -DgroupId=javax -DartifactId=jms -Dversion=1.1 -Dpackaging=jar// DgroupId和DartifactId构成了该jar包在pom.xm
2016-03-17 16:30:41 521
原创 Java 消息服务(JMS)
一、概述 JMS给Java程序员提供了一种通用的方式来创建、发送、接收和查看企业消息系统消息。JMS的所有用户都称为客户端(Client) Java消息服务(Java Message Service, JMS)可以在完全不同的平台上实现应用程序和系统请求的服务调用;异步处理请求的能力,缓解系统瓶颈,提高系统的可伸缩性;能够实现组件之间的高度解耦,使系统具有高度的灵活性和敏捷性。二、架构描述基
2016-03-12 19:56:48 783
转载 架构之分布式消息队列
一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解
2016-03-11 10:25:33 425
原创 Java 反射
一、Java 反射可以动态的创建和编译对象,获取正在运行的对象的信息。反射的功能: 1、判断对象所属的类 2、判断对象拥有的成员变量和方法 3、可以调用 private类型的方法反射的缺点对性能有影响,慢于直接执行相同的操作
2016-03-10 10:20:29 289
原创 Spring整合Junit4
1、加入相应依赖包 junit4-4.7.jar 以及spring相关jar包2、在测试代码的源码包中如 src/test/java 新建一个抽象类如下import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.te
2016-03-08 10:37:52 570
原创 Maven基本用法
Maven是什么? Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。Maven使用标准的目录结构和默认构建生命周期,所有的项目都有如下的结构: MavenProjectRoot(项目根目录) |—-src | |—-main | | |—-java ——存放项目的.java文件 | | |—-resources ——存放项目资
2016-03-02 09:12:27 3593
转载 Spring配置c3p0、dbcp数据库连接池
c3p0简介: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展c3p0所需jar:c3p0-0.9.2.1.jar、 mchange-commons-java-0.2.3.4.jardbcp简介: DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是
2016-02-26 16:19:58 613
原创 HTTP协议
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一个应用层的面向对象的协议,由请求和响应构成,是一个标准的客户端服务器模型,HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 HTTP协议通常承载于TCP协议之上,默认端口号为 80;有时承载于TLS或SSL协议层之上,这时就是HTTPS,默认端口号为443。
2016-02-25 21:02:53 489
原创 Tomcat 调优
Tomcat的优化分两块:Tomcat启动时JVM参数和.Tomcat自身优化 Tomcat默认使用的内存是128M,可以增大Tomcat启动时JVM内存。 Windows修改catalina.bat: set JAVA_OPTS=-server -Xms256M -Xmx512M Linux修改catalina.sh文件:
2016-02-25 16:40:08 308
原创 JBPM-工作流
1. JBPM基础 JBPM,全称是Java Business Process Management(业务流程管理),工作流(Workflow)即业务过程的部分或整体在计算机应用环境下的自动化。基于Java的业务流程管理系统,使用Hibernate来管理它的数据库,通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。2. JBPM4.4开发环境2.1 相关资源jb
2016-02-24 22:28:32 400
原创 Struts2-工作原理
本文主要总结一下 Struts2的工作原理,相关源码分析,以及与Struts1的区别。1. Struts2的工作原理Struts2的工作原理可以用下面这张图进行描述: (1)客户端初始化一个指向Servlet容器(例如Tomcat)的请求(HttpServletRequest) (2)这个请求经过一系列的Filter(首先是ActionContextCleanUp,然后是其他过滤器Other
2016-02-24 22:24:55 275
原创 Servlet&Jsp
一、Servlet(1)Servlet基础 Servlet是运行在Web服务器或应用服务器,它担当Web 浏览器或其他Http 客户程序发出的请求,数据库或应用程序之间的中间层。 Servlet 的任务是:首先读取客户端发送的数据、隐式HTTP
2016-02-22 21:48:16 247
原创 SOA-面向服务架构
许多企业和政府部门使用不同技术,建设了不同规模的应用系统,造成了"信息孤岛"现象,SOA面向服务的体系结构,提倡将不同应用程序的业务功能封装成**“服务”**并宿主起来,通常以接口和契约的形式暴露并提供给外界应用访问(通过交换消息),达到不同系统可重用的目的。
2016-02-22 14:53:57 369
原创 Java 异常
Java异常是指发生在程序执行过程中错误事件,Java预先定义了很多异常类,Throwable 类是 Java 语言中所有错误或异常的超类,它又可以分为两种类型(两个子类): 1)Error:表示程序在运行期间出现了十分严重、不可恢复的错误,在这种情况下应用程序只能中止运行,(除特殊情况,一般自己不用关心)比如OutOfMemoryError2)Exception:表示程序本身可以处理的异常,它又分为两大类:
2016-02-20 20:23:27 276
原创 Java 容器
Java 容器类类库的用途是”保存对象”,容器API位于 java.util包内,其中分为两个概念不同的集合,如下类图: 图-1 容器相关类图 一、Collection:其元素是一组Object对象序列,不同自接口又有不同的规则、行为(继承和多态的应用,表现不同的行为) 二、Map:一组成对的”键值对”对象,不能有相同的key,一个key对应一个value
2016-02-20 20:18:49 318
原创 JVM虚拟机执行子系统
虚拟机类加载机制:代码编译的结果从本地机器码转变为字节码,Java编译后产生Class文件,虚拟机把Class文件加载到内存,并对数据进行校验、解析和初始化,最终形成可被虚拟机使用的Java类型。类从被加载到内存到卸载出内存,整个生命周期包括以下 7 个阶段
2016-02-01 22:05:47 414
原创 JVM OutOfMemoryError异常
《深入理解Java虚拟机》 在Java虚拟机中,除了程序计数器外,其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能。 JVM 堆溢出、Java栈和本地方法栈溢出、方法区溢出、本机直接内存溢出
2016-02-01 15:56:13 1032
原创 Java 多线程
一、线程的基本概念 几乎每种操作系统都支持进程的概念 – 进程就是在某种程度上相互隔离的、独立运行的程序 进程 是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程 是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某
2016-02-01 15:41:11 340
原创 Java IO/NIO
在Java程序中,对于数据的输入/输出以”流”(Stream)方式进行 java.io 包定义了多个流类型: 1) 按数据流方向分为 – 输入流和输出流 2) 按数据单位分为 – 字节流和字符流 3) 按功能分为 – 节点流和处理流所有流类型均位于java.io包内,分别继承以下四种抽象流类型: 字节流 字符流 输入流 InputStr
2016-02-01 15:40:48 1024
转载 JVM源码分析之堆外内存完全解读
JVM源码分析之堆外内存完全解读广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:M
2016-02-01 15:19:33 379
原创 JVM垃圾收集
JVM垃圾收集 垃圾收集器在对堆进行回收之前,如何判断对象是否”存活“? > 引用计数算法:创建对象时 > 可达性分析算法:通过一系列称为”GC Roots” 的对象作为起点,… …垃圾收集算法:标记-清除算法(Mark-Sweep)、复制算法(Copying)、标记-整理算法(Mark Compact)
2016-02-01 11:13:22 329
原创 JVM内存管理
Java虚拟机在执行Java程序时,会把它所管理的内存区域在逻辑上划分为不同的区,具体如下图: 堆(Heap) 堆内存是被所有线程共享(因此在堆上分配内存需要加锁)的一块内存区域,主要用来存放对象的实例,垃圾回收也主要是回收堆的空间。 现在收集器基本都采用分代收集算法,Java堆还可以细分为:新生代(Young Generation)、老年代(Old Generation)和永久代(Pe
2016-01-29 16:44:10 266
原创 1-Linux-系统目录
1-Linux-系统目录两个特殊目录 [ . ] 点代表当前目录,也可以用[ ./ ]表示 [ .. ] 点点代表上一层目录,也可以用[ ../ ]表示Linux系统的主要目录:(在Linux系统中所有对象都是文件或者目录)[ / ] 根目录:Linux文件系统的入口,所有的目录文件设备都在此目录下,开机时第一个挂载的Partition(分区) -[/boot]:存放Linux的核心档案
2016-01-27 15:25:40 279
原创 3-Linux-档案属性-chmod-chown-chgrp
# ls -l drwxr-xr-x 2 root root 4096 Aug 6 11:11 Desktop -rwxrwx-wx 1 root root 18 Aug 15 21:06 data七个字段的含义一次为: [-rwxrwx-wx]–属性 [1]–连接数 [root]–拥有者 [root]–所属群组 [18]–大小 [Aug] 15 21:06–最后
2016-01-27 15:23:20 333
原创 2-Linux-虚拟机系统安装
2-Linux-虚拟机系统安装 VMware 安装 Red Hat Enterprise Linux Server release 5.9一、安装前VMware准备 创建新的虚拟机–>选择 自定义(高级)–> 默认–> 稍后安装操作系统–> Linux 版本 Red Hat Enterprise Linux 5 64位 –> 默认 –> 默认 –> 默认 –> 使用桥接网段 –> 默认 –> 默认 –>
2016-01-27 14:57:21 290
原创 Java基本类型及其封装类
Java设定了每种基本类型所占存储空间的大小,并且不随机器结构的变化而变化。 基本类型与其包装类的区别 · 基本类型只包含数据,而包装类包含了数据和操作 · 在一个方法中,基本类型变量和引用变量都在栈中,而具体的对象存储在堆中 · 引用变量缺省值为 null,基本类型缺省值与它们的类型有关
2016-01-26 16:52:45 571
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人