- 博客(26)
- 收藏
- 关注
原创 Jsp两种include的区别
我们都知道在jsp中include有两种形式,分别是Include指令:<%@ include file=""%>和include动作:<jsp:include page="" flush="true"/> 前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。 通常当应用程序中所...
2013-09-02 11:49:26
177
原创 Java扫描指定包下的class文件(spring component scan package注解的实现)
之前在看spring注解的时候,有看到再配置文件里面定义component scan package就能自动扫描对应包下面的class,然后根据注解生成相应的bean。自己对这个功能很好奇,就搜了下,找到了实现的关键代码,记录下。后续再对这段代码深入学习。 Java代码 /** * 从包package中获取所有的Class ...
2013-08-20 10:49:06
872
原创 Terracotta环境搭建以及测试demo
1.测试代码编写:我们首先写一个demo,该demo在没有terracotta的环境下执行一次,看看结果我们首先先写一个简单的计数器代码(我们这个例子制定共享TerracottaDemo类的demo对象,它包含的count和inst对象也就随之被整个集群共享了): package com.broada.simpleparallel; ...
2013-05-17 10:16:08
464
原创 Java多线程编程详解
线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 ...
2013-05-15 14:07:55
92
原创 Gearman框架的管理
1.查看队列中的job数量(echo status; sleep 0.1) | nc 127.0.0.1 4730命令的结果会分为四列,它们的含义从左到右依次是:Function name: A string denoting the name of the function of the jobNumber in queue: A positive integer indi...
2013-05-13 14:29:16
164
原创 Gearman框架的压力测试
1.模拟简单的压力测试环境:Client端10s提交一个jobWorker端处理一个job需要30s的时间Client端一直提交job,当大量job堆积时对Gearman进行压力测试2.Gearman-Java压力测试democlient端代码: import java.util.Date;import org.gearman.Gearman;im...
2013-05-02 11:36:07
157
原创 Ubuntu 将sun jdk替换默认的open jdk
1.到官网下载安装包: jdk-7-linux-i586.tar.gz2.创建安装目录:sudo mkdir /usr/lib/jvm3. 解压缩:tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/lib/jvm4.设置环境变量:vim ~/.bashrcexport JAVA_HOME=/usr/lib/jvm/jdk-7 ...
2013-04-28 09:56:32
112
原创 Gearman框架Java demo
说明:官网gearman.org反转字符串demo的java版本1.环境:JDK1.7所需jar包:java-gearman-service-0.6.6.jar(最新的jar包,用此jar包要求jdk7) slf4j-api-1.6.4.jar slf4j-simple-1.6.4.jar2.代码: //clie...
2013-04-27 11:14:44
260
原创 Gearman框架的研究(一)
以下内容来自www.geraman.org1.Gearman介绍Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,Gearman的提供了一个通用框架,它可以让你做的工作并行,负载平衡处理,并调用函数语言之间。它可用于在各种各...
2013-04-26 11:51:12
150
原创 Gearman框架的研究(二)
Gearman在Linux上环境搭建以及注意事项 本文只陈述gearman框架的搭建过程,相关的知识点可以去http://gearman.org <!--[if !supportLists]-->1. Linu...
2013-04-25 16:04:50
110
原创 Spring AOP 实现
的学习笔记 Spring AOP的底层实现技术 AOP概述软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃,AOP的引入将有效弥补OOP的不足,OOP和AOP分别从纵向和横向对软件进行抽象,有效地消除重复性...
2013-04-18 18:13:21
109
原创 防止重复提交的解决方法
前两种是利用javascript,后面一种是在使用Struts的情况下的参考实现:1、javascript ,设置一个变量,只允许提交一次。<script language="javascript"> var checkSubmitFlg = false; function checkSubmit() { if (checkSubmitFlg == tr...
2013-04-17 21:19:18
273
原创 struts2 的工作原理
这篇文章对应的并非Struts2的最新版本,但其原理还是相同的。 这是Struts2官方站点提供的Struts 2 的整体结构。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.action”就是提起一个(...
2013-04-17 19:37:24
90
原创 正则表达式入门教程
目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式...
2013-04-15 13:11:26
91
原创 java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交...
2013-04-15 12:57:32
95
原创 Ajax原理及其实现
1、ajax原理和XmlHttpRequest对象 Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。 XMLHttpRequest是ajax的核心机制,它是在IE5...
2013-04-12 14:38:11
106
原创 类初始化顺序
1 无继承情况下的Java初始化顺序:class Sample{ Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); ...
2013-04-12 14:37:43
77
原创 Spring AOP原理及拦截器
原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。 AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persis...
2013-04-12 14:37:20
100
原创 Java类加载原理解析
1 基本信息摘要:每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语...
2013-04-12 14:36:29
114
原创 java堆栈
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会...
2013-04-12 14:36:09
72
原创 线程相关
sleep和wait的区别1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用(使用范围) synchronized(x){ x....
2013-04-11 14:33:50
107
原创 Collection和Map
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需...
2013-04-11 14:09:15
81
原创 Hashtable 和 HashMap区别
Hashtable 和 HashMap 做为 Map 的基本特性两者都实现了Map接口,基本特性相同- 对同一个Key,只会有一个对应的value值存在- 如何算是同一个Key? 首先,两个key对象的hash值相同,其次,key对象的equals方法返回真内部数据结构Hashtable和HashMap的内部数据结构相似 其基本...
2013-04-11 12:58:39
67
原创 Java中数据库连接池原理机制的详细讲解
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接 建立一个“缓冲池”。预先在缓冲池中放入一定数量的连...
2013-04-11 10:50:52
62
原创 Struts Action的线程安全问题
(1).Struts 1.x在第一次请求某个Action时,会创建这个Action实例。但之后再请求该Action实例时,就用之前创建好的这个Action处理,即它是单例模式。所以Struts 1.x的Action不是线程安全的。 但是为什么我们在使用Struts 1.x开发的时候一般不用考虑线程安全问题呢? 那是因为Struts 1.x的方法调用模式用到的参数一般都是局部变量(包括reque...
2013-04-11 10:22:24
100
原创 利用commons-fileupload实现文件上传
一.准备工作1、 下载 commons-fileupload 库,下载地址:http://commons.apache.org/fileupload/2、 下载 commons-fileupload 依赖库 commons-io,下载地址:http://commons.apache.org/io/ 二.Apache FileUpload文件上传组件API解析 Java We...
2013-01-30 13:55:48
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人