锁定老帖子 主题:成都支付宝面试归来
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-18
因为我做过多个项目,一直对架构很感兴趣,最近又一直在研究Spring,Hibernate,Struts的源代码,而且前面也有了面试经验,所以前面的技术问题都比较简单的搞定了。但最后一个现现场编程题,现在在我看来,确实让我这个缺乏大型项目经验的人露了马脚。 题目是这样子的:写一个类,读一个txt文件,从中找到aliy这个词,并记录该字符串所在的行数和每一行中的位置。 我第一反应这个问题很简单,每次循环读一行字符串,然后用String.index方法就可以搞定了。但是在写代码的时候,我却把PrintReader搞错了,写成PrintWriter,唉,用管了IDE就是这样子啊。后来就和技术总监聊这个类还需要什么改进的地方。在他的提醒下,我才注意到。 第一 每一行不一定只有一个关键词,这是我所没有注意到的,当然在实际的开发中我后来是可以发现的。后来我还想到用正则表达式。还有就是字符可以设置token,直接split几段,还是能找到,当然这三种方法的效率,我确实不太清楚。 第二 性能的问题,他说,如果是读一个1G的文件,那怎么办。我当时第一反应是那就分段读,然后用多线程处理每一段的字符串。这个问题是我回答的最失败的地方,在回来的车上,我才反应过来,准备的回答应该是通过设置缓存区来读文件。 回答的如此差,我也不报什么希望了。不过还是要给朋友们提点经验吧,特别是那些刚毕业的,有点项目经验的朋友,因为我们可能面临的问题都是这个。那个时候我在公司上班的时候,有写代码,也有做框架,项目经理始终说的“先把做出来再改进” 事实上在小公司真的很忙很累,对于没有什么经验的人来说,能做出来已经不错了,所以后来那个“再改进”通常就被忽略了,像面对上面的那个问题,虽然事后能想到,但是对于有工作经验的人来,马上就能够反应过来。所以在以后的开发中,除了灵活运用基础知识,还就要从代码的质量方面去多考虑,这样才能够慢慢成长。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-18
好好努力!!希望楼主打到好的工作!
"写一个类,读一个txt文件,从中找到aliy这个词,并记录该字符串所在的行数和每一行中的位置。" 这样的题目考得挺实在的,个人感觉 |
|
返回顶楼 | |
发表时间:2007-03-18
呵呵,谢谢楼上的朋友。
是啊,越是简单的问题,越是考验你对分析的能力,算是积累经验了吧 |
|
返回顶楼 | |
发表时间:2007-03-19
那位总监提出的假设是很实际的,我曾经写过一个日志分析类,当然内容比这个面试的复杂一些,除了找到一些关键的词还要对进出日志做对应,按时间排序等等。文件大小不到1G,由于没有使用缓存,导致OutOfMemorey...
后来自己做个缓存,每读200行flush一次,才搞定。 |
|
返回顶楼 | |
发表时间:2007-03-19
卒子99 写道 呵呵,谢谢楼上的朋友。
是啊,越是简单的问题,越是考验你对分析的能力,算是积累经验了吧 你是成都那个学校毕业的,是成电吗?如果是的话+我好友,校友阿! |
|
返回顶楼 | |
发表时间:2007-03-19
怎么都喜欢考这个题目?
迅雷面试的上机考试题目也是这个. 由于我从来不不记完整的类名,于是当时把jdk的src.zip文件解压出来,找到io文夹下面的java文件,然后copy了一些类名和方法名就写好了. |
|
返回顶楼 | |
发表时间:2007-03-19
former 写道 那位总监提出的假设是很实际的,我曾经写过一个日志分析类,当然内容比这个面试的复杂一些,除了找到一些关键的词还要对进出日志做对应,按时间排序等等。文件大小不到1G,由于没有使用缓存,导致OutOfMemorey...
后来自己做个缓存,每读200行flush一次,才搞定。 我对你写的这个比较感兴趣,能否共享下源代码呢。 呵呵 |
|
返回顶楼 | |
发表时间:2007-03-19
用BufferedReader这个类? 我也没有遇到这种大文件的情况。
|
|
返回顶楼 | |
发表时间:2007-03-19
cjyzpcl 写道 卒子99 写道 呵呵,谢谢楼上的朋友。
是啊,越是简单的问题,越是考验你对分析的能力,算是积累经验了吧 你是成都那个学校毕业的,是成电吗?如果是的话+我好友,校友阿! 呵呵,不是了,我是西科大的,在绵阳。还是可以和你交个朋友啊,我有好些朋友也是成电的。 |
|
返回顶楼 | |
发表时间:2007-03-21
wuhua 写道 former 写道 那位总监提出的假设是很实际的,我曾经写过一个日志分析类,当然内容比这个面试的复杂一些,除了找到一些关键的词还要对进出日志做对应,按时间排序等等。文件大小不到1G,由于没有使用缓存,导致OutOfMemorey...
后来自己做个缓存,每读200行flush一次,才搞定。 我对你写的这个比较感兴趣,能否共享下源代码呢。 呵呵 这个我自己也没有,因为公司的开发内网是封闭的,偶不是骇客,没得那个技术。。 除非一行一行的抄出来。。 个人也不是很赞同公司的做法。 而且我觉得两年前写的东西也不是很好,对日志的格式要求搞,没有用正则表达式处理这个问题,没有做ui接口,只能将分析后的日志分类到各个不同的文本文件中。 |
|
返回顶楼 | |