技术文章
萧何-ArthurLiu
君子者德合道也
展开
-
基于ESB的企业应用集成
1、引言 信息化的发展在给企业带来难得机遇的同时,也给企业带来了新的挑战。巨大的投资为企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。但是这些信息系统可能由不同的品牌导入实施,只关注于各自领域内的数据与业务处理,由于缺少相应的接口标准和规范,它们各自为政,相互之间无法进行信息共享与业务集成,从而形成“信息孤岛”。 随着企业规模的不断扩大,应用系统不转载 2009-10-29 10:56:00 · 746 阅读 · 0 评论 -
Hadoop2.2.0 + HBase0.96.1.1部署实践
Hadoop2.2.0部署文档一、准备工作:1.机器准备:IPuser/passwdhostnamerole*172.16.16.31(萧何) lscm/izenexxxx B5M-0169 nn/snn/rm*172.16.16.29(大哥) lscm/izenexxxx oscarshan-OptiPlex-990 dn/nm原创 2014-01-27 15:14:04 · 5438 阅读 · 0 评论 -
Java代码中三种注释的意义
1、TODO:待实现——功能尚未实现2、FIXME:待修正——发现问题,需要修正3、XXX:待改进——功能已经实现,但实现方法有待商榷,期望以后改进原创 2011-12-05 16:21:42 · 678 阅读 · 0 评论 -
JVM工作原理和特点
作为一种阅读的方式了解下jvm的工作原理 JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。 在我们运行和调试Java程序的时候,经转载 2011-11-11 19:06:06 · 407 阅读 · 0 评论 -
解析 Java 类和对象的初始化过程
问题引入近日我在调试一个枚举类型的解析器程序,该解析器是将数据库内一万多条枚举代码装载到缓存中,为了实现快速定位枚举代码和具体枚举类别的所有枚举元素,该类在装载枚举代码的同时对其采取两种策略建立内存索引。由于该类是一个公共服务类,在程序各个层面都会使用到它,因此我将它实现为一个单例类。这个类在我调整类实例化语句位置之前运行正常,但当我把该类实例化语句调整到静态初始化语句之前时,我的程序不再为我转载 2011-11-29 19:20:47 · 639 阅读 · 0 评论 -
研究Struts2源码第一步
研究Struts2源码第一步遇到的问题,下载下来的包虽是full的,而且lib下的所有jar包也导入到eclipse中了,但是在eclipse中attach不成功源码;解决办法是:手工使用jar命令将src下的源码打成jar包,在eclipse中attach这个jar包就成功了原创 2011-11-04 21:35:32 · 322 阅读 · 0 评论 -
JVM性能参数调优实践,尽可能不执行Full GC
(不错的JVM配置参考) JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了。要想配置好JVM参数,需要对年轻代、年老代、救助空间和永久代有一定了解,还要了解jvm内存管理逻辑,最终转载 2011-11-01 11:47:38 · 893 阅读 · 0 评论 -
JAVA序列化基础知识Serializable与Externalizable的区别(改变默认的序列化/反序列化行为)
大家都知道Serializable是一个mark interface,告诉JVM这个对象可以被转换成二进制流来传输. 但是Serializable与Externalizable的转换二进制流的过程是不一样的. Serializable 在我们实现这个接口的时候,我们可以使用4个私有方法来控制序列化的过程: 我们来看一个例子: Java代码 public转载 2011-11-01 14:43:23 · 495 阅读 · 0 评论 -
jvm学习内容
jvm内存空间分配、参数设置、运行监控; class文件结构;jvm加载class文件;jvm解析class文件;jvm栈上执行字节码指令; jvm内存模型;jvm并发执行多线程原理;原创 2011-10-31 20:57:34 · 405 阅读 · 0 评论 -
我常用的Eclipse快捷键,方便编辑
Ctrl + Shift + r 查找资源Ctrl + Shift + t 查找类型Ctrl + h 工作空间内搜索Ctrl + e 浮出编辑页浮出层Ctrl + Shift + e 弹出编辑页弹出窗口Ctrl + w 关闭当前页Alt + F4 关闭当前窗口Ctrl + m 最大化/还原当前窗口Ctrl + F7原创 2011-11-01 14:21:09 · 668 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为T转载 2011-11-01 13:47:59 · 518 阅读 · 0 评论 -
正确理解ThreadLocal
正确理解ThreadLocal ThreadLocal与synchronized1.区别ThreadLocal 与 synchronized ThreadLocal是一个线程隔离(或者说是线程安全)的变量存储的管理实体(注意:不是存储用的),它以Java类方式表现; synchronized是Java的一个保留字,只是一个代码标识符,它依靠JVM的锁机制来实现临界区的函数、变量在C转载 2011-11-01 13:40:33 · 514 阅读 · 0 评论 -
对象的序列化和反序列化
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。对象的序列化主要有两种用途:1) 把对象的字节序列永久地保转载 2011-11-01 11:44:06 · 290 阅读 · 0 评论 -
com/ibatis/common/xml/NodeletException
Spring3不兼容Ibatis3(MyBatis3),报错:java.lang.NoClassDefException:com.ibatis.common.xml.NodeletException;解决办法是降低ibatis版本原创 2011-11-16 20:33:59 · 5545 阅读 · 0 评论 -
【转载】spring aop 三种实现方式示例
假设在在一个业务组件接口中有三个核心关注点business1、business2、business3。我们需要在这些关注点执行之前验证用户、开启事务,在这些关注点执行之后关闭事务、写入日志等。此时我们可以使用Spring aop来实现这些功能。其中验证用户、开启事务、关闭事务以及写入日志等属于横切关注点或者交叉关注点。 业务组件接口Component:package com.new转载 2011-06-28 14:37:00 · 370 阅读 · 0 评论 -
Tomcat处理HTTP请求源码分析
很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对c转载 2014-04-30 11:02:12 · 725 阅读 · 0 评论