做完笔试之后,和经理面谈,问过几个问题,记了四个,答得不好,请各位给我些思路,谢谢!1. 10000个手机号如何排序
2. 几台服务器之间,如何共享用户信息?(应该是想减少浏览带来的流量)
3. HashMap和ArrayList谁快?为什么?
4. 对图片记录下载次数时,每次对数据库字段加1操作显然不妥,应该用什么方法解决?(先写文件,定时更新数据库么?)再次谢过...

解决方案 »

  1.   


    1  这个不知道考什么 Arrays。sort不就行了3  这2个东西查找当hashmap快了,通过索引直接拿值的 不过这个 较arraylist耗内存 呵呵
      

  2.   

    2. 几台服务器之间,如何共享用户信息?(应该是想减少浏览带来的流量) 用集群?4. 对图片记录下载次数时,每次对数据库字段加1操作显然不妥,应该用什么方法解决?(先写文件,定时更新数据库么?) 
    可以记录用户IP, 按IP来计算
      

  3.   

    第一个,放IList<int>里,Sort
    2.不知所云,干吗要共享用户信息?,如果要共享就数据库。如果跨域,就Webservice3.ArrayList?我真不知道那个快,我连那个是同步的都忘了&*(&(郁闷呀,是HashTable同步来把?
    4.不知所云。每次下载完成+1不行吗????如果是同步,直接就在下载函数后面加数据库加1语句,当然,异步的情况多了那就在下载完成之后Invoke一下下嘛
      

  4.   

    3. HashMap和ArrayList谁快?为什么? HashMap插入数据慢, 但查询却比ArrayList快
      

  5.   

    1.我认为他想要的排序不是普通的排序,比如可以先按前三位的拍,就可以把联通和移动的区分开
    在按中间4位,和后4位排,这样拍出来的在功能上更有意义,在效率上期待大大的回答;2,这个不知道,用webservice可以共享;大家都读同一个库也行;3。有可比性吗?4.按IP吧,和投票类似
      

  6.   

    3. HashMap和ArrayList谁快?为什么? 
    --------------------------------------这都什么问题哦?完全不同的两个东西,功能、作用都不一样,有可比性么?
    再说,谁快?是查找快,还是添加或者是删除快?
      

  7.   

    1. 10000个手机号如何排序
    想问排序算法?
     
    2. 几台服务器之间,如何共享用户信息?(应该是想减少浏览带来的流量) 
    数据库?集群?3. HashMap和ArrayList谁快?为什么? 
    老板的意思应该是想说HashMap,HashMap键值对应,通过关键字直接寻址,不用ArrayList要遍历查找。4. 对图片记录下载次数时,每次对数据库字段加1操作显然不妥,应该用什么方法解决?(先写文件,定时更新数据库么?) 
    放入一个缓存里,另开一个线程定时监测缓存,到一定时间或者一定数量存入数据库
      

  8.   

    HashMap查询更快吗?ArrayList可是基于数组的,对于数组而言,通过a[0]的地址加上i就可以得到a[i]的地址,貌似比HashMap更快吧。
      

  9.   

    1.排序的话,应用LinkedList吧
    2.问的有点模糊
    3.HashMap查找快;ArrayList插入和修改快
    4.不清楚
      

  10.   

    关于第三题HashMap的,经理跟我说这个类的源代码角度上说了说,哈希后部分还要再哈希什么的,相比HM会更快一些.排序的目的,就是想看看我的思路吧,怎么能优化而已.
      

  11.   

    1. 10000个手机号如何排序 第一题回答:
    如是:从数据库查找10000个手机号时候,那个sql查询结果排序是最高效的。
    如是算法排序,那要注意把虚拟内存设置大点,小心爆掉,写个冒泡什么的
      

  12.   

    4. 对图片记录下载次数时,每次对数据库字段加1操作显然不妥,应该用什么方法解决?(先写文件,定时更新数据库么?) 
    回答:我想和session相识,整个全局的变量,点一下,加一下。每日定时检测这个变量加到N,更新库为X+N
      

  13.   


    服务器重启时 可以触发servlet事件?能知道服务器干什么就好办了。
    这个不大清晰了。个人看法
      

  14.   

    嗨,这不是WAP网站么,谁知道会有多少呢...
      

  15.   


    1、10000个手机号码作为字符串排序其实本来也不算慢,但是最好的排序算法每次都要比较O(nlgn)次,字符串的比较比int,long等类型的比较要耗时一些,由于手机号码都是纯数字,可以先把它们转成long或int类型,再进行排序,相对来说要快一些。
    2、服务器间用户信息共享的话如果用j2ee容器默认的session,每台服务器都要进行session的同步,这个开销是很大的,而且随着服务器的数量的增加程指数增长,一个简单的方式就是用cookie
    3、HashMap和ArrayList的快慢本来就不能来比较,因为前者是key-value,而后者就是一个数组(基于索引访问)。如果硬要比较,那么在基于索引的读取速度上ArrayList要比HashMap快,如果是内容查找,当前是HashMap快,至于插入和删除,当然也是HashMap快
    4、先更新到缓存里(比如java内存,比如apache服务器模块等)然后定时或定量的统一更新到数据库
      

  16.   

    谢谢楼上的朋友...第二题,有些手机可能在cookie方面支持能力不强
      

  17.   


    手机和pc访问不是同一个应该,
    比如pc访问的是www.taobao.com
    而手机访问的地址却是m.taobao.com
    手机的访问量远没有pc大,可以考虑用服务端session在集群间同步
      

  18.   

    但是WAP页面是不是就需要更多的手机访问了?