摘要:一、ant关键元素1. project元素 project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。接下来向读者展示一下 project 元素的各属性。1) name 属性 用于指定 project 元素的名称。2) default 属性 用于指定 project 默认执行时所执行的 target 的名称。3) basedir 属性 用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。?123456<?xml version
        
阅读全文
 
    
        
        
摘要:关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会 比JVM的生命周期更长。但在现
        
阅读全文
 
    
        
        
摘要:简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以 配置文件灵活的设置 日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。 Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来 显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问 题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再 一行行去掉这些注释恢复S..
        
阅读全文
 
    
        
        
摘要:现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展。作业调度是现代系统中对 Java 应用程序的一般要求,而且也是对 Java 开发人员一贯的要求。虽然目前的调度技术比起原始的数据库触发器标志和独立的调度器线程来说,已经发展了许多,但是作业调度仍然不是个小问题。对这个问题 最合适的解决方案就是来自 OpenSymphony 的 Quartz API。Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个
        
阅读全文
 
    
        
        
摘要:1. Java内存泄露监控工具http://wenku.baidu.com/view/cb7becb765ce050876321307.html2.性能测试总结之内存泄露和内存溢出http://www.uml.org.cn/Test/200912106.asp刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下。主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;重点关注如何去监控和发现内存问题;此外分析出问题还要如何解决内存问题。下面就开始本篇的内容:第一部分 概念众所周知,java中的内存java
        
阅读全文
 
    
        
        
摘要:Xms Xmx XX:PermSize XX:MaxPermSize1.各个参数的含义什么?我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JI
        
阅读全文
 
    
        
        
摘要:第一、Logger.getLogger()和LogFactory.getLog()的区别1.Logger.getLogger()是使用log4j的方式记录日志;2.LogFactory.getLog()则来自apache的common-logging包。common-logging组件: Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。了解包里情况,可以查看它的API文档:http://ww
        
阅读全文