- 浏览: 26117 次
- 性别:
- 来自: 杭州
最新评论
-
kevinpan45:
也就快了十分之一这样,你的提高这么多应该说明提升的地方是有针对 ...
小优化,带来大收获-String类的效率问题 -
kevinpan45:
有这么高的效率吗,我换了以后提高的效率没这么明显啊
小优化,带来大收获-String类的效率问题 -
laodizhuq:
谢谢您的提议。其实这个问题是我在维护原有系统时碰到的,现在的问 ...
万能接口带来的困扰 -
Heis:
事实上,这种做法在会让别的程序员非常迷惑,写代码不应该只让自己 ...
万能接口带来的困扰 -
laodizhuq:
代码优化本来就是一个循序渐进的过程,又不可能一步到位的,只能是 ...
代码优化4-看似不同却是重复的代码
文章列表
众所周知,淘宝上面购物最大的一个特点就是低廉的价格,我们经常会千挑万选,挑中一个心仪的宝贝。
然后开始问老板:“老板能不能再便宜点啊,我挑了好几家了,看你人还不错,再便宜个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 ...
代码优化4-看似不同却是重复的代码
- 博客分类:
- 工作随笔
新的一年了,最近也不知道忙什么,杂七杂八的事情太多了。
今天再发一个代码级别的优化点,就是业务意义不一样但功能一样,却有着两份代码:
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& ...
代码优化1-谨慎使用已有的方法
- 博客分类:
- 工作随笔
工程中有段代码是对属性值做压缩的代码,实现的功能是:例如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]+) ...
- 2008-12-06 13:23
- 浏览 2249
- 评论(0)