java
文章平均质量分 66
a155365124
这个作者很懒,什么都没留下…
展开
-
log4j学习
在编码中,几乎每个地方都要用到log4j,很长一段时间都对这个日志框架一知半解,今天抽出时间把这个东西好好学习了下。在网上找了两篇不错的文章,和大家分享一下:1:http://www.iteye.com/topic/378077《log4j详解和实战》,这篇文件极力推荐大家去看,介绍的非常详细。2:http://willow-na.iteye...2010-04-11 21:53:18 · 72 阅读 · 0 评论 -
JVM Crash排查分享 - 爆栈
一. JVM爆栈爆栈是JVM Crash的一种案例,意思是JVM 的栈满(StackOverFlow),使得方法无法获取栈空间,而导致应用crash。爆栈是StackOverFlow的一种,只不过上层调用的是本地方法,才有可能导致出现crash,而非Native方法,则会直接抛出StackOverFlow OOM错误。如果要分析JVM Crash的原因,需要结合Core文件可以定位导致...原创 2013-05-02 16:56:35 · 1384 阅读 · 0 评论 -
类图关系总结
平时类图画的比较少,每次都忘记类图的关系,为了画图“更专业”,特记录一下常用的类图关系 1. 泛化(Generalization)关系:类与类之间的继承关系。箭头指向:带三角箭头的实线,箭头指向父类。 2. 继承(Realization)关系:类与接口的关系,类实现了接口的所有特征和行为。箭头指向:带三角箭头的虚线,箭头指向接口。 3. 依赖(De...原创 2013-05-20 16:24:40 · 127 阅读 · 0 评论 -
Spring之FactoryBean
今天在看代码时,发现这样一段配置:<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>classpath:sqlmap.xml&原创 2013-05-22 17:44:40 · 178 阅读 · 0 评论 -
JDBC连接数据库的几个步骤
经典,使用JDBC连接数据库,共五个步骤(曾经作为进入公司的面试题):一. 加载JDBC驱动程序二. 创建数据库连接三. 创建一个Statement对象四. 执行Sql语句,处理结果五. 关闭JDBC对象,关闭连接 一. 加载JDBC驱动程序连接数据库之前,首先要加载数据库的驱动程序类到jvm,使用java.lang.Class.forName实现。实例 ...原创 2013-05-23 16:20:16 · 3329 阅读 · 0 评论 -
Java枚举学习
今天看了一篇枚举的总结,非常好,推荐给大家:http://www.iteye.com/topic/1116193 工作中,枚举的使用比较多,也踩过一些雷。说说我对枚举的理解:预先定义类型的一组常量(对象),并且该类型也仅有这样一组常量(对象),运行过程中,无法new出新的对象,从而,方便程序引用该对象。 新的收获:所有的枚举都继承自java.lang.Enum类,由于jav...原创 2013-12-15 16:59:36 · 125 阅读 · 0 评论 -
xml特殊字符转义
今天在启动应用时一直报错,如下:2013-07-25 20:16:21,422 [] ERROR parser.XMLParser - Parse Fatal Error at line 211 column 122: The reference to entity "op" must end with the ';' delimiter.org.xml.sax.SAXParseEx...原创 2013-07-25 20:29:07 · 185 阅读 · 0 评论 -
深入学习jvm调试
一. 背景写代码和线上维护时,调试功能是必不可少的,经常在应用程序启动脚本中看到如下配置:JAVA_DEBUG_OPT=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=9108,server=y,suspend=n " 这几参数中,对address相对熟悉一点,...原创 2013-09-23 16:28:56 · 385 阅读 · 0 评论 -
Shallow and retained sizes
Reference from : http://www.yourkit.com/docs/java/help/sizes.jsp YourKit Java Profiler is capable of measuring shallow and retained sizes of objects. Shallow size of an object is the amount ...原创 2013-09-24 09:26:05 · 130 阅读 · 0 评论 -
jvm内存模型分析工具-MAT
mat是一款jvm内存模型分析工具,是排查jvm内存泄露/溢出问题的利器,功能非常强大。它能够列出对内存的对象列表,实例个数,类个数,classloader,shallow size和retain size等等。另外,mat能够生成leak report,帮助你分析可能存在的问题。前段时间,线上发生一次jvm内存泄露的故障,当时排查了很长时间才定位问题。后来,在研究mat时,发现leak r...原创 2013-09-26 10:29:12 · 241 阅读 · 0 评论 -
使用Collections.sort() 对List 排序
一、问题有一次线上系统运行过程中,爆出更新数据库死锁的异常,联系DBA排查原因:在批量更新库存时,发生死锁。 二、解决方案对调用DAL API的参数List进行排序,保证获取资源的顺序一致,从而避免数据库死锁,于是就有了这篇blog。 三、利用java.List.Collections对List排序 1. 待排序的POJO类,OfferSaleItemStat...原创 2013-04-28 14:33:04 · 206 阅读 · 0 评论 -
maven插件编写
http://somebody-hjh.iteye.com/blog/726086原创 2010-10-25 13:29:23 · 131 阅读 · 0 评论 -
velocity语法备忘
一、基本语法 1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等; 如: #if($info.imgs) <img src="$info.imgs" border=0> #else <img src="noPh...原创 2010-08-16 13:16:36 · 88 阅读 · 0 评论 -
java异常
异常处理 异常可以分为受检异常和运行时异常。 受检异常在编译时会被检测到,所以,程序必须处理这些异常。 对于运行时异常编译时虽然无法被检测到,但是一个好的程序也必须处理这些异常。 处理异常的方式有两种:捕捉异常方式和转移异常方式。 捕捉异常方式是通过try-catch-finally...2010-04-15 22:44:55 · 77 阅读 · 0 评论 -
util:map
<bean id="aliWWTaskAO" class="com.alibaba.china.trading.task.ao.AliWWTaskAO"> <property name="mainTitle"> <value>系统消息</value> </property> </bean&2010-04-16 11:26:08 · 189 阅读 · 0 评论 -
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implement...2010-04-17 23:40:27 · 74 阅读 · 0 评论 -
jvm内存管理
这是我这周整理的jvm内存管理相关的资料,共同学习一,JVM综述 JVM主要包括两个子系统和两个组件。两个子系统分别是ClassLoader子系统和Executionengine(执行引擎)子系统。两个组件分别是RuntimeData Area组件和Nativeinterface(本地接口)。 ClassLoader子系...2010-04-19 00:00:20 · 83 阅读 · 0 评论 -
spring框架中Bean作用域类型
类型说明singleton在spring ioc容器中仅存在一个Bean实例,Bean以单实例的方式存在prototype每次从容器中调用bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new xxxBean()的操作request每次HTTP请求都会创建一个新的...2010-04-20 18:56:24 · 153 阅读 · 0 评论 -
spring框架注入参数详解
一、字面值<bean id="car" class="com.baobaotao.Car"> <property name="maxSpeed"> <value>200</value> </property > <property name=&q2010-04-20 19:13:30 · 82 阅读 · 0 评论 -
配置linux下的Java环境
1、下载linux下的jdk版本j2sdk-1_4_2_07--i586.bin2、#chmod a+x j2sdk-1_4_2_07--i586.bin3、#./j2sdk-1_4_2_07-linux-i586.bin4、#mv j2sdk-1_4_2_07 /usr/local/jdk5、#vi /etc/profileexport JAVA_HOME...原创 2010-05-08 23:36:48 · 99 阅读 · 0 评论 -
memcached完全剖析(附pdf文档)
原文链接:http://tech.idv2.com/2008/07/10/memcached-001/#content_2_0原创 2010-05-10 23:11:36 · 112 阅读 · 0 评论 -
template设计模式
面向对象系统分析和设计的过程中经常碰到这样一种情况:某一业务逻辑在不同对象中有不同的实现细节,但是逻辑的框架是相同的。比如事物操作:事物开始,事物提交,事物回滚。Template模式提供了针对这种情况的实现方案。Template模式采用集成实现了这一点:将逻辑的框架定义在抽象类中,并提供相应的接口,子类实现其细节。...原创 2010-08-11 23:46:27 · 123 阅读 · 0 评论 -
通过top和jstack确定哪些线程耗尽了CPU?这些线程在做什么?
1. 背景有时,线上集群load会突然飙升,无法响应正常请求。那么引起load飙升的线程究竟在做什么?哪些线程霸占了CPU?可以通过top和jstack命令进行定位。 2. 定位步骤1. 使用终端1进入目标机器,执行top命令,默认是进程视图,其中PID是进程号,截图如下: 在这里,我们只能看到java进程占用CPU达到115%,那么究竟是那些线程非常耗CPU呢?...2013-10-18 17:45:33 · 210 阅读 · 0 评论