java技术
文章平均质量分 79
prettyzhou
这个作者很懒,什么都没留下…
展开
-
Hashtable 和 HashMap区别
Hashtable 和 HashMap 做为 Map 的基本特性两者都实现了Map接口,基本特性相同- 对同一个Key,只会有一个对应的value值存在- 如何算是同一个Key? 首先,两个key对象的hash值相同,其次,key对象的equals方法返回真内部数据结构Hashtable和HashMap的内部数据结构相似 其基本...原创 2013-04-11 12:58:39 · 58 阅读 · 0 评论 -
Spring AOP 实现
的学习笔记 Spring AOP的底层实现技术 AOP概述软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃,AOP的引入将有效弥补OOP的不足,OOP和AOP分别从纵向和横向对软件进行抽象,有效地消除重复性...原创 2013-04-18 18:13:21 · 92 阅读 · 0 评论 -
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 · 244 阅读 · 0 评论 -
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 · 146 阅读 · 0 评论 -
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 · 157 阅读 · 0 评论 -
Java多线程编程详解
线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 ...原创 2013-05-15 14:07:55 · 82 阅读 · 0 评论 -
Terracotta环境搭建以及测试demo
1.测试代码编写:我们首先写一个demo,该demo在没有terracotta的环境下执行一次,看看结果我们首先先写一个简单的计数器代码(我们这个例子制定共享TerracottaDemo类的demo对象,它包含的count和inst对象也就随之被整个集群共享了): package com.broada.simpleparallel; ...原创 2013-05-17 10:16:08 · 443 阅读 · 0 评论 -
利用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 · 137 阅读 · 0 评论 -
Java扫描指定包下的class文件(spring component scan package注解的实现)
之前在看spring注解的时候,有看到再配置文件里面定义component scan package就能自动扫描对应包下面的class,然后根据注解生成相应的bean。自己对这个功能很好奇,就搜了下,找到了实现的关键代码,记录下。后续再对这段代码深入学习。 Java代码 /** * 从包package中获取所有的Class ...原创 2013-08-20 10:49:06 · 857 阅读 · 0 评论 -
防止重复提交的解决方法
前两种是利用javascript,后面一种是在使用Struts的情况下的参考实现:1、javascript ,设置一个变量,只允许提交一次。<script language="javascript"> var checkSubmitFlg = false; function checkSubmit() { if (checkSubmitFlg == tr...原创 2013-04-17 21:19:18 · 248 阅读 · 0 评论 -
struts2 的工作原理
这篇文章对应的并非Struts2的最新版本,但其原理还是相同的。 这是Struts2官方站点提供的Struts 2 的整体结构。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 客户端提起一个(HttpServletRequest)请求,如上文在浏览器中输入”http://localhost:8080/TestMvc/add.action”就是提起一个(...原创 2013-04-17 19:37:24 · 83 阅读 · 0 评论 -
Collection和Map
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需...原创 2013-04-11 14:09:15 · 71 阅读 · 0 评论 -
线程相关
sleep和wait的区别1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用(使用范围) synchronized(x){ x....原创 2013-04-11 14:33:50 · 99 阅读 · 0 评论 -
java堆栈
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会...原创 2013-04-12 14:36:09 · 67 阅读 · 0 评论 -
Java类加载原理解析
1 基本信息摘要:每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语...原创 2013-04-12 14:36:29 · 98 阅读 · 0 评论 -
Spring AOP原理及拦截器
原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。 AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persis...原创 2013-04-12 14:37:20 · 90 阅读 · 0 评论 -
类初始化顺序
1 无继承情况下的Java初始化顺序:class Sample{ Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); ...原创 2013-04-12 14:37:43 · 70 阅读 · 0 评论 -
java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交...原创 2013-04-15 12:57:32 · 85 阅读 · 0 评论 -
正则表达式入门教程
目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式...原创 2013-04-15 13:11:26 · 84 阅读 · 0 评论 -
Jsp两种include的区别
我们都知道在jsp中include有两种形式,分别是Include指令:<%@ include file=""%>和include动作:<jsp:include page="" flush="true"/> 前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。 通常当应用程序中所...原创 2013-09-02 11:49:26 · 161 阅读 · 0 评论