自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 客户需求文档 MRD 和项目需求分析文档

2008/07/23, 12:00 上午   客户需求文档 MRD Marketing Requirement Doc 和项目需求分析文档是项目开始时最重要的文档。是项目实施的依据,MRD 是来自客户和市场部门的需求文档, 项目需求分析是软件开发组根据MRD 做出的分析。 有了MRD 为什么还要有需求分析文档?这是以求技术部门的理解与客户的需求以及市场部门的理解一致。客...

2011-05-31 09:01:41 473

原创 类分解器JavaP--分析Java字节码

关键字: java基础 转自: http://www.comprg.com.cn/detail.asp?hw_id=2632深入Java编程——Java的字节代码Java程序员很少注意程序的编译结果。事实上,Java的字节代码向我们提供了非常有价值的信息。特别是在调试排除Java性能问题时,编译结果让我们可以更深入地理解如何提高程序执行的效率等问题...

2011-05-28 16:41:15 170

原创 Java字节码揭秘——第四部分

实践中的Java字节码对Java字节码有了一定了解之后,我们可以来看看一些常用的和熟悉的Java语言的内容是如何与字节码映射的,也可以获得一些Java实现的细节内容。 Java 5:自动封装(autoboxing)Java 5版本的一个新特性是自动封装(autoboxing),基础数据类型因语义环境的需要...

2011-05-28 14:19:00 72

原创 Java字节码揭秘——第三部分

