`
dingjob
  • 浏览: 181076 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
1. Object的toString方法返回的格式是 类名+@+散列码的十六进制表示。toString约定我们必须覆盖这个方法。 例如在PhoneNumber的toString方法里可以 写成 区号-电话号码的形式,给客户一个约定的友好的展示。   String.format方法可以进行一些必要格式的显示,比较高效 如: String.format("%1$,12d", 85022088)   具体实现可以参阅:http://www.iteye.com/topic/339734   2.考虑实现comparable接口   如果你要对一个ServiceE ...
JSL规定,调用两个Equals的对象,其hashCode必须相等。   假如我们没有覆盖hashCode,则在和集合类对象HashMap、HashSet、和HashTable一起使用时,会出现问题。例子所示:   public class Money { private BigDecimal ammount; private String unit; ...
现象: 计费和账户的交互通过Map来交互,基本数据格式如下{"pp900_88",20,"pp900_61",2……} 在不同的取值情况下,较多数据返回了相同的价格结果,导致计算价格错误。   应用场景: 产品计算价格时,使用cache ...
本节论述了通用对象-java类默认的继承对象(Object)的方法和注意事项,同时也对具有类似特性的Comparable.compareTo()也进行了讲解。   一.覆盖equals时要遵守通用约定    1.Object的equals如下: public boolean equals(Object obj) { return (th ...
场景:偶尔生产环境的某台机器CPU使用率很高,经过定位发现是有一个大的HashMap(HashMap里面存放了大量数据,比如1W条)做循环引起的。 代码中采用了如下的遍历   for(Iterator ite = map.keySet().iterator(); ite.hasNext();){ Object key = ite.next(); Object value = map.get(key); }     通过Map类的get(key)方法获取value时,会进行两次hashCode的计算,消耗CPU资源;而使用entrySet的方式,map对象会直接返 ...
如何设计实现最基础的分布式应用,我们可以从如下两个ID入手:一个是全球唯一标识,另一个分布式hash散列值。 前一个保证你各个服务器之间产生的不通ID是不重复的,因为它的主要算法是跟时间和MAC地址有关的,后一个决定 ...
public class RandomUtil { private static Random random = new Random(); public static String getRandomNumber(String[] range,int rangeLength,int length){ StringBuffer sb = new StringBuffer(); for(int i=0;i<length;i++){ sb.append(String.valueOf(range[ran ...
  我们经常会使用hessian接口,但是hessian接口默认的情况下是不会进行加密的,原来在项目中使用了MD5的加密,这次希望通过DSA 加密解决 C- S的安全通讯,一方面确定客户端是有权限调用的(给出了publicKey),另一方面保证传输的数据安全     基本思路就是采用 新的HessianProxyFactory和 HessianServiceExporter 代替原来的发送和接收端,发送请求时进行私钥加密,接收时进行公钥的解密。     基本逻辑实现如下:   /** * 实现带加密功能的hessian client * * <pre> ...
一般公司在开发一类对的号码时,会预留一些号码给以后升级的会员使用,比如旺旺靓号,QQ号等,采用正则表达式实现较好,通过规则引擎的后台页面做成实时可配置的也是不错的选择。 一. 一般会有如下的正则需求     代码中每行都标有注释,这个就是需求,为设置靓号应该考虑的方面,这里特别提示下,不能忘记跟公司相关的业务,股票代码等检查。     代码如下: public class CreditCodeRegexValidateStategyServiceImpl implements CreditCodeValidateStategyService { private stat ...
 在《Effective Java》一书中第六条,消除陈旧对象时,提到了weakHashMap,看了下还是适用的,即在我们使用短时间内就过期的缓存时最好使用weakHashMap,它包含了一个自动调用的方法expungeStaleEntries,这样就会在值被引用后直接执行 ...
本次提到的应用场景是这样的,对于任务启动来说(spring quartz任务),当有一个线程正在使用时,同样的任务不要再启动一次,这样可能导致数据出错。 使用ConcurrentHashMap 来保存任务的线程信息,如果当前任务线程已经在运行 ...
项目中使用了非阻塞队列,如下接口目的是实现阻塞队列的处理数据。   public interface IPoller { public void addResulst(Map resut); public void handle(); }     这个没有针对queue的关闭,必然会导致在正常退出或者JVM 退出时queue里面的数据不能处理。在使用queue等存储临时数据时必须要安全的关闭,防止数据丢失,如此增加如下处理   public class Poller implements IPoller, BeanFactoryPostProcessor, Disposa ...
   刚刚看了本杂志,里面有关于家长教育孩子的栏目,提到一本名字叫《成长比成功更重要》的书。我并没有去读这本书,但是,单单看到这几个字,就让我有一种豁然开朗的感觉。    说豁然开朗是因为最近公司战略调整, ...
   Drools 5 采用了原生的规则语言,那是一种非 XML 文本格式。在符号方面,这种格式是非常轻量的,它的应用非常简单。可以适用于比较复杂的业务逻辑,本例是用于计费系统的批价,粗略来说,有按次收费,按月收费,按照流量收费,又根据前提不同,使用不同的优惠策略,比如购买了某产品赠送800通话实践100分钟,又有可能根据当月实际使用天数赠送一定的通话时长。如此复杂场景使用规则引擎再好不过了,将动态的都用规则标识,模型里只存有静态数据。   首先Drools 规则要卸载drl 的文件里,通过程序加载这个drl,然后才可以运算     1. 引入jar包(maven 编译)   ...
   本书是JAVA 经典书籍之一,我看的是第二版的英文版(英文版比较便宜,哈哈),基于Java5的,值得一看: 我们先来了解下作者:   Joshua Bloch,是Google公司的首席Java架构师。是Jolt大奖的获得者。他曾是Sun公司的杰出工程师,和Transarc公司的高级系统设计师。Bloch曾带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。他的著作还包括:《Java Puzzlers》、《Java Concurrency in Practive》等。     构建对象主要有七条 ...
Global site tag (gtag.js) - Google Analytics