自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 java浅复制和深复制

浅复制被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。看下面的例子School类public class School implements Cloneable{ private String name; public School(String name){ this.name = name; } @Over...

2014-05-26 17:27:24 146

原创 设计模式在实际开发中的使用——模板方法模式

模板方法模式,定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面看一个模板方法模式在实际中的例子:maven的生命周期管理。maven的生命周期对所有的构建过程进行了抽象和统一。这个生命周期包含了初始化、编译、测试、打包、验证、部署和站点生成等几乎所有的构建步骤。maven的生命周期是抽象的,这意味着生命周...

2014-05-20 17:12:00 375

原创 设计模式在实际开发中的使用——工厂模式

工厂模式分为三类:1)简单工厂模式(Simple Factory)2)工厂方法模式(Factory Method)3)抽象工厂模式(Abstract Factory)可以将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例。 下面以发送邮件和发送短信为例实现这三种模式 简单工厂模式:又称静态工厂方法模式,定义一个用于创建对象的接口。接口类publ...

2014-05-19 15:00:38 332

原创 设计模式在实际开发中的使用——单例模式

单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 Runtime类Runtime是个单例类,表示当前JVM的运行环境。可以看如下测试代码Runtime runtime1 = Runtime.getRuntime();Runtime runtime2 = Runtime.getRuntime();System.out.println(r...

2014-05-14 09:38:13 789

原创 设计模式在实际开发中的使用——代理模式

代理模式,为其他对象提供一种代理以控制对这个对象的访问。最典型的应用是Spring的AOP。 代理类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而成。 静态代理的实现以代理用户Service为例接口类public interface ...

2014-05-14 09:34:25 642

原创 java类加载机制

java的类加载器有3种:引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。系统类加...

2014-05-11 22:01:11 72

原创 HDFS API

常用命令进入/home/hadoop-2.4.0/bin目录列出根目录:hadoop fs -ls创建目录:hadoop fs -mkdir /root删除目录:hadoop fs -rmr /root本地文件到HDFS:hadoop fs -put /home/test.txt /root/test.txtHDFS到本地文件:hadoop fs -get /r...

2014-04-29 15:33:54 87

原创 hadoop2.4环境搭建

hadoop官网http://hadoop.apache.org/,可以下载最新的hadoop版本,这里安装最新的hadoop-2.4.0.tar.gz。采用集群方式安装hadoop,只有一台master服务器,有多个slave服务器,这里暂时定义一台slave服务器。master服务器的域名为master,slave服务器的域名为slave1。 准备条件1.jdk安装...

2014-04-28 18:03:31 76

原创 mybatis复杂查询例子

最近用到了mybatis框架,对于多表联合查询将结果集转化为复杂java对象。现在写下这个例子,基本包括了多对多,一对多,多对一的复杂情况。 表结构和javabean5张表:博客表blog,作者表author,文章表post,标签表tag,文章标签关联表post_tag。每个博客对应一个作者,和多个文章。每个文章对应一个作者。文章和标签是多对多的关系。建表sq...

2014-04-05 11:15:05 312

原创 lucene入门例子

lucene是一个开源的全文检索引擎工具包。在学习lucene之前需要对全文检索的原理有一定的了解,http://ye-liang.iteye.com/admin/blogs/new,这篇文章对了解原理很有帮助。我这里只附上自学过程中写的一个例子。 lucene下载地址:http://lucene.apache.org/ lucene的核心功能两大块:创建索引和搜索 ...

2014-04-04 14:31:16 125

原创 使用CAS实现单点登录

单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架。CAS的下载地址:http://www.jasig.org/cas/do...

2014-04-01 17:34:59 225

原创 JFace开发的Redis桌面客户端

先介绍一下java桌面程序开发的几个名词。SUN公司最开始提供了桌面程序开发库AWT,但AWT功能很弱。SUN后来又提供了AWT的升级版Swing。Eclipse提供了更加强大的工具SWT,JFace是对SWT的扩展,API更加简单,并提供了MVC的封装。功能强弱关系:AWT->Swing->SWT->JFaceeclipse开发SWT需安装插件,具体过程请参考h...

2014-03-27 14:44:37 117

原创 java实现SSL

SSL分为单向认证和双向认证。单向认证是客户端信任服务端,双向认证是客户端既要信任服务端而且服务端也要信任客户端。 不管是客户端还是服务端,都要存以下两样keystoreKeyStore:保存自己的公钥和私钥。Trust KeyStore:保存对方的公钥证书。 如果是单向认证,服务器端的KeyStore存储自己的公钥和私钥,客户端的Trust KeyStore要导入服务...

2014-03-24 21:55:15 162

原创 PKI知识梳理

场景:S要通过Internet发送一份文件给R,这份文件非常重要,不能有丝毫差错,而且不能被别人知道文件的内容。如何安全发送这份文件。 采用对称加密算法加密文件后传输。S用对称密钥加密明文后得到密文,通过Internet发送密文给R,R用对称密钥解密密文,得到想要的明文。这种方式需要R将对称密钥告知S,如果途中被黑客截获了对称密钥,整个过程就不是保密的了。采用非对称加密传输数...

2014-03-23 17:16:38 145

原创 Spring事务学习

基本概念spring可以通过下面两种方式实现事务声明式事务:通过注解或XML配置文件指定事务信息编程式事务:通过编写代码实现事务使用声明式事务只需修改配置文件,不用编写侵入式的代码就能实现事务管理,这里只介绍声明式事务。 事务传播行为Required:必须有逻辑事务,否则新建一个事务,使用PROPAGATION_REQUIRED指定,表示如果当前存在一个逻辑事务...

2014-03-11 21:33:02 76

原创 eclipse开发maven工程

Maven安装下载maven:进入Maven官网http://maven.apache.org/download.cgi下载最新版本apache-maven-3.1.1-bin.zip这里解压到D:\java_tool\apache-maven-3.1.1 配置maven环境变量:M2_HOME: D:\java_tool\apache-maven-3....

2014-03-10 20:11:23 75

原创 从一个系统架构展现我们需要掌握哪些技术

最近想总结下自己已掌握了哪些技术,还有哪些技术可以学习,所以写下这篇文章。先从一张系统架构图开始说起: 这个系统没有具体的名称,严格来说只代表了一种“思想”。这种“思想”就是对外提供一种能力,这种能力根据业务处理层的service决定。比如将这种架构运用到“XX交易平台”,提供的能力就是转账、账户查询;将这种架构运用到“XX终端管理系统”,提供的能力就是终端设备的认证、升级等。...

2014-03-09 18:31:36 472

原创 使用Jersey2开发RESTful(2)——整合spring

目前网上很多整合都是Jersey1和spring。这里写的是最新的Jersey2和spring的整合。 Jersey的基本思路是两条:引入Jersey2的spring插件将Jersey的Resource交给spring容器管理 以上一篇的工程为例 添加Jersey的spring支持通过maven下载jar包<dependency>...

2014-03-05 15:59:14 287

原创 ActiveMQ学习

JMS概述JMS:Java消息服务。定义了Java中访问消息中间件的接口。JMS只是接口,实现JMS接口的消息中间件称为JMS Provider,例如ActiveMQ。PTP:Point to Point,点对点消息模型Pub/Sub:Publish/Subscribe,发布/订阅消息模型Queue:队列目标Topic:主题目标 JMS支持两种消息传送模型P...

2014-03-01 21:07:43 77

原创 Mina学习

Mina是一个网络通信应用框架,可以实现TCP/IP、UDP/IP协议的通信,帮助我们开发高性能、高扩展的网络通信应用。下载地址:http://mina.apache.org/。 基本概念SocketConnector/IoAcceptor:分别封装了服务器和客户端对象。IoFilter:定义了一组拦截器。可以实现日志输出、数据的编解码等。主要用于数据的编解码,通过M...

2014-02-27 17:27:14 109

原创 spring常用注释小结

在spring里面使用注释必须先开启注释驱动支持<context:annotation-config/><aop:aspectj-autoproxy/>开启@AspectJ的注释 对Bean的注释可以用@Component 、@Repository、@Service、@Controller注释类。@Component 是通用形式。@Repo...

2014-02-24 10:44:40 81

原创 使用Jersey2开发RESTful(1)——入门

Jersey的下载地址https://jersey.java.net/。这里下载最新的版本jaxrs-ri-2.6.zip。 创建工程新建一个web工程,引入Jersey所需的jar包。 修改web.xml<servlet> <servlet-name>jersey_rest</servlet-name>...

2014-02-23 20:11:06 244

原创 使用jaxws开发webservice(2)——整合spring

修改上一篇server的工程。删除sun-jaxws.xml和wsdl文件夹以及生成的webservice相关代码。只保留Hello类。 引入spring的相关jar包到server工程。spring整合jaxws还需jaxws-spring-1.9.jar和xbean-spring-3.14.jar两个包。可以通过maven下载。<dependency> &l...

2014-02-22 20:34:07 134

原创 使用jaxws开发webservice(1)——入门

JAX-WS2.0 的全称为 Java API for XML-Based Webservices (JAX-WS) 2.0。JAX-WS 2.0 是对 JAX-RPC 1.0 规范的扩展,是 JAX-RPC 1.1 的后续版本, JAX-RPC 2.0 标准发布不久后便被重新命名为 JAX-WS 2.0。下载地址https://jax-ws.java.net/解压后目录如下 b...

2014-02-22 18:44:43 252

原创 SQL查询优化

 对where后面的查询条件建索引可以增加查询速度。in,like关键字不走索引,避免使用,或者用exists代替in。 调整where后面查询条件顺序。比如select * from T where a=‘...' and b=‘....'。符合条件a的占行数1%,而符合条件b的占行数的99%,所以将a放在前面。 调整from后面表名顺序。比如select * from a...

2014-02-21 17:40:30 64

原创 sql连接查询

sql连接查询的连接查询分为交叉连接、内连接、外连接。以下面两张表为例演示连接查询。a表b表  外连接分为左连接、右连接、完全外连接 左连接:left join 或left outer joinSELECT * FROM a LEFT OUTER JOIN b ON a.aid=b.bid返回结果返回a表所有行,根据on的条件返...

2014-02-17 21:09:26 102

原创 FreeMarker入门

FreeMarker是一个用Java编写的模板引擎,主要用来生成HTML Web页面,特别是基于MVC模式的应用程序。FreeMarker基本可以取代JSP作为表现层技术。FreeMarker官网http://freemarker.org/FreeMarker输出=模板+数据模型 简单示例新建模板文件test.ftl<root name="${root}...

2014-02-10 23:21:25 67

原创 Spring AOP简化资源池管理

在开发过程中,我们常会用到一些资源池,比如线程池、数据库连接池。在操作这些资源池之后,往往要将一开始得到的资源池对象释放回资源池。在代码中通常这样实现try { //从资源池获取一个资源,进行业务处理} catch (Exception e) { //异常处理}finally { //释放资源到资源池}每次进行业务逻辑处理的时候都这样写是不...

2014-02-08 16:52:26 423

原创 ThreadPoolExecutor使用

线程池类ThreadPoolExecutor首先看下构造方法ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, R...

2014-02-07 22:46:42 79

原创 java反射总结

Class类代表一个类。可以通过以下3种方式获取:Class.forName方式获取,推荐使用这种方式Class<?> classType = Class.forName("com.test.reflection.Student"); 类名.class方式获取Class<?> classType = Student.class; 对象的g...

2014-02-04 23:01:28 69

原创 Spring AOP学习

基本概念目标对象(Target Object):需要被织入横切关注点的对象,即该对象是切入点选择的对象,需要被通知的对象,从而也可称为“被通知对象”;由于Spring AOP 通过代理模式实现,从而这个对象永远是被代理对象,在AOP中表示为“对谁干”。比如Service层的实现类。连接点(Jointpoint):表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化、方法...

2014-02-02 22:41:54 51

原创 java线程并发库

java线程并发库:Java5以后提供在并发编程中很常用的实用工具类,这些工具类在java.util.concurrent包下面。 java.util.concurrent.atomic包支持在单个变量上解除锁的线程安全编程。可以对基本类型、数组中的基本类型、类中的基本类型等进行操作。 线程池创建一个只有一个线程的线程池,与单线程一样,但好处是保...

2014-01-31 20:45:19 123

原创 java线程(笔试用)

启动线程两种方式继承Thread类new Thread() { public void run() { }}.start();实现Runnable接口new Thread(new Runnable() { public void run() { }}).start(); 线程互斥多个线程操作同一个资源(...

2014-01-31 11:22:13 65

原创 Linux下apache+tomcat+jk+ssl配置

准备工作确保服务器安装了g++、gcc、jdk,命令如下g++ --versiongcc --versionjava -version下载apache:http://httpd.apache.org/download.cgi 这里用httpd-2.2.26.tar.gz下载tomcat:http://tomcat.apache.org/download-70.c...

2014-01-28 16:12:22 254

原创 Eclipse打jar包插件FatJar

Eclipse将web工程打成jar包很容易,但要将java工程打成jar包,不会自动引入第三方的jar文件。可以安装插件FatJar。下载地址http://sourceforge.net/projects/fjep/files/fatjar/fatjar_0_0_31/ 将解压后的net.sf.fjep.fatjar_0.0.31.jar复制到eclipse的plugins目录...

2014-01-27 14:58:26 80

原创 HAProxy安装及使用

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理。 安装可以从http://haproxy.1wt.eu/下载安装包。这里下载haproxy-1.4.24.tar.gz上传haproxy-1.4.24.tar.gz到服务器,比如/home解压tar zxvf haproxy-1.4.24.tar.gz查看linux内核uname -a,比...

2014-01-27 13:59:30 131

原创 PowerDesigner常用汇总

新建PhysicalData试图左侧工作空间上右键"New"—>"Physical Data Model"弹出框选择"Physical Data",输入"Model name" 配置数据源工具栏"Database"—>"Configure  Connections"—>"Connection Profi

2014-01-24 09:42:24 66

原创 Java密码学(7)——安全协议HTTPS

HTTPS协议是网络上最常用的安全协议。HTTPS=HTTP+SSL/TLS。HTTPS分为单向认证和双向认证:单向认证服务:服务端提供服务器证书给客户端,客户端单向认证服务端双向认证服务:服务端提供服务器证书给客户端,客户端提供客户证书。客户端和服务端双向认证。 为tomcat配置单向认证使用KeyTool生成密钥库文件(.keystore)和证书(.cer)。...

2014-01-20 16:40:36 115

原创 Java密码学(6)——数字证书

概述消息摘要算法验证数据的完整性,对称加密和非对称加密算法保证了数据的保密性,数字签名算法用于抗否认性服务。数字证书集合了这些知识:自身带有公钥信息,可以完成加解密操作;带有数字签名,可以鉴别消息来源;带有消息摘要信息,可以验证数据的完整性;含有用户身份信息,具有认证性。数字证书需由数字证书颁发认证机构(Certificate Authority,CA)签发。签发过程实际上...

2014-01-12 19:57:35 851

原创 Java密码学(5)——数字签名算法

数字签名算法是一种带有密钥的消息摘要算法,数字签名算法=非对称加密算法+消息摘要算法。数字签名算法能验证数据的完整性、认证数据来源、起到抗否认作用。数字签名算法包含签名和验签两项操作,遵循“私钥签名,公钥验签”的原则。签名时需要私钥和待签名数据,验签时需要公钥、签名值和待签名数据。数字签名算法主要包括RSA、DSA、CDSA。 RSA算法模型分析代码...

2014-01-11 21:26:10 869

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除