论坛首页 招聘求职论坛

周末两家面试总结

浏览 32814 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-17  
grandboy 写道
SELECT t.year as Year, t.salary + t.salary * 0.5 * (t.year-2000) as Salary
FROM test t

这样效率最高。如果用SP来实现的话,就可以用递归方法来实现了。



不能根据数据的规律去实现。。。

面试的一看就会把你CUT。。
0 请登录后投票
   发表时间:2009-03-17  
jackman 写道
ybak 写道
rain2005 写道
使用子查询
select  a.year,
       (<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/themes/advanced/langs/zh.js"></script><script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/plugins/javaeye/langs/zh.js"></script>select sum(b.salary)
        from t_salary b 
        where b.year<=a.year)
from t_salary a
就是oracle上的最佳sql


你这个语句根本不符合题目的意思。根本就谈不上最佳。
这里明显是用window function最简单直接,效率也不低。


oracle上子查询是最佳实践,那oracle就不是oracle了,分析函数专门处理此类问题,这里都不用分区的,直接一个order by搞定
select year,sum(salary) over(order by year) from test;



两个的处理数据量不一样大。。。子查询很小。。

当然,效率在我测试的时候没发现有多大区别。。

上M级别的时候才能体现吧
0 请登录后投票
   发表时间:2009-03-17  
holan 写道
aquleo 写道
jackman 写道
哎,要做连接,可以在循环外面创建stringbuffer或在循环外面创建string对象,当然stringbuffer性能好点,另外oracle的分析函数你不知道吗???或者你用连接,子查询等也能搞定啊!基础最重要,做累加计算,分析函数用的很多,而且性能比你用连接子查询要好,oracle已经做了优化了,当然一般的数据库也有实现分析函数的方法。


抱歉,数据库我确实不强...

Oracle DB2都没用过...MySQL用的也少...用的最多的就是MSSQL,那玩意太智能太傻瓜了...

搞到现在好多语句都不会写了...惭愧...

sqlserver怎么傻瓜了,都是sql语句,不同的就是sqlserver2005版的sql实现了很多标准比如over()子句等
如果你用oracle,sql语句和sql大致也是一样的。
比如你说的题目,和用sqlserver或者是oracle没有什么关系,就是你对sql理解不深。
怎么能怪到sqlserver头上


这位兄弟你可能曲解我的意思了,我是说MSSQL在做视力和一些可视化操作的时候比较智能,为什么微软的东西那么多人用,就是太智能了...再一个我也说了我数据库不强,这方面我的确要加强,所以这个问题就这样吧...
1 请登录后投票
   发表时间:2009-03-17  
安博软件前些日子我也去面试过了,人家要做sns网站,总共要22个人,那时还少10个左右,他们承包的别人的项目吧,大概会做1年左右,用 ssh框架,负责人是内地美国来回飞地那种,我也是基础太差,比试不过阿,现在正加强java基础和数据库方面的东西
0 请登录后投票
   发表时间:2009-03-17  
   去年我找工作也是因为基础,错过好多公司,那时我面试回来,就会看看书,至少先把当天面试的知识弄会,然后再看相关的知识,看的都是基础。
   好几个月没做项目,这些基础又忘得差不多了 呵呵。
  
0 请登录后投票
   发表时间:2009-03-17  
分析函数应该比子查询效率要高些的
0 请登录后投票
   发表时间:2009-03-17  
xiaocheng 写道

1 cost 16
2 cost 0
append cost 0
大部分测试结果表明
楼主的性能瓶颈在以 String s = new String(); 应改成-->String s="";



SIZE = 10000,100000或者更大才能看得出性能瓶颈。

另这道题考的是求和及类型转换吧。

求和应该直接用公式求解就行了,还这么麻烦。

题目很怪!!!!!!!!
0 请登录后投票
   发表时间:2009-03-18  
aquleo 写道
先简单做下自我介绍,本人只算一个小程序员,有三年工作经验,研究过Spring,Struts部分源码,自己封装过一些类...

对技术有点兴趣,啥都略懂点,但不精而且觉得越学越多不会...惭愧...

第一家:安博在线

说重点,做了一套题,从基础到数据结构算法,项目管理然和Unix操作...

说说我错的几个题
public String test(){
	String tmp = new String();
	for(int i = 0; i < 10; i++){
	  tmp += i;
	}
	return tmp;
}

这个代码有什么问题,请给出修改方法...

当时我就觉得没啥问题,就没写,后来面试我的项目经理说再仔细看看...我实在想不出,就说了是不是应该用StringBuffer做拼接...他说不对....没下文了

然后问到get与post的区别...当时一下愁住了,说url参数...他说参数有限制嘛...当时我糊里糊涂的说不大清楚...

又问及负载均衡问题...这个没做过,实在不会答...

还有一个是论坛上有的题目,1000W数据做替换的,不用数据库和shell,1G内存...我只给了一个思路,他说不好,让我再想想...无奈本人数据结构太差...他给我了点提示,说当文件拆分,然后我说可以将文件拆分后排序再处理...又是一顿说...最后又问到数据库,表,视图,索引的作用,区别,效率,是否占空间等...

最后一个问题,如果让你实现一个在线人数的统计...

我说了一堆,估计他也不怎么认同...

总结:题不错,面试官知识面也广,自己要学习的比较多,会一步步给你思路,让你想解决方案,自己技术还是差了,估计没戏....


1,用buffer没有builder好
2,post加密
3,论坛有详细
4,论坛里童子总结过,表做了index以后速度快(index是另外存储的),但是浪费额外的空间,而且并不是全部字段index以后都快的。要作权衡(貌似这是dba的事情)

5,在线人数统计有session监听器。
0 请登录后投票
   发表时间:2009-03-18  
bonny 写道

1,用buffer没有builder好
2,post加密
3,论坛有详细
4,论坛里童子总结过,表做了index以后速度快(index是另外存储的),但是浪费额外的空间,而且并不是全部字段index以后都快的。要作权衡(貌似这是dba的事情)

5,在线人数统计有session监听器。


1.我当时也和他解释了为什么用StringBuffer,StringBuilder也说了...
StringBuilder是1.5的新加的,只是不是线程安全的...可能效率会高...

2.post加密我也说了,但他当时就提出参数是否有限制...这点我想了一会,没想起来...

3.数据结构那题其实后来面试官也和我说了思路,完事后他说这题其实不考你数据结构这些东西,而是面对一个棘手的问题你如何去思考,如何去改善...

4.关于table, view, index我就不多说了,我数据库不强...还等高人给出完整的吧...

5.这题关键是你以什么标准去判断用户是否在线,多长时间不操作或者注销再或者直接关闭浏览器,你如何判断用户是否重复统计等等这都需要考虑...
0 请登录后投票
   发表时间:2009-03-19  
public String test(){  
    String tmp = new String();  
    for(int i = 0; i < 10; i++){  
      tmp += i;  
    }  
    return tmp;  
}
如果他要的是这个结果
public String test(){  
    return "0123456789";  
}
才是最正确的,资源消耗最少、步骤最少、速度最快
0 请登录后投票
论坛首页 招聘求职版

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