`
laodizhuq
  • 浏览: 26117 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
众所周知,淘宝上面购物最大的一个特点就是低廉的价格,我们经常会千挑万选,挑中一个心仪的宝贝。 然后开始问老板:“老板能不能再便宜点啊,我挑了好几家了,看你人还不错,再便宜个5块,我就买了。” 老板可能几 ...
我们在平时日常和项目时,都会非常注重用户体验,尽量的减少用户习惯的改变,淘宝的【已买到的宝贝】页面,就是一个很典型的例子,一成不变的查询条件【近三个月订单】【三个月前订单】。 其实对于用户而言,为什么 ...
最近看到一个公司底层代码中这样写到 public boolean match(FeatureSupportDO f) { boolean ret = false; if (null != f) { if (null != f.getFeature(this.key) && (null == this.value || this.value.equals(f.getFeature(this.key).getValue()))) { ret = true; } } return ret; } ...
我们在写代码时,经常会碰到有多种操作可以采用一个接口来完成的情况。 比如一个员工信息,我在提供查询接口时,支持员工id和员工名称的查询。 这样我们就可以采用一种查询接口 class UserIdDO{ private long userId; private String userName; } UserDO queryUserById(UserIdDO userIdDO){ ...... } 这样我们只要写一个接口就可以满足两种参数的查询了,看起来这个程序员省了很多事情,少写了一个方法。 但是给后续工作就带来了麻烦。 首先我们要统计员工id ...
新的一年了,最近也不知道忙什么,杂七杂八的事情太多了。 今天再发一个代码级别的优化点,就是业务意义不一样但功能一样,却有着两份代码: public boolean hasExcludeProperty(String[] excludeProperties, String[] properties) { if (excludeProperties != null) { for (String exPro : excludeProperties) { for (String pro ...
这段代码是查找当前数组中的内容,是否在排除数组中出现,其实这种业务无非是循环遍历两个数组,看看有没有相同的内容,但是原先的代码写的太挫了,稍微改了一下,没有算法上面的优化。 /** * 检查是否是排除类目 * * @param excludeCats 排除类目列表 * @param categoryId 当前类目列表 * @return */ private boolean isExcludeCats(String[] excludeCats, String[] categoryIds) { ...
我们在编码过程中,有很多字符串相关的操作, 基本上每个java程序员都知道String和StringBuffer两个在处理字符串上面有很大的效率差别, 归根结底是String是一次性开辟一段定长空间的char[],如果之后对String做修改,java是重新new一个新的String对象(char[]),然后拷贝原有对象到新对象中的。这个过程会非常消耗资源。 StringBuffer好处是默认开辟一个char[16],在修改字符串时是在char数组中添加内容,然后移动下标。当长度超过原有长度后,再开辟一段两倍于新长度+1的char[](int newCapacity = (value.le ...
最近在IC轮岗,翻看了很多代码,发现需要优化的地方很多,下面我们看一段代码 public static String aliasMap2String(Map<String, Map<String, String>> aliasMap) { if (aliasMap == null) { return ""; } StringBuilder nsb = new StringBuilder(); for (String key : aliasMap.keySet()) { Map<String, String& ...
工程中有段代码是对属性值做压缩的代码,实现的功能是:例如pid1:vid11;pid1:vid12;pid2:vid2,压缩后为pid1:vid11,vid12;pid2:vid2 原先代码如下: public static String compressPropertyString(String prop) { Map<Integer, List<Integer>> map = propString2map(prop); StringBuilder sb = new StringBuilder(); for (Integer pid : map.k ...
由于在开始编码时的失误,导致所有从数据库读取内容的字段没有进行空字段的处理 比如 Stirng id = rs.getStirng("id"); 结果导致当id是空的时候,就被输出到界面为null了。 由于项目比较大,页面有200多个,这个修改量非常大, 幸好有正则表达式帮忙,些一个简单的正则表达式就可以解决了 find:         rs\.getString\(\"([a-z]+)\"\) replace:   Pub.convertNull(rs.getString("\1")) find: <%=([a-z]+) ...
Global site tag (gtag.js) - Google Analytics