- 博客(98)
- 问答 (2)
- 收藏
- 关注
原创 javassist 学习笔记
介绍:www.javassist.org/javassist、ASM 对比1、javassist是基于源码级别的API比基于字节码的ASM简单。2、基于javassist开发,不需要了解字节码的一些知识,而且其封装的一些工具类可以简单实现一些高级功能。比如HotSwaper。3、ASM比javassist性能更快,灵活...
2012-10-22 21:41:52
445
原创 开发问题总结(一)
下面是在利用JDK的Instrument来编写调试工具的时候出现的一些问题总结 1、java.io.Console 类的读取操作将会阻塞掉写入操作,造成写入操作不能异步进行。原因是该类中加入了读写锁。代码如下: public String readLine(String fmt, Object ... args) { String line = null;...
2012-10-22 21:25:53
328
原创 java 启动命令解析
前言 在看Btrace源码的时候,了解到一些陌生的启动命令参数,例如-Xbootclasspath等,之前也曾遇到过,但并没有去进一步全面了解,在此则进行介绍。简介 Java 的启动参数包括标准的参数(运行环境参数)和非标准的参数(JVM实现支持的参数)。标准的参数参数描述 ...
2012-10-16 22:17:08
328
原创 Jar文件及MANIFEST.MF 文件入门
前言 在看Btrace相关源代码的时,才认识到MANIFEST.MF是有很大用途的,以前对jar文件没多大了解,现在有空也整理下相关的资料。 Jar文件简介 Jar文件的本质是zip 文件,其中包含了META-INFO文件夹。Jar文件可以用jar工具或者java.util.jar API 来创建。Jar的文件名没有任何限制。 ...
2012-10-16 20:34:37
243
原创 mysql 配置文件 详解
mysqld程序--目录和文件 basedir = path #使用给定目录作为根目录(安装目录)。character-sets-dir = path #给出存放着字符集的目录。datadir = path #从给定目录读取数据库文件。pid-file = filename #为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX...
2011-12-27 20:26:27
197
Java并发编程笔记摘要
多线程设计的目的是为了更多的榨取服务器硬件的性能,但是线程仍然会给运行时带来一定程度的开销。上下文切换——当调度程序临时挂起当前运行的线程时,另 外一个线程开始运行——这在多个线程组成的应用程序中是很频繁的,并且带来巨大的系统开销:保存和恢复线程执行的上下文,离开执行现场,并且CPU 的时间会花费在对线程的调度而不是运行上。当线程共享数据的时候,它们必须使用的同步机制,这个机制...
2011-08-19 14:16:12
108
com.danga.MemCached 中key的中文问题
在项目中用到了memcached 做缓存,在实际应用中发现spymemcached 客户端在网络状态比较差是(大概延迟60ms左右)时的读取超时现象比较严重,而且造成应用的内存被消耗尽了(用jmap 查看过,发现memcache 的客户端用到的异步线程类占用很大的内存,估计是由于超时不断创建的缘故)。于是便换了http://www.whalin.com/memcached 这个的客户端。。在...
2011-04-08 16:21:18
334
java.util.concurrent 之LinkedBlockingQueue源码分析
LinkedBlockingQueue类一个基于已链接节点的、范围任意的 blocking queue。此队列按 FIFO(先进先出)排序元素。队列的头部 是在队列中时间最长的元素。队列的尾部 是在队列中时间最短的元素。新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。 ...
2011-03-30 16:08:08
111
java.util.concurrent 之ConcurrentHashMap 源码分析
最近有点想研究下java.util.concurrent 包下的一些类中的实现,在现实中也对这包里的类应用不少,但都没怎么去深入理解,只是听说里面的实现在高并发中有不错的性能。。接下将对里面的几个比较常用的类的源码进行分析。。 ConcurrentHashMap类 研究源码时,我一般喜欢从实际的应用中去一步步调试分析。。这样理解起来容易很多。 实...
2011-03-28 14:07:06
109
原创 设计模式(Java 与模式-笔记 二)
一、创建模式1、工厂模式工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪个类。 工厂模式有以下几种形态: (1)简单工厂(Simple Factory)模式:又称静态工厂方法模式(Static Factory Method Pattern)UML 图: 简单工厂模式就是由一个工厂类(具体类)根据传入的...
2011-03-27 22:36:23
167
设计原则(Java 与模式-笔记 一)
第二部分 面向对象的设计原则 如何同时提高一个软件系统的可维护性(Maintainability)和可复用性(Reuseability)是面向对象的设计要解决的核心问题。一个好的系统设计应该有如下的性质:可扩展性(Extensibility)、灵活性(Flexibility)、可插入性(Pluggability)。系统的可扩展性是由“开-闭”原则、里氏代换原则、依赖倒转原...
2011-03-27 22:13:30
125
原创 高性能Mysql-笔记
1.Mysql的逻辑架构每个客户端连接在服务器进程中都拥有自己的线程,每个连接所属的查询都会在指定的某个单独线程中完成,这些线程轮流运行在某个CPU核心或者CPU上。服务器负载缓存线程,因此不需要为每个新的连接重建或撤销线程。 Mysql会解析查询,并创建一个内部数...
2011-03-18 14:53:32
96
原创 网络编程-TCP笔记
很久没写博客了,最近也看了不少书,看完了好像印象不深,还是回头写写记录下吧。。 1.TCP机制 TCP提供了可靠性 ,当TCP向另外一端发送数据时,它要求对端返回一个确认。如果没有收到确认,TCP就自动重传数据并等待更长的时间。在数次重传失败后,TCP才放弃,如此在尝试发送数据上所花的总时间一般为4-8分钟(依赖具体实现)。 TCP含有用于动态估算客户和服...
2011-02-28 18:28:20
176
原创 log4j 配置
1. 配置文件 Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …#配置日志信息输出目的地Appenderlog4j.appender.appenderName = fully.qualified.name.of.appender.class...
2010-10-11 10:49:30
85
原创 mysql5.1 主从 配置
由于项目以后可能会用到关于数据库备份,主要是用主从复制,来实现数据库的读写分离等功能。在这几天对mysql 的主从配置研究了下,我在电脑上配置了两个mysql 数据,配置还真有点麻烦。。关键还是对mysql 的数据库的了解不够,导致的,闲话不说了,现在开始配置。。 1.首先在本机(Windows)上配置两个数据库。 我下载的是mysql 的noinstall 版本的,安装版的...
2010-07-23 13:24:18
207
原创 Struts2.1XX 后台不打印异常问题
在开发的时候发现Struts2.16 在action内抛出异常的时候,控制台是没有打印信息的,不过在Struts2.0的版本却可以,还不知道为什么要去掉(暂时不去研究),但这样很不方面,特别是写AJax 调用的时候。。于是对源码分析了一下后,发现了问题的所在是ExceptionMappingInterceptor 的默认参数的logEnabled 是false的,而抛出错误的时候根据这个判断...
2010-07-15 12:00:13
166
原创 HTTP 协议介绍
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation...
2010-07-13 14:15:14
159
原创 多线程时间记录logger类
在近期工作中遇到个性能测试的打印的问题,由于log4j中如果在多线程中,打印的无规律性(哪个线程先到就先打印),在多个线程中会出现的问题是,在action-service-dao 层模式中,如果想查看单个线程在action-service-dao 三层之间的消化时间,是很难查到的,因为它们是无规律打印的。为了解决这个问题,可以利用ThreadLocal 这个线程变量类,关于这个类的使用已经很广...
2010-05-10 19:28:49
467
Java 回调机制及其Spring 中HibernateTemplate的源码分析
在分析HibernateTemplate前,首先从网上了解下一些关于回调的一些概念。我相信在了解其原理实现的基础上,可以更好的进行开发和扩展,关键得理解其思想。 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。 同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用。(简单来说就是顺序执行啦。)回调是一种双向调用模式,...
2010-04-22 16:45:07
129
enum 内部实现解析
简单写个Enum 类型,然后反编译下 /** * * @author zhxing * @since 2010.02.26 */public enum Test{ //这定义必须放在第一行,否则会报错 Spring("a"),Summer("b",1),Autumn("c"),Winter("d"); //类变量 public static in...
2010-03-22 16:52:34
210
从JVM 内部看String 类型的问题
关于String 类型,在面试题或者实际编程中都会经常遇到,有很多的网友也曾做过大量的分析。在看完深入Java 虚拟机这本书后,对JVM 处理Java 程序的流程有了一个大概的认识,所以总结一下。 下面的分析从我们遇到的一些问题实例进行,我觉得这样是最好理解的。 1、String 类型对象的生成 String s=new String("zhxing");...
2010-03-22 16:40:59
200
ThreadLocal 源码分析
之前曾转载过相关ThreadLocal的文章,但一直是处于迷糊状态,最近复习的时候偶然看到博客里的文章,所以对此类做一个深入的分析和总结。(另外说明下,我这个源码的Java 版本是1.6.0_06) 在Java API 文档里,是这样解释的:该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 ...
2010-03-09 15:59:35
80
原创 Java 图片处理(包括Jmagick 的应用)
近期有使用到图片的压缩处理,由于在之前用Java 处理时,在低像素的情况下,Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用Java 的jni 调用dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。 1、纯Java 类处理图片代码/** * 转换图片大小,不变形 * * @param img * ...
2010-02-01 17:38:41
199
原创 一些应用-端口占用等
1、在开启JBOSS 等服务器的时候老是发现端口被占用了,可以用netstat -n -a -o 这个命令进行检查到进程的PID,然后在任务栏中查找这个PID 对应的进程,杀掉它就没事了。。...
2010-02-01 10:10:11
99
原创 软引用、弱引用、虚引用 总结
在看‘深入JAVA虚拟机’垃圾收集这一章的时候了解有关对象的引用级别,在网上找了些资料总结备忘。(该文章大多内容为多个网站的内容合并) 1、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清...
2010-01-15 13:17:27
277
Java 排序算法总结
1)分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(箱排序、基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。 2)选择排序算法的时候1.数据的规模 ; 2.数据的类型 ; 3.数据已有的...
2009-12-09 11:45:05
151
Java 输入输出流详解
最近一段时间,处于失业状态,正好有机会对未理解的知识进行整理,面试中这部分的知识很大可能也是会遇到的。下面的内容一部分是从网上筛选的,经过自己的梳理后总结的。 Java IO 用的是‘decorator模式’来构建的。要容易理解Java IO 应该从对称性和两个模式(装饰器模式和适配器模式)这两方面进行分析。 装饰器模式: 在由InputStream、OutputS...
2009-12-07 19:50:20
126
struts2 处理请求流程分析(结合源码)3
2.3、dispatcher.serviceAction(request, response, servletContext, mapping);方法分析 public void serviceAction(HttpServletRequest request, HttpServletResponse response, ServletContext context, ...
2009-12-04 17:35:32
85
struts2 处理请求流程分析(结合源码)2
2、过滤器中的doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 方法 2.1、request = prepareDispatcherAndWrapRequest(request, response);分析 我们知道JSTL默认是从page,request,session,appl...
2009-12-04 17:35:03
121
struts2 处理请求流程分析(结合源码)1
struts2 源码版本2.0.11.1本文是综合网上部分人的分析成果,然后再自己结合源码进行的,分析中如有错误,请指正。 从struts2 中的web.xml的启动配置可以看出,首先分析的是FilterDispatcher 这个过滤器类。 1、过滤器的初始化方法 void init(FilterConfig filterConfig) //初始化方法public vo...
2009-12-04 17:33:57
97
原创 struts2 中struts.properties 配置详解
struts.configuration#该属性指定加载Struts 2配置文件的配置文件管理器。该属性的默认值是org.apache.Struts2.config.DefaultConfiguration,这是Struts2默认的配置文件管理器。如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration接口的类,该类可以自己加载Struts 2配置文件。stru...
2009-11-23 10:53:30
102
JFreeChart(结合struts2) 学习总结(包含JFreeChartdemo 的源码和文档)
最近项目中用到一些图标显示,用的是JFreeChart 来做的。做完以后顺便也总结下,方便以后使用中忘记。 一般的快速学习的话,看下Demo 能最快上手,所以我也采取这种形式。项目首页:http://www.jfree.org/jfreechart/由于jfreechart 的文档时收费的,不过google 的强大已经解决了。。哈哈。。有它的demo 的源码和...
2009-11-19 16:04:56
99
原创 webwork拦截器interceptor 之 ActionInvocation 意义
“将Web页面中的输入元素封装为一个(请求)数据对象”,这个对象就是ActionInvocation类型. 对于Xwork 而言,前端的Webwork 组件为其提供的是一个Map 类型的数据结构。而Action面向的却是Model对象所提供的数据结构。在何时、何处对这两种不同的数据结构进行转换? 写一个辅助类完成这样的工作,并在每次Action 调用之前由框架代码调用他...
2009-09-11 10:22:10
87
原创 基于RBAC的权限设计模型
1 RBAC 介绍 RBAC 模型作为目前最为广泛接受的权限模型。 NIST (The National Institute of Standards and Technology,美国国家标准与技术研究院)标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限...
2009-09-11 09:53:57
263
UrlRewriteFilter 学习笔记
1、简介 UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。 其主页:http://tuckey.org/urlrewrite/ 2、安装 在其主页下载该包文...
2009-08-24 18:47:07
221
ssh 相关方面的测试
原来对测试不够重视,出现问题的时候,靠着开着服务器在哪调试,确实搞得很麻烦。。遇到问题想用junit 进行单元测试的时候,却发现忘了怎么来做了,真是悲哀!现在总结下,以后就不会发生这种事了。。 1、Hibernate 的语句测试SessionFactory sf=new Configuration().configure().buildSessionFactory(); Sess...
2009-06-10 00:45:56
162
struts2 流程源码分析及标签查询
源码分析:http://zddava.iteye.com/category/53604标签的使用:http://book.csdn.net/bookfiles/1058/
2009-06-07 09:19:57
88
Hibernate 学习难点记录
1、关于Hibernate 配置中 和父子属性的增删有关 的 unsaved-value 属性http://www.iteye.com/topic/27369http://www.iteye.com/topic/1604?page=1 2、Hibernate 中字段的默认值问题http://www.iteye.com/topic/1198http://boogie.itey...
2009-06-03 19:59:34
127
web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener ...
2009-06-01 16:02:00
106
原创 cms 日志记录
本来没怎么想写日志的,因为文笔不咋地,不过在做这个设计的时候,出现的问题确实比较多,今天决定还是记录下吧,可能以后有同样的错误的时候能记起来。 先讲下做这个设计的前期准备。我是看到国内有开源的jeecms ,也想练练手,起码面试的时候能有得说做过该类型的项目。该cms 界面是放jeecms 的,但里面的数据库设计和构架都是由自己琢磨的。。可能是jeecms 这个开源项目我看的不是很懂...
2009-05-31 11:11:50
255
空空如也
关于service 层的设计和hibernate中实体的在页面中的传递
2009-04-22
Struts2 中多个问题,一个请求对应一个action 还是??
2009-04-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人