`
javaboy2006
  • 浏览: 183023 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
    一、现象     某系统使用了drools规则引擎对用户数据按照规则进行计算,在对其某查询接口连续100W次调用过程中发现JVM内存可用量持续下降,从系统启动时的1.5G下降为20-30M,导致java.lang.OutOfMemoryError: Java heap space只能被迫重启系统。     二、排查     根据问题现象初步判定为系统出现内存泄露,但系统中使用了众多变量,如何判断是哪些变量没有被GC及时回收而导致内存泄露的呢?接下来开始寻找JVM内存监控工具。jprofiler是一个不错的选择(不过是收费软件)。找到crack,最初试图在RedHat Enterprise ...
    OSGI:服务与组件(Components & Services)     关键理念是组件与服务(Components & Services),Developing with OSGi technology means developing bundles: the OSGi components.(摘自:http://www.osgi.org/About/WhyOSGi)。     直观点来理解,我们开发的一个基于OSGI的系统(如settleprod),里面的每一个工程都是一个component。每一个component实现并注册自己的services,而这些se ...
package merge; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashSet; import java.u ...
这次引发的线上故障和我有直接关系,现分析一下这次故障产生的原因和经验教训,还请大家引以为戒。 原因分析: 1、在XXX升级包开发过程中,编写伪登陆接口测试用例时走读接口代码发现对接口参数控制不严格(判断参数是否为null)对其重构为更严格参数控制(判断null或空字符串),但未考虑到代码中的潜规则:调用方就是传递空密码字符串,实属好心办了坏事。 2、重构代码后没有仔细进行代码review和测试。 经验教训: 1、代码修改前一定要慎重,确认修改后要进行代码review和测试,保证系统的可用性和稳定性。由于公司注册会员数已经超过2亿,任何一个细微的程序错误都会带来较大影响,2亿的万分之一概率也会 ...
junit完整生命周期时序图 在图中第2步调用TestSuite构造方法时,代码如下: public TestSuite(final Class theClass) { fName= theClass.getName(); try { getTestConstructor(theClass); // Avoid generating multiple error messages } catch (NoSuchMethodException e) { addTest(warning("Class "+theClass.getName ...
Throwable ex = new Throwable(); StackTraceElement[] stackElements = ex.getStackTrace(); if (stackElements != null) { for (int i = 0; i < stackElements.length; i++) { System.out.println("类 名:" + stackElements[i].getClassName()); ...
在《程序员》第5期卷首语中看到了如下的文字,觉得讲的还是很有道理,特别是红色字体部分,转载一下。 引用 够专业,就不怕失业     业界知名的Bob大叔在不久前发表了“软件技艺宣言”,向外界大声宣告:     我们不仅要提供可以工作的软件,更要提供技艺精良的软件。     我们不仅要响应变化,更要稳步增加价值。     我们不仅注重个体和交互,更重视建立专家群体。     我们不仅注重客户协作,更注重建立卓有成效的伙伴关系。     作为敏捷宣言的升级版,这个宣言实际是在提醒我们:程序员,应该更具备专业净胜。     专业,意味着专注,敬业。     专业,意味着不论一时一事之得失 ...
01. 第一封信 / 友子 你还在等我吗 02. Don't Wanna 03. 第二封信 / 时代宿命是时代的罪过 04. 爱你爱到死 05. 第三封信 / 友子 我就是那时爱上你 06. 去哪里(丹耐夫之歌) 07. 第四封信 / 海风啊 为何总是带来哭声 08. 给女儿 09. 第五封信 / 友子 我真的很想你 啊! 彩虹 10. 无乐不作(电影Live版) 11. 第六封信 / 我把愧疚写成最后的一封信 12. 国境之南 13. 野玫瑰 14. 第七封信 / 情书 15. 1945完整演奏版 http://www.verycd.com/topics/418324/ http:/ ...
1. 史今给新兵训话 3’51” 2. 许三多怀疑成才 4’07” 3. 高城:成才是望月猴 6’40” 4. 牧民发现蒙古包 1’58” 5. 许三多鸡蛋事件 5’17” 6. 老马告别许三多 2’49” 7. 高城与史今争论不休 3’00 8. 第一次抡锤 6’04” 9. 你说我有的选择吗 3’09” 10. 史今给许三多变魔术 1’50” 11. 白铁军评价高城 2’26” 12. 高城哭了 3’39” 13. 许三多独白1 1’01” 14. 许三多不投降 2’03” 15. 袁朗接受张干事采访 2’20” 16. 伍六一与许三多对话 2’02” 17. ...
/** * * @author jia.hej * * 爱因斯坦推理题:谁养鱼 * * 1、在一条街上,有5座房子,喷了5种颜色。 * * 2、每个房里住着不同国籍的人 * * 3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物 * * 问题是:谁养鱼? * * 提示: * * 1、英国人住红色房子 * * 2、瑞典人养狗 * * 3、丹麦人喝茶 * * 4、绿色房子在白色房子左面 * * 5、绿色房子主人喝咖啡 * * 6、抽PallMall香烟的人养鸟 ...
1、不要放过任何看上去很简单的小编程问题--他们往往并不是那么简单,或者可以引伸出很多知识点; 2、 浮躁的人容易说:XX语言不行了,应该学YY;--是你自己不行了吧!? 3、 浮躁的人容易问:我到底该学什么;--别问,学就对了; 4、 浮躁的人容易问:XX有前途吗;--建议你去抢银行; 5、 浮躁的人容易说:我要中文版!我的英文不行!--不行?学呀! 6、 浮躁的人容易问:XX和YY哪个好;--告诉你吧,都好--只要你学就行; 7、 浮躁的人分两种:a)只观望而不学的人;b)只学不坚持的人; 8、 把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 9、 学习编 ...
一、失血模型 只有getter和setter方法的实体类,所有的业务逻辑完全由Service层来完成。 代码示例: Domain: public class Person { private long id; private String name; private int age; //getter and setter … } DAO接口: public interface PersonDAO { public Person findPersonById(long id); } DAO实现: public ...
一、为什么要使用领域模型 • 有助于团队创建一个业务部门与IT部门都能理解的通用模型,并用该模型来沟通业务需求、数据实体、过程模型。 • 模型是模块化、可扩展、易于维护的,同时设计还反映了业务模型。 • 提高了业务领域对象的可重用性和可测性。 二、领域的分层架构 在Eric Evans《领域驱动设计--软件核心复杂性应对之道》中对领域的分层架构如下: • 用户界面(表现层):负责给用户展示信息,并解释用户命令。 • 应用层:该层协调应用程序的活动。不包括任何业务逻辑,不保存业务对象的状态,但能保存应用程序任务过程的状态。 • 领域层:这一层包括业务领域的信息。业务对象的状态在这里保存。 ...
一段以前写的老代码。 #include<stdio.h> //万年历查询 2006-5-15 #include<stdlib.h> #include <conio.h> void PrintSpace(int SpaceNum) //控制输出空格函数 { for(int i=0;i<SpaceNum;i++) printf(" "); } void main() { int year; int day[12]={31,28,31,30,31,30,31,31, ...
今天在InfoQ上看到一篇文章《领域驱动设计和开发实战》http://www.infoq.com/cn/articles/ddd-in-practice,其中部分内容如下: 引用从项目管理的观点来看,真实的DDD实现项目和其它软件开发项目所包含的阶段是一样的。这些阶段包括: 对领域进行建模 设计 开发 单元测试和集成测试 基于设计和开发来完善、重构领域模型(模型概念的持续集成(CI))。 使用更新的领域模型重复上述步骤(领域实现的CI)。 引用领域模型绝对不会是静态的;在项目生命周期中,它们会随着业务需求的演变、新项目中新需求的提出而发生变化。 联想到前段时间刚做完的一个基于领域模型设 ...
Global site tag (gtag.js) - Google Analytics