2013年1月20日
    
 
        
        
摘要:        
Java中访问修饰符public、private、protecte、default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private(你无法访问): Ja...    
阅读全文
 
        
            posted @ 2013-01-20 18:23
duanxz
阅读(263)
推荐(0)
        
            
        
        
摘要:        
route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP    
阅读全文
 
        
            posted @ 2013-01-20 17:57
duanxz
阅读(1889)
推荐(0)
        
            
        
        
摘要:        
众所周知并行程序设计易于产生 bug。更为严重的是,往往在开发过程的晚期当这些并行 bug 引起严重的损害时才能发现它们并且难于调试它们。即使彻底地对它们进行了调试,常规的单元测试实践也很可能遗漏并行 bug。在本文中,并行专家 Shmuel Ur 和 Yarden Nir-Buchbinder 解释了为什么并行 bug 如此难于捕获并且介绍了 IBM Research 的一种新的解决方案。并行程序易于产生 bug 不是什么秘密。编写这种程序是一种挑战,并且在编程过程中悄悄产生的 bug 不容易被发现。许多并行 bug 只有在系统测试、功能测试时才能被发现或由用户发现。到那时修复它们需要高昂的    
阅读全文
 
        
            posted @ 2013-01-20 15:53
duanxz
阅读(522)
推荐(0)
        
            
        
        
摘要:        
其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样: Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run    
阅读全文
 
        
            posted @ 2013-01-20 15:48
duanxz
阅读(440)
推荐(0)
        
            
        
        
摘要:        
作为Java程序员,我想很多人都知道日志对于一个程序的重要性,尤其是Web应用。很多时候,日志可能是我们了解应用程序如何执行的唯一方式。所以,日志在Java Web应用中至关重要,但是,很多人却以为日志输出只是一件简单的事情,所以会经常忽略和日志相关的问题。在接下来的几篇文章中,我会来介绍介绍这个容    
阅读全文
 
        
            posted @ 2013-01-20 15:46
duanxz
阅读(456)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月18日
    
 
        
        
摘要:        
一、log4j、logback、log4j2介绍 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 Log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术    
阅读全文
 
        
            posted @ 2013-01-18 16:00
duanxz
阅读(2155)
推荐(0)
        
            
        
        
摘要:        
根节点<configuration>包含的属性 scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。    
阅读全文
 
        
            posted @ 2013-01-18 10:56
duanxz
阅读(1871)
推荐(0)
        
            
        
        
摘要:        
有种流传甚广的说法:如果你想将咖啡豆磨成代码,那就去买台“程序员”好了。确实,如果你在一家编程高手云集的互联网公司工作,问问你身边那些 程序员们,他们一般什么时候效率最高,点子最好?得到的答案,大部分是半夜——不管前半夜,还是后半夜。有些习惯在早上四点起床,然后工作到日出,还有些 人则是习惯在早上四点后才睡觉。 如果只是为了避开无谓的干扰,何不关上门,带上耳机,为何一定要在深夜工作呢? 我认为主要有三条原因:创作者的日程表、困倦的大脑,以及闪亮的屏幕。创作者的日程表 通常来说,这个世界有两种日程表,一种属于管理者,一种属于创作者。传统的管理者日程表将一天按小时划分,而通常十分钟的打扰,对...    
阅读全文
 
        
            posted @ 2013-01-18 10:11
duanxz
阅读(553)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月17日
    
 
        
        
摘要:        
2003 年 9 月 29 日日志记录不仅是开发和测试周期中的一个重要元素――提供关键调试信息,而且对于系统已部署到生产环境之后调试错误也是很有用的――提供修复错误所需的准确上下文信息。在本文中,Orange Soft公司(这是一家专业从事面向对象技术、服务器端Java平台和 Web 可访问性的西班牙公司)的共同创办人 Ruth Zamorano 和 Rafael Luque 阐述了如何利用 log4j 的扩展能力,使得分布式Java应用程序能够通过即时消息传送(instant messaging,IM)来监视。不管您编写多少设计良好的测试用例,即使是最小的应用程序也会在部署到生产环境之后隐藏    
阅读全文
 
        
            posted @ 2013-01-17 16:24
duanxz
阅读(669)
推荐(0)
        
            
        
        
摘要:        
当我们在创建集群应用时,最头痛的时候就是出问题时,需要查看日志,但不清楚应该去哪台机子上看日志,针对此种情况,可以考虑把日志统一到专门的日志服务器上,这样只需要在日志服务器上进行查看,以下代码是作为一个例子,还不能看出日志的输出为哪台机子,以后发现再来更新此文章:此文章希望做到抛砖引玉的作用,只是一个基本的日志应用,在此基础上可以延伸出以下几种应用方式:1、话单文件:在服务器对某些类做专门的记录,并记录到专门的话单文件中;2、调试日志:在服务器设置最低级别,收集到所有日志打印,并打印到某个临时文件中,但要注意文件的大小控制,防止日志过大;3、关键日志:保存一些历史关键日志,以方便日后进行查询及    
阅读全文
 
        
            posted @ 2013-01-17 14:26
duanxz
阅读(931)
推荐(0)
        
            
        
        
摘要:        
最近因为平台升级改造做了双机模式,日志的记录就成了一个大问题。以前都是一个应用起一个实例只打印一个日志,现在则是因为一个应用起了两个实例,而这两个实例又分别打印日志,这种情况造成我们查看日志,诊断问题的不便,因为必须把两个实例打的日志都拿到,才是这个应用的全部日志。另外平台有多个子系统组成,这些子系统都有自己的日志,并且运行在不同的操作系统和主机上,收集这些日志对运营人员来说也比较困难。针对以上两个问题,我们决定在平台中采用日志服务器来做到集中日志管理,平台中所有子系统通过socket方式将日志信息传到日志服务器,再由日志服务器统一记录。这样既避免了一个应用日志不同实例分别打印,也可以将所有子    
阅读全文
 
        
            posted @ 2013-01-17 14:18
duanxz
阅读(631)
推荐(0)
        
            
        
        
摘要:        
今天在做一个功能,就是用户在注册后给他发送帐号激活邮件。在做这个功能的时候,我用匿名内部类来创建一个线程发送激活邮件,代码如下: MVC框架用的是SpringMVC,创建多线程的时候使用了Google的 guava 工具包。从代码中可以看到,AbstractExecutionThreadServic    
阅读全文
 
        
            posted @ 2013-01-17 12:55
duanxz
阅读(2359)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月16日
    
 
        
        
摘要:        
1、log4j已成为大型系统必不可少的一部分,log4j可以很方便的帮助我们在程序的任何位置输出所要打印的信息,便于我们对系统在调试阶段和正式运行阶段对问题分析和定位。由于日志级别的不同,对系统的性能影响也是有很大的差距,日志级别越高,性能越高。2、log4j主要分为error,warn,info,debug四个级别,也是使用最多的四种,日志级别从左至右依次增加。3、log4j对系统性能的影响程度主要体现在以下几方面:a、日志输出的目的地,输出到控制台的速度比输出到文件系统的速度要慢。 b、日志输出格式不一样对性能也会有影响,如简单输出布局(SimpleLayout)比格式化输出布局(Patt    
阅读全文
 
        
            posted @ 2013-01-16 13:32
duanxz
阅读(4617)
推荐(0)
        
            
        
        
摘要:        
最近执行一个项目调优,发现使用第三方的Json库导致性能差。原以为问题就这么定位到了,结果去掉Json操作后,性能也不见好转。 现象非常诡异:CPU、内存、网络、磁盘使用率均有剩余,而且压力也是足够的。即使施加更大压力,吞吐量也不见好转。 于是监控了一下Java进程状态,发现几乎所有进程都处在状态:BLOCKED 在 org.apache.log4j.spi.RootLogger@6b2b48e5 上,拥有者: http-0.0.0.0-8080-2010阻塞总数:188,661 等待总数: 2,699堆栈追踪:org.apache.log4j.Category.callAppenders(U    
阅读全文
 
        
            posted @ 2013-01-16 13:29
duanxz
阅读(1575)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月15日
    
 
        
        
摘要:        
在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器、运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要。否则,你很难搞清楚哪些操作是在并发先绝对安全的?哪些是相对安全的?哪些并发同步手段性能最低?valotile的二层语义分    
阅读全文
 
        
            posted @ 2013-01-15 17:28
duanxz
阅读(1059)
推荐(0)
        
            
        
        
摘要:        
正文开始: 一、logback和log4j2压测比较 1、logback压测数据logback压测数据,50个线程,500万条日志写入时间。 说明: 这个是logback日志的压测数据,在开发机(双核四线程),高配开发机(四核八线程)和服务器(32核)压测的效率都差不多,而且线程开多的时候,性能反而    
阅读全文
 
        
            posted @ 2013-01-15 15:53
duanxz
阅读(982)
推荐(0)
        
            
        
        
摘要:        
使用log4j大概涉及3个主要概念:公共类 LoggerLogger负责处理日志记录的大部分操作。公共接口 AppenderAppender负责控制日志记录操作的输出。公共抽象类LayoutLayout负责格式化Appender的输出。3.1.Logger日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别Level(不包括自定义级别Level), 以下内容就是摘自log4j API (http://jakarta.apache.org/log4j/docs/api/index.html):static Level D    
阅读全文
 
        
            posted @ 2013-01-15 14:34
duanxz
阅读(358)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月14日
    
 
        
        
摘要:        
oracle中:select dbms_lob.getLength(zp)from kk.kkbj select dbms_lob.getLength(zp) from kk.kkbj也可以在后边加where条件这条语句可以查看kk.kkbj表中类型为blob的zp这个字段在sql plus里执行这条语句的效果是这样的Sql代码SQL> select dbms_lob.getLength(zp)from kk.kkbj ; SQL> select dbms_lob.getLength(zp) from kk.kkbj ;DBMS_LOB.GETLENGTH(ZP)---------    
阅读全文
 
        
            posted @ 2013-01-14 14:53
duanxz
阅读(1193)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月11日
    
 
        
        
摘要:        
这几天由于工作需要在研究批处理添加系统定时任务,由于本人用的是WIN7系统,由工作路径产生了一些问题,不知道XP是不是也有这个问题,首先,来做个试验。在我的D盘Test目录下有两个文件,一个test.txt,一个test.bat,如下图所示:test.bat内容如下:@echooffcolor0aecho%CD%notepadtest.txt目的很简单,就是想通过批处理test.bat打开test.txt文件。1、直接双击test.bat,一切正常,test.txt如我所愿被打开了,并且输出了当前工作路径D:/Test。2、右击test.bat,选择以“管理员身份运行”,这时现象出来了,屏幕输    
阅读全文
 
        
            posted @ 2013-01-11 16:31
duanxz
阅读(3489)
推荐(0)
        
            
        
        
摘要:        
《观察者模式与监听模式》 《JDK自带的观察者模式》 《JDK自带的监听器模式》 《ApplicationEvent事件机制源码分析》 监听模式 当事件源对象上发生操作时,将会调用事件监听器的一个方法,并在调用该方法时把事件对象传递过去。 监听器模式中的3个角色: 事件源:具体的事件源,注册特定的监    
阅读全文
 
        
            posted @ 2013-01-11 10:49
duanxz
阅读(11281)
推荐(0)
        
            
        
        
摘要:        
HTTP标准的两种请求方式:Post和Get,关于这两种请求方式的区别相关资料云集,这里不做阐述。然而,你是否注意到:我们通过get方式从浏览器的地址栏传递数据给服务器,当参数的值中含有某些特殊转义字符的时候,没经过些许处理将得不到预期的结果。例如:当我们的请求的url为:http://localhost:8080/index.jsp?parameter=kalman03#kalman#1或许你预期在服务器端获得的parameter的结果为kalman03#kalman#1,错!!!实际上得到parameter的值为kalman03。这究竟是为什么呢?原因:parameter的值含有特殊字符#    
阅读全文
 
        
            posted @ 2013-01-11 10:06
duanxz
阅读(24585)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月9日
    
 
        
        
摘要:        
《观察者模式与监听模式》 《JDK自带的观察者模式》 《JDK自带的监听器模式》 《ApplicationEvent事件机制源码分析》 1、概述 观察者模式又称为发布/订阅(Publish/Subscribe)模式 observer模式简介 observer模型,又被称作listener模式。这里统    
阅读全文
 
        
            posted @ 2013-01-09 16:19
duanxz
阅读(3539)
推荐(0)
        
            
        
        
摘要:        
一:修改JBoss启动配置 打开JBOSS_HOME/bin目录下的run.conf文件,找到: #JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y" 将其修改为:     
阅读全文
 
        
            posted @ 2013-01-09 14:54
duanxz
阅读(984)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月6日
    
 
        
        
摘要:        
Javascript的调试,是开发Web应用尤其是AJAX应用很重要的一环,目前对Javascript进行调试的工具很多,我比较喜欢使用的是Firebug。Firebug是Joe Hewitt开发的一套与Firefox集成在一起的功能强大的web开发工具,可以实时编辑、调试和监测任何页面的CSS、HTML和JavaScript。本文主要是为初学者介绍一下Firebug的基本功能与如何使用Firebug。由于本人水平与能力有限,在文章中的可能会有很多错误与遗漏,希望大家能谅解和指正!<!--[if !supportLists]-->1、 <!--[endif]-->安装F    
阅读全文
 
        
            posted @ 2013-01-06 21:11
duanxz
阅读(281)
推荐(0)
        
 
		
    
        
            
        
         
        2013年1月2日
    
 
        
        
摘要:        
StringTrimUtils,使用charArray,Java内部使用unicode,不用在意编码java 代码public class StringTrimUtils {/** * 截取一段字符的长度(汉、日、韩文字符长度为2),不区分中英文,如果数字不正好,则少取一个字符位 * * @param str 原始字符串 * @param specialCharsLength 截取长度(汉、日、韩文字符长度为2) * @return */public static String trim(String str, int specialCharsLength) {if (str == null     
阅读全文
 
        
            posted @ 2013-01-02 11:14
duanxz
阅读(1703)
推荐(0)