论坛首页 Java企业应用论坛

看高手代码--从小case学大道理

浏览 43614 次
该帖已经被评为良好帖
作者 正文
   发表时间:2010-06-02  
超级潜水员 写道
杯具啊.... 良好战胜了新手贴....


我也觉得很悲剧啊.

0 请登录后投票
   发表时间:2010-06-02  
超级潜水员 写道
arthas777 写道
iaimstar 写道
skydream 写道
sw1982 写道
...lookup 一下hashmap真的那么低效吗? 建议复习下数据结构哦,你这些总结是没错,可是很表面


典型的没有写过高并发程序的思维方式,明明可以节约的地方,仅仅几行代码就可以优化,偏偏不做。

hashmap再快,也比case 一个 整型满上1w倍。

性能,是一点一点挤牙膏挤出来的,哪能到处浪费啊。

一个团队好多个人

指望所有人都挤牙膏,开玩笑

顶多就是核心代码慎重一些

整个项目再整体测试一下性能瓶颈,有针对性的调整就好了

每句代码都想写的句句珠玑,既不可能,也不现实。

在需求允许的范围内,尽量的提高开发效率,才能适时的交出合适的作业


    呵呵 "在需求允许的范围内,尽量的提高开发效率,才能适时的交出合适的作业"
    所以说,你已沦为这恶劣环境下的奴隶,没有自我了!
   


最烦你这种人, 在性能允许的情况下. 可读性,可维护性优先于性能.
去写C不得,整天折腾到底是要用int呢,还是要用long类型.


          我很怀疑你的水平?你的意思是说写java, int和long根本就没有区别?是吧!!
          好白痴哦!
0 请登录后投票
   发表时间:2010-06-02  
你们这帮老爷们,TMD还是男人吗!!!
为这个问题,你骂我,我骂你的!
搞到最后还搞出了火药味了!!!
      你们TMD每个人从事的领域可能都不同,当然会对这个问题会有不同的观念!这从你们TMD刚开始工作所踏入的领域一直到现在所决定的!
      扯着嗓子在这喊,叫有意思吗?
      有的领域要快速开发,要效率,有的领域,要仔细,要节省每一点资源!
      为什么吵来吵去都不知道这个根本的问题!!!
      TMD你让嵌入式的去写J2EE????
      TMD你让J2EE去写J2ME????
      可能吗?这三种人对楼主的看法,肯定都会不同的!!!
    
还有,楼主,你看着这些同行们,你我他都TMD的可怜的程序员为这个问题自相互骂,有意思,很得意?
0 请登录后投票
   发表时间:2010-06-02  
skydream 写道
sw1982 写道
...lookup 一下hashmap真的那么低效吗? 建议复习下数据结构哦,你这些总结是没错,可是很表面


典型的没有写过高并发程序的思维方式,明明可以节约的地方,仅仅几行代码就可以优化,偏偏不做。

hashmap再快,也比case 一个 整型满上1w倍。

性能,是一点一点挤牙膏挤出来的,哪能到处浪费啊。

首先,谁说hash表比case慢一万倍的??
其实case的代码实现是 if ..else if形式的,复杂度是O(n)
hashMap 的复杂度是 O(1),当然里面的实现有函数调用,(函数调用的效率我没测试过,不过据《代码大全2》里面的资料,java的函数调用所消耗的时间和 普通赋值语句相同。) 就是说hashMap实际操作时间不过 十几个 语句周期。

代码最大的问题是 明明是一堆静态常量,为什么要用 ConcurrentHashMap??

感觉实际编码的过程是: 开始不知道为什么使用了一个大而全,含义复杂的map,(所以做成同步,key中出现了字符串拼装),后来发现效率不够,于是打补丁,就出现了那堆case。 没什么好说的,不过是一堆临时代码,真正应该做的是重构应该重新定义Map的结构。

其实这种东西效率最高的是 以空间换时间:
String[] httpStatusCode = new int[600];
httpStatusCode[404] = "Not Found";
………………
只是多使用了 600 * 8 = 4.8k空间。

或者最普通的方式,使用:
com.google.common.collect.ImmutableMap
1 请登录后投票
   发表时间:2010-06-02  
haha, 技巧算不上吧,
态度,能优化顺手优化。

支持新手帖
0 请登录后投票
   发表时间:2010-06-02  
mathfox 写道
又一个可以在工作中装x的方法出现了。


前几天跟一个PHP的朋友说,函数调用是有开销的,然后介绍C++ inline 函数的概念。

然后过两天,他在公司,就用这个概念去为自己某一段复制了N次的代码辩护。晕。
1 请登录后投票
   发表时间:2010-06-02  
不错的技巧。不过,如果这里特别需要速度的话,在switch之后,不用hashmap,而是直接用一个String[500]如何?

return sc[status - 100]; // 0xx不存在,100-5xx,500长度够用了,考虑速度,500长度的数组应该可以接受

sc[0] = "Continue" // 100
sc[1] = "Switching Protocols" // 101
sc[100] = "OK" // 200
0 请登录后投票
   发表时间:2010-06-02  
arthas777 写道
zhaona1986 写道
你们这帮老爷们,TMD还是男人吗!!!
为这个问题,你骂我,我骂你的!
搞到最后还搞出了火药味了!!!
      你们TMD每个人从事的领域可能都不同,当然会对这个问题会有不同的观念!这从你们TMD刚开始工作所踏入的领域一直到现在所决定的!
      扯着嗓子在这喊,叫有意思吗?
      有的领域要快速开发,要效率,有的领域,要仔细,要节省每一点资源!
      为什么吵来吵去都不知道这个根本的问题!!!
      TMD你让嵌入式的去写J2EE????
      TMD你让J2EE去写J2ME????
      可能吗?这三种人对楼主的看法,肯定都会不同的!!!
    
还有,楼主,你看着这些同行们,你我他都TMD的可怜的程序员为这个问题自相互骂,有意思,很得意?

      
     技术和积累就是在摩擦和火花中不断进步和加强的!
     是你太激动太嫩了!
     能有这样的平台,相离那么远的我们一起摩擦,甚是奢望!
     慢慢你就习惯了!

很同意你的观点 不要太愤青 凡是淡定 程序员都要心平气和才行 有激情是可以的 但不要动不动就TMD ^_^ 这里允许摩擦,有火药味也是可以的
0 请登录后投票
   发表时间:2010-06-02  
Xorcerer 写道
mathfox 写道
又一个可以在工作中装x的方法出现了。


前几天跟一个PHP的朋友说,函数调用是有开销的,然后介绍C++ inline 函数的概念。

然后过两天,他在公司,就用这个概念去为自己某一段复制了N次的代码辩护。晕。

可以写进你的糗事百科了 ^_^ 拿你说事儿
0 请登录后投票
   发表时间:2010-06-02  
原来有这种技巧。。楼主多介绍点吧,还真不知道
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics