- 博客(103)
- 资源 (13)
- 问答 (1)
- 收藏
- 关注
原创 状态模式
一模式定义状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来就像是改变了其类。 二模式举例1模式分析我们借用文档编辑模式切换这一案例来说明这一模式。 2状态模式静态类图 3代码示例3.1创建状态接口一IStateJava代码 package com.demo.state; import com.dem...
2016-10-26 17:25:07
207
原创 策略模式
一模式定义策略模式:定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。 二模式举例1模式分析我们借用商场促销商品来说明这一模式。 2策略模式静态类图 3代码示例3.1 创建策略接口一IStrategyJava代码 package com.demo.strategy; ...
2016-10-26 17:24:18
154
原创 观察者模式
一模式定义观察者模式,又称为发布/订阅模式。观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 二模式举例1 模式分析我们借用气象局高温预警来说明这一模式。 2观察者模式静态类图 3代码示例3.1观察者接口一IObserverJava代码 package com.d...
2016-10-26 17:23:50
188
原创 模板方法模式
一模式定义模板方法模式:定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。 二模式举例1模式分析我们借用每日生活行为来说明这一模式。2模板方法模式静态类图3代码示例3.1建立算法骨架一AbstractPeopleJava代码 package com.demo.te...
2016-10-26 17:23:28
154
原创 访问者模式
一模式定义访问者模式:是表示一个作用于某对象结构中各个元素的操作,它使用户可以在不改变各元素类的前提下定义作用于这些元素的新操作。 二模式举例1模式分析我们借用公司层级结构来说明这一模式。 2访问者模式静态类图 3代码示例3.1抽象员工一StaffJava代码 package com.demo.structure; ...
2016-10-26 17:21:52
119
转载 一步一步教你安装Nginx+PHP+Mysql
发现很多VPS用LNMP一键安装包都 失败,有不能排错,唯有给出教程,一步一步教你安装,所谓授人于鱼不如授人于渔嘛,本文是在CentOS 5.4 操作系统下测试通过的,用的是DiaHosting上 的32位系统,为什么要用32位系统?就是为了节省内存,VPS内存都不是很多的,纯32位系统比X86_X64兼用32位系统更省内存.安装步骤:1,升级系统和安装相关的程序库yu
2014-03-31 15:49:56
689
转载 maven pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"
2014-03-28 18:33:34
523
转载 Java 服务器端支持断点续传的源代码【支持快车、迅雷】
网上关于 Java 支持 HTTP 断点续传的文章不少,但关于 Java 服务器端支持 HTTP 断点续传的却比较少。 本文是 Java 服务器端支持 HTTP 断点续传的源代码,支持快车、迅雷。 本文使用一个简单的 Servlet 来作为支持断点续传的下载示例,在 Java Web 项目下部署好后,可以使用诸如 http://localhost/cds/htt
2014-01-14 16:24:13
635
转载 Java 文件分块上传服务器端源代码
本博客将介绍如何进行文件的分块上传。如果读者还想了解文件的“分块”下载相关内容可以去参考博客《Java 服务器端支持断点续传的源代码【支持快车、迅雷】》。 本文侧重介绍服务器端,客户端端请参考本篇博客的姊妹篇《Java 文件分块上传客户端源代码》,关于分块上传的思想及其流程,已在该博客中进行了详细说明,这里不再赘述。 直接上代码。接收客户端 HTTP 分块上传请
2014-01-14 16:21:44
561
转载 求职面试中常见的错误
求职面试中,没有人能保证不犯错误。只是聪明的求职者会不断地修正错误走向成熟。然而在面试中有些相当聪明的求职者也难免会一犯再犯的,我们权称之为“高级”错误。以下是转载的常见的十二种高级错误,以飨面试者。1.不善于打破沉默面试开始时,应试者不善“破冰”(即打破沉默),而等待面试官打开话匣。实际上,无论是面试前或面试中,面试者主动致意与交谈,会留给面试官热情和善于与人交谈的良好印象。
2014-01-14 14:22:37
586
转载 SocketTimeoutException和ConnectTimeoutException的区别
前几天服务器端的产品经理跑来问我是否有做请求超时和响应超时的处理。我一脸迷茫,直接就说:我做了开发这么久,从不知道什么是请求超时什么是响应超时。后来我静下来仔细想想,确实应该有请求超时和响应超时这两个概念,不然会出很多问题的。然后花了一些时间仔细查了下资料。确实是如此。 ConnectException : 指的是服务器请求超时SocketTimeoutException:
2013-09-30 15:23:05
1420
转载 HttpClient接收数据的问题
背景:竞价大厅和支持系统进行项目的部署和竞价数据回调时,涉及到了传输XML文件。发送端采用的是HttpClient技术,将XML格式的String作为Http的Body发送。原先的做法:接收端通过Jsp的request对象的getInputStream()方法获取输入流,然后用read()方法,将输入流按照byte读取,存入byte[],然后还原成对应编码的String,并进行解析
2013-09-06 16:23:24
1016
转载 Java位运算小知识总结
运算符优先级~的优先级最高,其次是>和>>>,再次是&,然后是^,优先级最低的是|>>运算符>>是有符号位右移,简单来说就是看二进制高位的第一位是0还是1,用它来补足右移过程中缺失的高位。代码:int n = -0xf0;System.out.println("number:"+n);System.out.println("binary:"+Integer.toBina
2013-04-02 16:55:27
521
转载 Java中二进制字节与十六进制互转
在Java中字节与十六进制的相互转换主要思想有两点:1、二进制字节转十六进制时,将字节高位与0xF0做"&"操作,然后再左移4位,得到字节高位的十六进制A;将字节低位与0x0F做"&"操作,得到低位的十六进制B,将两个十六进制数拼装到一块AB就是该字节的十六进制表示。2、十六进制转二进制字节时,将十六进制字符对应的十进制数字右移动4为,得到字节高位A;将字节低位的十六进制字符对应的十进
2013-04-02 16:11:01
1141
转载 ISO8583报文手工拆解
8583报文大部分情况下用在POS终端与后台收单系统的数据交换,一般情况下一段完整的报文由以下几个部分组成: —————————————————————————————————— 长度 报文头 8583数据 ——————————————————————————————————
2013-04-02 14:51:24
806
转载 java中byte转换int时为何与0xff进行与运算
在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '
2013-04-02 11:11:01
479
原创 关于BeanUtil.copyProperties性能
BeanUtil.copyProperties 方法确实很方便,代码写出来非常优美,不会有很多的get set,但由于用到反射,可能存在潜在的性能问题。因此对spring 和 commons的BeanUtil.copyProperties进行了对照测试,代码大致如下:Java代码 @Test public void...
2012-11-22 11:34:37
278
原创 shopNc安装过程总结
ShopNc安装过程中会遇到各种问题,现根据个人经历总结如下(本人使用appserver): 1.会遇到install 完成后提示 ZendOptimizer没有安装的情况 ,那么到网上下载ZendOptimizer安装即可 2.提示:mysql_connect不支持请检查mysql模块是否正确加载. 解决办法:1.进入php目录,首先将php-recommen...
2012-11-19 18:49:06
265
原创 子类可以继承到父类上的注解吗?
不了解注解基础知识的请先看《JDK 5 Annotation\注解\注释\自定义注解》 子类可以继承到父类上的注解吗?-----------------------------------------------------------------我们知道在编写自定义注解时,可以通过指定@Inherited注解,指明自定义注解是否可以被继承。但实现情况又可细分为多种。 ...
2012-11-12 17:07:33
865
原创 JDK 5 Annotation\注解\注释\自定义注解
自定义注解示例---------------------------------------------@Transactional 注解示例 Java代码 package org.springframework.transaction.annotation; import java.lang.annotation.Docum...
2012-11-12 17:06:55
85
原创 在命令行使用maven创建web工程和安装本地jar包到本地仓库
在命令行使用maven创建web工程: 假设maven安装目录为:D:\software\apache-maven-2.2.1 首先通过cmd 进入工作目录,假设工作目录路径为:D:\workspace 则执行命令:d:cd workspace .执行后如下图: |---没有配置maven-home的情况(执行命令时要使用全路径): ...
2012-10-17 13:51:04
108
原创 Velocity源码浅析(二)
原文地址:http://www.khotyn.com/2011/07/22/velocity_sourcecode/ 很久之前就接触了Velocity,但是一直只会根据它的模板语法写一些模板,非常惭愧,于是最近看了一下Velocity的源代码,在这里记录一下看了以后的一点心得体会。一、基本概念对于Velocity是什么东西,我相信这个不用多说,在说Velocity的源代...
2012-10-16 11:35:44
207
原创 Velocity源码分析(一)——概述
原文链接:http://coderj.org/blog/2011/08/19/velocity_overview/一、概述Velocity模板引擎处理机制分为五个基本步骤:引擎初始化,通过设置的引擎属性初始化引擎,包括国际化支持,ResourceLoader设置,字符编码等。获取并解析模板文件,首先通过资源加载器(ResourceLoader)将模板文件加载到内存(转化...
2012-10-16 11:27:18
177
原创 velocity缓存优化:自定义页面片段缓存
一般,页面上会分为很多部分,而不同的部分更新的频率是不一样的。如果对整个页面采用统一的缓存策略则不太合适,而且很多系统的页面左上角都有一个该死的“Welcome XXX”。这种特定于用户的信息我们是不能缓存的。对于这些情况我们就需要使用片段缓存了。对页面不同的部分(片段)施加不同的缓存策略,而要使用片段缓存,首先就得对页面进行切分。土一点的办法可以用iframe,用if...
2012-10-16 10:56:18
178
原创 Java 性能优化之String篇
String 在 JVM 的存储结构一般而言,Java 对象在虚拟机的结构如下:对象头(object header):8 个字节Java 原始类型数据:如 int, float, char 等类型的数据,各类型数据占内存如 表 1. Java 各数据类型所占内存.引用(reference):4 个字节填充符(padding)表 1. Java 各数据类型...
2012-10-15 19:02:39
100
原创 java代码混淆技术保护你的java代码
Java是一种跨平台的、解释型语言。Java源代码编译中间“字节码”存储于class文件中。Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名、方法名等。因此,Java中间代码的反编译就变得非常容易。目前市场上有许多免费的、商用的反编译软件,都能够生成高质量的反编译后的源代码。所...
2012-10-15 18:57:48
767
2
原创 对java的源码进行`加密处理
Java程序的源代码很容易被别人偷看,只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得...
2012-10-15 18:48:08
881
1
原创 用sharding技术来扩展你的数据库 (二)
摘要:本部分首先简单介绍sharding系统的基本架构,然后重点介绍sharding机制中常用的三种表数据划分方法。 一. 数据划分算法 1. Sharding 系统的基本结构 上节我们说到Sharding可以简单定义为将大数据库分布到多个物理节点上的一个分区方案。每个shard都被放置在一个节点上面。Sharding系统是一个shared-...
2012-10-15 17:38:22
105
原创 数据库sharding技术
1. 背景数据库的扩展是一个永恒的话题。对于传统的关系数据库,采用的是纵向扩展(ScaleUp)的方式,即买更好的机器添加更多的资源来取得更好的性能(如硬件升级、更快更多的CPU、更大的内存、更多更大的磁盘等)。而形式上采用的是并行数据库、分布式数据库的模式,具体细节依赖水平分区或者垂直分区的技术。关系数据库通过ScaleUp方式已在传统的企业应用环境中统治了将近三十多年。但是近年...
2012-10-15 17:37:35
134
原创 JAVA多线程和volatile
在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器...
2012-10-12 17:23:24
74
原创 Future 模式实现java 多线程异步调用
在多线程交互的中2,经常有一个线程需要得到另个一线程的计算结果,我们常用的是Future异步模式来加以解决。Future顾名思意,有点像期货市场的“期权”,是“对未来的一种凭证”,例如当我们买了某个房地产开发商的期房,交钱之后,开发商会给我们一个凭证(期权),这个凭证告诉我们等明年某个时候拿这个凭证就可以拿到我们所需要的房子,但是现在房子还没建好。市场上之所以有“期货”,也正由于有这种需求...
2012-10-12 17:21:20
528
原创 涉及线程安全的Volatile 和 synchronized
说明:转载自:http://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlava 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一...
2012-10-12 16:43:02
96
原创 maven install时自动执行单元测试
1.maven-surefire-plugin简介Maven本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者TestNG的测试用例。这个插件就是maven-surefire-plugin,也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4以及TestNG。在默认情况下,maven-surefire...
2012-10-11 15:34:29
451
原创 eclipse下maven,svn插件的安装 和maven和svn的绑定
1.安装maven: 目前网上共存在三种方式: 1.离线安装(自己和同事分别安装过一次,自己的安装成功了,同事的没安装成功。所以不推荐使用) 2.使用http://m2eclipse.sonatype.org/sites/m2e 到Help → Install new Software这里安装,这个可以安装成功,缺点是很耗时.不推荐 ...
2012-10-11 15:16:15
129
原创 freemarker变量必须有值,没有被赋值的变量就会抛出异常 问题处理
这一点有多种方式做: 1. 用!来处理 http://freemarker.sourceforge.net/docs/dgui_template_exp.html#dgui_template_exp_missing 2. 在开发环境和生产环境用不同的Error Handler http://freemarker.sourceforge.net/docs/pgui_config_er...
2012-10-09 18:05:32
340
原创 String考点
1.String StringBuffer StringBuilder 三者的区别 String是固定长度的字符串,如果要发生变化必须重新生成新的实例;String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)效率比较:(1)被拼接的对象在内存中时,使用StringString S1 = "This ...
2012-10-08 10:37:11
121
原创 备份maven本地仓库
当你在eclipse中集成了maven2后,默认情况下,eclipse会在你的系统盘(c:/)下创建一个目录,C:/Documents and Settings/danlley/.m2/repository并将其作为数据仓库目录。如果有一天当你很不幸的需要重做系统,而又无法将maven2仓库目录下的数据及时转移的时候,你此前对maven2仓库所做的一切维护都将意味着竹篮打水一场空。为了让你...
2012-09-30 12:55:47
464
原创 使用TransactionTemplate 编程式控制事务
使用 TransactionTemplate 绝对会增加你的代码与Spring的事务框架和API间的耦合。 到底编程式事务管理是不是适合你的项目需要由你自己来决定。 应用的代码必须在一个事务性的上下文中执行,这样就会像这样一样显式的使用TransactionTemplate。你作为一个应用程序员, 会写一个 TransactionCallback 的实现, (通常会用匿名类...
2012-09-27 17:10:41
503
原创 Java编程中的性能优化手段
1.尽量使用final修饰符。带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类指定final防止了使用者覆盖length()方法。另外,如果一个类是final的,则该类所有方法都是final的。java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够...
2012-09-26 15:35:46
73
java 批量反编译软件(个人收藏)
2011-08-25
2010最新解析html开源项目jsoup源码及api下载及jsoup.jar
2010-09-28
阿水摄影网站系统 v3.0 修正版
2010-01-11
入职问题
2014-07-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人