接上一部份: 以下是一个简单的异常处理例子: public class ExFun{        public static void main(String[] args)        {               try               {                       System.out.println("In ...

2011-05-28 14:18:29 95

原创 Java字节码揭秘——第二部分

Java字节码分类JVM字节码集合基本上是分为几个不同的大类的。我们不会逐一介绍字节码的操作符,我们讨论类别,然后着重拿出一些常用的操作符,其余的均可通过JVM规范来获取详情。 堆栈操作。pop、pop2:将堆栈的值弹出。pop2用来弹出64位的值,pop用来弹出32位的。 du...

2011-05-28 14:17:55 62

原创 Java字节码揭秘——第一部分

写在前面这一两年,在JVM上使用其他替代语言越来越热门了。现在至少有三门语言有幸在Java Community Process中得到了官方认可:JRuby、Groovy和Bean-Shell。另外,代号为野马(Mustang)的Java 6发布了包含了一个专为封装不同脚本引擎的API层,就像JDBC访问数据库的...

2011-05-28 14:17:25 66

原创 变量互换

今天在CSDN上看到一个帖子,标题是最经典的代码,很多人都发了自己认为很经典的代码。但是大多都吸引不了我的眼球。     在往后翻了几页后,有一串代码,确实让我震撼了。     a ^= b; b ^= a; a ^= b;     就这三句,实现了 a b 两个变量的交换。     以前我们传统的交换两个变量值的方法是用一个临时变量来进行过渡:     t...

2011-05-25 21:56:40 136

原创 mysql 批量update

我们都知道在MySQL中批量insert的速度会比一条条insert快很多。类似的,update也应该是如此,但因为update的值往往因为条件的不同而不同,只能分开做。但是在下面的情况下,批量的update是可以做到的。1. 查询的条件中有主键或唯一键2. 查询的条件是等于,而不是范围。这实际上包含了1的情况在1的情况下,可以使用replace 或者 insert into ...

2011-05-25 17:56:59 84

原创 TCPDUMP常用参数

========================================作者: zhoushq(http://hi.baidu.com/zhou2008/)发表于: 2008.04.28分类: tcp 出处: http://hi.baidu.com/zhou2008/blog/item/ec28c7fd8f26a240d7887d74.html=======...

2011-05-24 18:11:43 425

原创 经验分享:如何迅速成为Java高手

很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!    要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnviron...

2011-05-20 00:06:36 84

原创 Java高手经验分享 Java性能的十一个用法

作者:卡多  【赛迪网-IT技术报道】  private static Credit BaseCredit = new Credit();public static Credit getNewCredit() {return (Credit) BaseCredit.clone();}  Java语言习惯用语  1。循环  ■ 在重要的循环里,消除循环终止判断时的方法调用。 ...

2011-05-20 00:05:28 63

原创 [转]Vector、ArrayList和hashtable hashmap数据结构

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHa...

2011-05-19 23:43:06 72

原创 Java中Queue和BlockingQueue的区别

1.BlockingQueue:支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。  2.BlockingQueue 不接受 null 元素。  3.BlockingQueue 可以是限定容量的。  4.BlockingQueue 实现是线程安全的。Queue不是线程安全的。因此可以将Blockingqueue用于用于生产者-使用...

2011-05-19 23:42:16 101

原创 驯服 Tiger: 并发集合 作者:John Zukowski

驯服 Tiger: 并发集合超越 Map、Collection、List 和 SetJohn Zukowski (jaz@zukowski.net) 总裁, JZ Ventures, Inc.2004 年 6 月 在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用...

2011-05-19 23:40:04 100

原创 java中LinkedList 集合类实现栈和队列

栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。   LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:ArrayList)相比,插入和删除比较方便,但速度会慢一些。栈的定义     栈(Stack)是限制仅在表的一端进行插入和...

2011-05-19 23:30:03 103

原创 MyBatis (转载)

一、MyBatis简介与配置MyBatis+Spring+MySql1.1MyBatis简介      MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apac...

2011-05-19 18:20:22 95

原创 JMagick+ ImageMagick

作者: jiangyuntc    时间: 2011-2-24 09:01     标题: JMagick+ ImageMagick做网站往往需要处理各种各样的图片,对于jdk自带的一套图片处理库,他的特点是稳定简单,但是对图片处理来说,性能确实很不咋的!        于是我转向了以C++处理为核心的java处理包—— JMagick+ ImageMagick 。jmagick是一个开源的API...

2011-05-17 23:53:47 106

原创 linux下安装ImageMagick-6.5+JMagick -6.4 经测试成功的

注:资源包中包含了必要的.tar.gz安装包,ImageMagick-6.5太大了点,自己去官网下载Jmagick包中的Changelog.txt中有ImageMagick与JMagick版本对应的关系的说明)安装说明:==================================cd /usr/bin/rm javarm javacln -s /usr/ja...

2011-05-16 14:02:01 179

原创 亿级数据的高并发通用搜索引擎架构设计

Author: study | May be reproduced, but the form must be a hyperlink labeled articles and original source Copyright Statement URL: http://study.byoou.com/notes/item-1033-亿级数据的高并发通用搜索...

2011-05-15 18:00:55 191

原创 Java 理论与实践: 正确使用 Volatile 变量

volatile 变量使用指南 Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun Microsystems简介: Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使...

2011-05-13 19:51:53 64

原创 BoneCP数据源配置详解

BoneCP是一个快速,开源的数据库连接池。帮你管理数据连接让你的应用程序能更快速地访问数据库。比C3P0/DBCP连接池快25倍。该项目主页:http://jolbox.com/about.html 为什么 BoneCP 连接池的性能这么高呢?1. BoneCP 不用 synchronized 关键字来处理多线...

2011-05-13 17:23:52 242

原创 Java中的BoneCP数据库连接池用法

在2006年8月的时候我在项目中使用过Proxool这个Java数据库连接池,在当时的使用过程中遇到了一些问题,为此曾写过一篇名为《关于Proxool使用的一点问题》的博客,网址是http://blog.csdn.net/zhoufoxcn/archive/2006/08/30/1142685.aspx,博文发布以后有很多朋友在博文下面留言,因为它们也遇到了类似的问题。我记得我在2006年...

2011-05-13 17:22:27 197

原创 解惑 spring 嵌套事务

在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition 接口中的定义 折叠 Java 代码复制内容到剪贴板int PROPAGATION_REQUIRED = 0;     ...

2011-05-13 00:28:45 111

原创 Spring + iBatis 的多库横向切分简易解决思路

1.引言    笔者最近在做一个互联网的“类SNS”应用,应用中用户数量巨大(约4000万)左右,因此,简单的使用传统单一数据库存储肯定是不行的。    参考了业内广泛使用的分库分表,以及使用DAL数据访问层等的做法,笔者决定使用一种最简单的数据源路由选择方式来解决问题。    严格的说,目前的实现不能算是一个解决方案,只能是一种思路的简易实现,笔者也仅花了2天时间来完成(...

2011-05-13 00:26:40 104

原创 Spring多数据源解决方案

在很多大型应用中都会对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据。   Figure 1 数据分割及多数据库架构   通常这种多数据源的逻辑会渗透到业务逻辑中,同时也会给我们使用的数据访问A...

2011-05-13 00:14:49 60

原创 eclipse快捷键(转载)

2008年10月27日 星期一 10:06让我们按照使用频率来看看我最爱用的一些热键组合。(注:以下内容在Eclipse3.02及一上版本通过测试)1. Control-Shift-T: 打开类型(Open type)。如果你不是有意磨洋工,还是忘记通过源码树(source tree)打开的方式吧。用eclipse很容易打开接口的实现类的,按ctrl+t会列出接口的实现类...

2011-05-11 18:12:22 77

原创 Java线程:线程的调度-让步

Java线程:线程的调度-让步 线程的让步含义就是使当前运行着线程让出CPU资源,但是然给谁不知道,仅仅是让出,线程状态回到可运行状态。 线程的让步使用Thread.yield()方法,yield() 为静态方法,功能是暂停当前正在执行的线程对象,并执行其他线程。 /** * Java线程:线程的调度-让步 * * @author leizh...

2011-05-11 13:10:09 57

原创 Java多线程 Reactor模式和NIO (转载)

Reactor模式和NIO板桥里人 jdon.com 2002/11/08本文可看成是对Doug Lea Scalable IO in Java一文的翻译。当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构: ...

2011-05-10 17:43:37 464

原创 java中堆(heap)和堆栈(stack)有什么区别

stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里。栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内(就是由{...}括起来的区域).堆(heap):是一个可动态申...

2011-05-10 14:29:40 61

原创 JVM & Memory (5) final

先说tuning,gc有两个指标,一个是frequentcy(以下称F),一个是duration(以下称D)。前者和程序产生garbage的速率和java heap大小有关,后者和java heap大小及gc thread数有关。依据应用程序的差异,F可能为30秒/次或者数小时/次不等,都是可接受的,而D则越短越好,因为它jvm让人感到pause的时刻。在应用程序和gc thr...

2011-05-10 14:25:27 104

原创 JVM & Memory (4) gc

不同的JVM实现对堆结构的设计有所不同,这里先说说共性的,然后再比较classic vm和hotspot vm在gc方面的差异。先大致说说gc的过程,通常有两种情形会导致gc发生,一种是显式的System.gc()调用而java进程未禁止显示gc,第二种是隐式的,即内存管理器(MM)在alloc内存时发生failure,MM进而作gc以便释放出空间用于分配(当然,假如gc后还是没有空间...

2011-05-10 14:22:27 107

原创 JVM & Memory (3) thread

以下继续探讨,说说jvm的线程(thread)及其执行中和内存相关的问题。but今天是写不完了,请保持关注,先写个预告栏咯记得当年学java之初,总是很鄙夷它,因为那时候对c/c++很痴迷,结果呢,第一个多线程程序还是拿java写出来的。而线程(thread),本是操作系统的所提供/支持的,所以当初有一段时间,我总在怀疑我那java程序创建的线程到底是不是真正的操作系统线程,现在看...

2011-05-10 14:21:05 74

原创 JVM & Memory (2) java.exe

上篇说到了关于java heap的一些特征:连续的内存区域,逐步扩张的特征和如何做的这点的。but在讨论JVM的堆内存的细节以及垃圾回收等事宜之前,我们先讨论一下java进程的内存结构。郁闷,昨日这一篇本来写完了,但是提交失败了。。。只好再写了,简略些吧,继续正题:通常我们所关注JVM的内存区域是java heap(堆),比如有时发生内存泄露(memory leak...

2011-05-10 14:20:29 76

原创 JVM & Memory (1) paging

近期看了一些有关JVM和内存的资料,为了避免遗忘,特在这里作一笔记。今天说说操作系统的虚拟内存先。虚拟内存管理(VMM)是现在操作系统广泛采用的内存管理方式,为什么出现VMM了呢,当初主要是为了解决物理内存不足的问题,既然是不足,设计师们当然就想起来用硬盘空间来协力,使用诸如LRU(最近最少使用)之类的算法,把物理内存(Main memory)中不怎么使用的内容,转储到硬盘上以节省空间...

2011-05-10 14:19:50 90

原创 JDK TOOLS

以下这几种工具(存在于JDK5.0以上版本)。jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。jmap:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。jconsole:...

2011-05-10 14:15:56 89

原创 jvm日志分析工具应用

涛涛学习笔记之gc日志分析工具测试环境:xp+weblogic8+jrockitjvm调优中有一些非常实用的工具可以用来分析jvm的gc输出日志。HPjmeter,想必很多人都知道;PMAT,ibm的图形化gc分析工具;gcViewer,一款开源的gc图形化分析工具;简单说一下适用感觉;1、HPjmeter适用于hp机器上的jdk版本产生的gc日志,也适用一些ibm...

2011-05-10 14:14:26 319

原创 JVM优化配置

OOM这个缩写就是Java程序开发过程中让人最头痛的问题:Out ofMemory。在很多开发人员的开发过程中,或多或少的都会遇到这类问题,这类问题定位比较困难,往往需要根据经验来判断可能出现问题的代码。原因主要是两个:对象没有被释放(多种情况引起,往往是比较隐蔽的引用导致被Hold而无法被回收)。另一种就是真的Memory不够用了,需要增加JVM的Heap来满足应用程序的需求。最...

2011-05-10 13:56:32 66

原创 高手详细介绍JVM是什么?

首先这里澄清两个概念:JVM实例和JVM执行引擎实例,JVM实例对应了一个独立运行的Java程序,而JVM执行引擎实例则对应了属于用户运行程序的线程;也就是JVM实例是进程级别,而执行引擎是线程级别的。 JVM是什么?—JVM的生命周期 JVM实例的诞生:当启动一个Java程序时,一个JVM实例就产生了,任何一个拥有publicstaticvoidmain(String[]...

2011-05-10 13:52:21 180

原创 MyBatis3整合Spring3、SpringMVC3

开发环境: System:Windows WebBrowser:IE6+、Firefox3+ JavaEE Server:tomcat5.0.2.8、tomcat6 IDE:eclipse、MyEclipse 8 Database:MySQL 开发依赖库: JavaEE5、Spring 3.0.5、Mybatis 3.0.4、myBatis-spring-1.0、j...

2011-05-10 13:14:49 112

原创 MyBatis3整合Spring3的Transaction事务处理

正如第二版,Spring 仅支持 iBatis2。那么我们就想将 MyBatis3 的支持加入到 Spring3.0(参考 Spring 的 Jira 的问题)中。不幸的是,Spring 3.0 的开发在 MyBatis 3.0 官方发布前就结束了。因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么 Spring官方的支持就不得不等到至少 3.1 版本了。...

2011-05-10 13:12:51 63

空空如也

空空如也

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

TA关注的人

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