学习mockito
mockitohttp://wenku.baidu.com/view/8def451a227916888486d73f.html[@more@]
AspectJ 程序设计
AspectJ 程序设计指南.pdf http://www.open-open.com/doc/view/d532fa05939a428298c972fc5a403757 quick5 for aspectj http://wenku.baidu.com/view/9dea46f34693daef5ef73d45.html?from=related&hasrec=1[@more@]
ByteBuffer vs. DirectByteBuffer
-XX:MaxDirectMemorySizeThis options specifies the maximum total size of java.io.nio(New I/O package) direct buffer allocations.Format:-XX:MaxDirectMemorySize=size[g|G|m|M|k|K]Example:java -XX:MaxDirectMemorySize=2g myAppJava 2 SE 6 doc :Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That is, it will attempt to avoid copying the buffer’s content to (or from) an intermediate buffer before (or after) each invocation o
UML类图关系
1. 依赖(Dependency)实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。2. 关联(Association)实体之间的一个结构化关系表明对象是相互连接的。箭头是可
触发 Java heap dump
触发 Java heap dump 有以下方法出发heap dump 使用$JAVA_HOME/bin/jmap -dump来触发,eg:jmap -dump:format=b,file=/home/longhao/heamdump.out /usr/local/webserver/java/bin/jmap -dump:format=b,file=/usr/local/webserver/jetty/logs/heapdump/heamdump.out 16421 使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun.management>HotSpotDiagnostic>操作>dumpHeap中,点击 dumpHeap按钮。生成的dump文件在java应用的根目录下面。 在应用启动时配置相关的参数 -XX:+HeapDumpOnOutOfMemoryError,当应用抛出O
常量池、perm(持久代)、方法区、栈
常量池、perm(持久代)、方法区、栈 常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。除了包含代码中所定义的各种基本类型(如:int、long等等)和对象型(如String及数组)的常量值(final)还包含一些以文本形式出现的符号引用,比如: #类和接口的全限定名 #字段的名称的描述符 #方法和名称的描述符 虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集合,包括直接常量(string,integer和floating常量)和对其他类型,字段和方法的符号引用。 对于String常量,它的
java设计模式11-23
11、享元模式(flyweight Pattern): 通过共享来支持大量的细粒度对象的使用效率。 12、代理模式(proxy Pattern): 为对象提供一个代理或占位来控制对该对象的访问。 13、责任链模式(chain of responsibility Pattern): 可以让每个对象有一次机会决定自己是否处理请求,以便于请求的发送者与其接受者之间的耦合。 14、命令模式(Command Pattern): 把请求封装在对象中。 15、解释器模式(interpreter Pattern): 可以按照自己定义的组合规则集合来组合可执行对象。 16、迭代子模式(Iterator Pattern): 为
java设计模式1-10
http://www.open-open.com/doc/view/7c9ee401cad64a46b3977a1d85dd69d5 1、工厂方法模式(Factory Method Pattern): 用于创建对象的接口,同时控制对哪个类进行实例化。 2、建造模式(builder Pattern): 把构造对象实例的代码逻辑移到实例化的类的外部。 3、抽象工厂模式(Abstract Factory Pattern): 意图在于创建一系列相互关联或相互依赖的对象。 4、原始模型模式(prototype Pattern): 不通过实例化类来创建一个新的未初始化的实例,而是通过复制一个现有对象来生成新的对象。 5、单例模式(Singleton Pattern): 主要目的是使
java 文件压缩
java中提供了与压缩解压缩相关的类java.util.zip,包含如下数据流: public class DeflaterOuputStream extends FilterOutpuStream public class InflaterInputStream extends FilterInputStream public class GZIPOutputStream extends FilterOutputStream public class GZIPInputStream extends FilterInputStream public class ZipOutputStream extends FilterOutputStream public class ZipInputStream extends FilterInputStream 使用GZIP和ZIP处理压缩的实例如下: GZIPInputStream,可以使用read(),skip(),available() 方法从
jetty问题
jetty问题:HTTP/1.1 400 Bad RequestConnection: closeServer: Jetty(7.0.0.v20091005) [@more@]
Java jvm 诊断调优
JavaDump http://www.cnblogs.com/diyunpeng/archive/2011/08/25/2153851.htmljconsole手册http://pengjiaheng.iteye.com/blog/518513java内存模型与线程http://wenku.baidu.com/view/c9c71211cc7931b765ce15bb.html[@more@]
PermGen CodeCache问题
Perm Gen(持久代)中Code Cache(代码缓冲区)是HotSpotJava虚拟机用于编译和保存本地代码的内存.当代码缓冲区用尽时会报如下相应的错误:"CompilerThread0" java.lang.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space? 可以通过设置ReservedCodeCacheSize和CodeCacheMinimumFreeSpace参数来规避。CodeCacheMinimumFreeSpace设置当code cache剩余空间小于该值时java停止编译解释,进而停止对code cache的进一步使用,虽然会影响系统性能但不至于使系统崩溃。另外一种可以确定系统code cache合理值得
常用的几个eclipse快捷键
Ctrl+Q : 跳转到最后编辑的位置。这个也是个好东东。Ctrl+1 :错误修复建议,会给出当前问题的一些解决方法。Ctrl+Shift+P :定位到对于的匹配符。比如().{}等的匹配。Ctrl+Shift+X(Y):把当前选中的文本全部变味大(小)写Ctrl+M : 最大化编辑窗口。Ctrl+F6 :可以弹出菜单,上面列出可以切换的编辑窗口。类似Ctrl+E。不过是直接定位编辑窗口F4 :打开类型层次结构Alt+Shift+↑ :选择封装元素。在某单词的任何位置上使用,即可选中这个单词。Ctrl+J :正向增量查找。Alt+Shift+J :增加注释。根据位置不同(类、方法)会自动产生不同的
webservice test
REST Functional Testinghttp://www.soapui.org/REST-Testing/rest-functional-testing.htmlsoapui forumhttp://www.eviware.com/forum/viewforum.php?f=2使用soapui测试rest服务http://www.ibm.com/developerworks/cn/opensource/os-cn-soapui/ CXF WebService 开发指南、技术文档http://wenku.baidu.com/view/f7f8211e59eef8c75fbfb398.html[@more@]
设计模式
Java23种设计模式(总结) http://wenku.baidu.com/view/aa15db3e5727a5e9856a615e.html[@more@]
jsr311
geronimohttps://cwiki.apache.org/GMOxDOC22/documentation.htmlOreilly_-_RESTful_Java_with_JAX-RS_(12-2009)_(ATTiCA)http://jcp.org/en/jsr/detail?id=311 http://download.oracle.com/otn-pub/jcp/jaxrs-1.1-mrel-eval-oth-JSpec/jax_rs-1_1-mrel-javadocs.zip[@more@]
十道海量数据处理面试题与十个方法大总结(转)
http://wukunliang.blog.163.com/blog/static/17766547220104233140858/ 第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个
单元测试之模拟对象技术
模拟对象技术(打桩)在实际项目中,开发人员自己的代码往往需要和其他的代码模块或系统进行交互,但在测试的过程中,这些需要被调用的真实对象常常很难被实例化,或 者这些对象在某些情况下无法被用来测试,例如,真实对象的行为无法预测,真实对象的行为难以触发,或者真实对象的运行速度很慢。这时候,就需要使用模拟对 象技术(Mock),利用一个模拟对象来模拟我们的代码所依赖的真实对象,来帮助完成测试,提高测试覆盖率,从而提高代码质量。模拟对象技术利用了在面向 接口的编程中,由于代码直接对接口进行调用,所以代码并不知道引用
一些敏捷开发词汇汇总
敏捷词汇:迭代(Iteration):在Scrum中叫做"sprint"客户(Customer):在Scrum中叫做"product owner"教练(Coach):相当于Scrum Master or team lead,尽管有时候项目经理也充当这个角色;每日立会(Standup meetings):每天的项目状态交流会议,在Scrum中叫做“daily scrums”;回顾(retrospectives)故事列表(story-board)QIR,就是快速原型Quick Prototype迭代Iterator重构RefactorAgile DevelopmentAgile ModelingExtreme Programming (XP)ScrumFeature Driven Development (FDD)Test Driven Development
code art
PART ONE============= public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("GBK"); HttpSession session = request.getSession(); String sid = session.getId(); CartMap cm = CartMap.getCartMap(); if (cm.carts.containsKey(sid)) { Cart cart = cm.carts.get(sid); session.setAttribute("cart", cart); response.sendRedirect("Cart.jsp"); } else { response.sendRedirect(&quo