导航:首页 > 源码编译 > it编译原理面试题

it编译原理面试题

发布时间:2022-11-15 09:01:52

㈠ IT面试经验:程序员面试什么最重要

程序员面试一直是社区乐于讨论的热门话题。我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型汽车制造商开发Android智能汽车的新兴公司。跨入IT行业以来,我在求职过程中经历过多次面试,最近两年也有过多次面试别人的经验。我感觉现在到了对这个问题发表自己看法的时候,这篇文章是我站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结。
目标
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历。我在最初这个阶段只是按照自己的想象把”找到基础好的程序员“,”找到算法能力优秀的程序员“,”找到有Android开发经验的程序员“等作为面试的目标。但是,实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好。比如,有的面试者基础知识和算法掌握情况不错,进程、线程、内存等概念清晰,基本的Hash,二叉树,快速排序等数据结构和算法也比较熟悉,但是进公司后在实际工作中表现得很糟糕。后来,我才发现原来是我的面试目标出了问题,我原先的面试方法更像是大学的算法或操作系统期末考试,按照这种方法让许多并不合适的人通过了面试,同时也可能错过了许多合适的人。
后来,我的反思是,从公司的角度讲,面试的根本目的是找到“能够干好工作”的人,而“高学历”,“算法好”,“基础好”,“有经验”这些都是表象而不是根本,它们并不能直接和“工作好”划等号。
方法
目标明确了,但接下来的问题是假设面试者是一个黑盒系统,“工作好”不是直接可观测变量,你所能直接观测的变量是基础、算法、经验、学历、性格、谈吐、年龄等等。所以,实际上,你只能从“基础好”,“算法好”等可以直接观测的量去推测“工作好”的概率,这就是一个在“X好“条件下”工作好“的条件概率问题:P(工作好 | X好)。
根据这个模型,面试所应该考察哪些方面就很明显了,那就是选择那种最具有区分性的方面来考察。比如,考察面试者的体型特征没有太大意义,因为P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,体型特征不具有区分性,这不是面试所应该关注的内容。
面试官应当结合职位的要求明确哪些因素具有比较好的区分性。比如,如果要招一名技术门槛比较高的3D游戏引擎开发工程师,面试者A具有3D游戏引擎开发的经验,但是在基础知识和算法面试方面表现一般;面试者B相反,基础知识和算法面试表现很好,但没有游戏开发经验,而你只能选择其一。你选谁呢?其实,这就是两个条件概率问题P(工作好|经验好,基础一般,算法一般)和P(工作好|没经验,基础好,算法好)。这个问题就留给面试官来判断了,就我个人而言,对于技术门槛较高需要技术积累的职位,经验更加说明问题,因此,我更倾向于面试者A。
下面,我再结合自己的经验谈谈对面试中常见方面的看法。
算法
算法是Google和MS等大公司面试所重点考察的内容。我个人很喜欢算法,曾经参加ACM/ICPC拿过北京赛区的13名。但是,就个人经验来看,我所接触过的绝大多数开发职位而言,算法都不适合作为考察面试者优劣的主要因素。对于普通的非算法性开发职位,考察面试者的算法就相当于考察他打乒乓球好不好一样,与目标“工作好”的相关性太低。就我个人的经验来看,差不多P(工作好|算法好)=50%,也就是算法面试没有太大的区分性。
甚至,还有一种很不好的情况特别多地出现在算法好的面试者身上,我称之为“只磨刀,不砍柴”。什么意思呢?有类人只对什么A*算法,异步编程,JVM类加载机制这种纯技术问题感兴趣,对实现用户需求毫无兴趣。这类人看起来有一定的技术能力,但是对公司来讲贡献十分有限,甚至不如技术一般但认真负责的人。所以,一旦遇到面试者算法好,我就特别留意考察会不会是这种“只磨刀,不砍柴”的人。
另外,虽然我个人不了解Google和MS,但我对于其特别重视考察算法能力的面试策略是持怀疑态度的。即使在这样的世界级大公司,算法虽然重要,但可以想象在项目实施过程所遇到的各种各样问题中,算法问题绝大多数时候不会是主要瓶颈,没有到那种需要每个人都是算法高手的情况。实际上,绝大多数项目真正难点并不是一两个算法瓶颈,甚至也不是单点的技术瓶颈,而是系统性的组织、协调、设计、开发问题,有大量的看起来不是那么有技术含量的脏活累活,也有许多问题是由于信息不足,并不是技术能力强就能克服这些困难。一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好的。如果按照“算法好”的单一标准选材,必定会把许多优秀的人才拒之门外。
基础
基础面试是指考察诸如指针使用、进程线程概念等基础知识的面试,十分类似于大学期末考试题。我曾经以为基础面试十分重要,但是现在不这么看了。在工作中基础的确是重要的,但是在面试过程中,它必须具有区分性才有意义,也就是说P(工作好|基础好)的概率要高,那么考察指针使用,进程线程区别这样的基础题目才有它的意义。我的实际经验是,基础面试并不具有很好的区分性,和算法一样, 差不多P(工作好|基础好) = 50%。同时,基础面试是最容易准备的,中国人有长期的应试教育经验,要准备几个把玩指针题目太容易了。
我曾经遇到过这样的面试者,他的C语言基础和编译、链接等原理掌握得非常好,给我留下了深刻的印象,我给的面试结论是:知识面不宽,只会C语言,但基础很扎实,建议录用。后来的事情证明了那个结论的前半部分是对的,但是”建议录用“错了。他在实际工作中表现得一塌糊涂,不理解需求,不理解整体架构;同时,上班时间不是花在项目上,而是花在阅读诸如《程序员的自我修养》之类的书籍上。最后,这位同事由于长期“不出活”离开了公司。
基础不是不重要,而是“基础好”不足以说明面试者能干好工作,因为基础是属于局部性知识,而实际工作需要综合性能力,二者有天壤之别。C语言、操作系统能考高分,但是不会写程序的人在大学我们还见得少吗? 软件开发就像盖房子,综合能力是设计和搭骨架,基础知识是码砖。张小龙原先Foxmail是Delphi开发的,他它不懂C#,你如果要招聘一个开发.NET Email客户端的人,你考察他对CLR掌握得好不好有意义吗? 让张小龙来开发一个C#版的Foxmail真的会有困难吗? 你招一个精通C#但没有Email客户端开发经验的人来真的比张小龙靠谱吗?
我说基础知识不重要,和古人说的“不积洼步无以至千里”是不是矛盾呢?不矛盾!“洼步”与“千里”是一种可累加关系,但再多的“基础知识”都累加不成“综合能力”。学习软件开发要像持续集成一样,一开始就是一个完整的系统,虽然规模不大,问题很多,但它麻雀虽小五脏俱全,从小系统到大系统,从简单系统到复杂系统逐步演化。
所以,基础好本身不足以说明太多的问题,必须进一步考察综合能力。对于基础面试表现不好的面试者,如果时间允许也要进一步考察,有的面试者其实是有能力的,只是没有进行充分的准备。最理想的状态当然是基础和综合能力俱佳,若不能兼顾,应当综合能力优先。
经验
这里所说的经验不是通过工作了多少年来衡量的,而主要是指面试者的经历,比如,是否完整地实现过一个软件,或作为主要开发者完成过一个项目。经验的重要性在于它能说明一个人的综合能力。从项目的性质、规模和难度,面试官就可以大致判断出面试者的综合能力。如果一个面试者一直在大公司负责一个小模块的开发维护,那么基本可以判断他不具备独立或作为主要开发者承担一个项目的能力,只适合在另一家大公司做类似的事情。对于门槛较高需要长期技术积累的职位,相关经验更显得尤为重要,比如,Linux内核开发,JVM开发,游戏引擎开发,数据库实现,高级UX等。对于这类职位,没有经验的面试者即使综合素质不错也是需要长时间的学习和积累才能胜任。所以,基本上如果确定了你的职位属于此类,那么相关经验毫无疑问应该成为首选因素,换句话说,P(工作好 | 相关经验好)的概率是非常高的。
通过项目经验判断面试者的优劣比通过基础和算法测试更加靠谱,所以,面试过程中面试官应该花比较多的时间听面试者介绍项目经验,并进行深入地探讨交流,了解面试者的知识面、思维能力、表达能力等。同时,可以结合项目提一些基础知识和算法的问题,比如,如果面试者做过C++相关的项目,那就可以问他如何进行内存管理?是否熟悉智能指针?如果面试者的回答不能令人满意,那么就基本上可以判断他的项目做得不是很好。
要注意的是,经验也是一个多维度的事物。比如,C++股票交易中间件系统,这就涉及(C++,中间件,股票) 3个维度。假如面试者A做过C++股票交易客户端,面试者B做过C的股票交易中间件。从语言角度看,A最匹配,从项目性质看,B最匹配,你如何选择?这就是在多个维度中,哪个维度更重要的问题,就这个例子而言,我个人更倾向于B,因为我认为中间件开发经验是主要矛盾,而从C切换到C++并不是问题。所以,面试官需要判断哪一种经验是主要的,而哪一种经验是次要的。比如,我们招聘Android应用开发,这个职位的Android技术门槛并不高,它的真正难点在于做出好的用户体验(UX)。所以,如果一个面试者没有Android的经验我们是可以接受的,但是我希望他在UX方面有经验,至少做过其他平台的移动应用开发。
性格
现在,我来谈我认为最重要的因素:性格。这可能是许多初为面试官的朋友所难以想象的,怎么会是性格最重要呢?说实话,当我意识到这一点时,我自己也很惊讶!说白了,还是 P(工作好|性格好)的概率最高啊。我的实际经验是,如果一个人的性格好,他能把工作做好的可能性是最高的,性格好远比基础好、算法好要靠谱。
一个人如果技术上有缺陷,经验上有不足,但性格好,在团队中是很容易由其他人来补位的,他自己也很容易逐渐补起来;相反,如果一个人的性格不好,所有的技术优势经验优势都发挥不出来,甚至还会起到负作用,而且性格缺点很难改变。我一直谈到实际工作所需要的是综合性的能力,这种综合能力的发挥中性格是至关重要的。项目中不止会遇到技术问题,要涉及沟通、协调,不同的人不同的部门既有合作又有磨擦,如何处理这些事情都需要一个良好的性格。可以说,在开发团队里让你与众不同的不是你从哪个学校毕业,也不是你过去的经验,而是你的性格。
当然,性格是一个复杂的东西,它包含了很多的方面,并非所有方面都是程序员面试所需要关注的。我的经验是可以重点考察这些方面:
1) 态度积极还是消极。有的面试者在谈吐中就会自然给你一种积极上进的感觉,或者你可以在他的经历中发现他积极的因素,这些都不是太难看出来的。相反,有的面试者你能明显感觉到他的消极情绪。积极性在工作中是十分重要的,积极的人能给团队带来朝气,也更易于合作。基本上,如果确定面试者属于态度积极的,他通过我这一关的可能性就会大大增加;相反,如果确定属于态度消极的,即使技术能力不错我也会十分谨慎。
2) IQ。我的经验是,总体来看,聪明的人在工作中的表现更为优秀。在面试中要考察一个人是否聪明并不一定要像Google和MS那样找些专门测试IQ的智力题,其实,你只需要看他讨论问题是不是很有逻辑性,思考和说话是不是反应敏捷就可以做出大致的判断。另外,眼睛是人心灵的窗户,一个人聪明与否,眼睛是会说话的。不过,聪明也不完全是优点,比如,当公司或项目遇到困难时,往往是聪明人先跑掉了,坚守的往往是IQ一般的人。
3) 语言表达能力。语言表达能力也是程序员十分重要的一项素质,它关系到项目中的沟通是否顺畅。面试官可以看看面试者能否用简明的语言介绍清楚曾经做过的项目,能否抓住要点,能否考虑到听者的相关背景。一般来讲,语言表达能力强的人综合能力都不会太差。
4) 是否具有用户意识。有人说程序员是做研发的,哪来什么用户?只有销售、市场人员才会和用户打交道。其实,这是完完全全的错误认识。你写一个模块,甚至一个API,只要有别人用,他就是你的用户。有的程序员设计一个模块或是一个软件总是习惯于从使用者的角度来考虑,尽量地方便使用者,这就是一种良好的用户意识。具有良好的用户意识的人更能考虑别人的感受和整体的需要,而不是单纯地从自己和局部来思考问题。当面试者谈及过去的项目经验时,面试官可以常常站在用户的角度对其进行提问,从这个过程中观察其是否具有良好的用户意识。
5) 如何应对质疑和压力。面试官应该对面试者的回答以及以往项目进行合理的质疑,看看他如何应对。曾经有一位面试者谈到做游戏登录服务器的经历,我就问:“如果登录服务器挂了,怎么办呢”?他说原先虽然没有考虑这个问题,但是可以怎么怎么改进。其实,大家都理解项目中有各种不完美,这里面原因很多,只要面对质疑和压力能从容应对努力往好的方向思考解决就可以了,不需要掩饰缺陷,更不应该有情绪。我遇到过有的面试者,一旦你对其项目提出质疑,他马上产生反抗情绪,或不高兴,或不承认有问题,这很容易一下子看出来他在工作中容不得质疑和批评,这种人要想合作就很困难。
6) 个性特点。许多面试者喜欢在简历上写“精通C++/Linux“,这些字眼看得人麻木,如果有人写”喜欢C++/Linux“,我就会有一种眼前一亮的感觉。“精通”是没有感情色彩的叙述,而“喜欢”包含了面试者的个性,我更愿意看到面试者的个性。我相信对某样东西真正的热情远比你当前对它的掌握程度更为重要。其实,N年的经历告诉我们,同一个班的同学,同一个项目组的同事,虽然每天所学的知识,所接触的工作都是相同的,但其实每个人的成绩和表现差异是十分明显的。那么,到底本质的差异是什么呢?其实,就是每个人的个性。是个性使得有的人业余时间去打球,有的人业余时间去看书,有的人喜欢Linux,有的人喜欢Mac。一个人在团队中扮演的角色也和他的个性有很大的关系。面试官应该引导面试者展现自己的个性,并判断其是否有益于团队。
总结
最后总结起来,我的经验是: 1) 面试官的目标是找到”工作好“的人,一定要围绕这个目标来进行面试,如果把面试当成了算法或操作系统期末考试这就走入了误区;2) 面试过程是通过学历、性格、基础、经验、算法等可以测试的因素去综合判断面试者“工作好”的概率;3) 在各种因素中,性格 > 经验 > 基础 > 算法。性格是最重要的,如果性格不好,所有技术能力都会大打折扣,而且技术缺陷容易弥补,性格缺陷很难改变;经验体现了一个人的综合能力,你可以从面试者过去的经历中判断他能从事哪种工作,不能从事哪种工作;基础和算法则主要起到辅助参考的作用,基础好的程序员一般适应性比较强,学新技术更快,但是切忌单纯从基础来判断一个人的能力。

㈡ it服装面试一般会问什么问题

IT技术岗位面试常见问题包括以下几类问题及回答技巧:
Q1:挑一个应聘者觉得做的最好的项目讲一下。
最好事先把简历上面写的项目或者课程设计过一篇,拿张纸写一写,尽量把以前做这个项目的时候承担的任务、角色、遇到的问题用最简练的语言说出来。同时,处理这个问题时不同的企业可以选择不同的项目来回答。如果你没有项目经验,可以把以前自己做过的作品或实验拿出来讲。要思路清晰,然后重点突出对项目的贡献以及其它方面的能力。
Q2:应聘者在项目中遇到的最有挑战性的问题是什么?
要把之前碰到过的有挑战性的问题以及如何解决的回想一下,首先精简的描述问题,然后重点在你是如何处理这个问题的。
Q3:从项目中得到的最大收获是什么?
这个问题比较好回答,答案也可以很发散,比如:技术水平有了很大的提高;通过解决项目中出现的各种bug,解决问题的能力有了很大的提升;通过几个人协同完成一个项目,增强了团队合作精神等等。
Q4:挑一个写程序中遇到的bug以及如何解决的讲一下。
这个问题和Q2有点像,但是限制性小了一点。其实程序中遇到的bug肯定很多很多,但是在没准备的情况加上面试的紧张下,可能会大脑空白,思路混乱。所以需要事先准备一下。
Q5:项目中用的最多的语言是什么?或者最擅长的语言是什么?
这个问题出现的概率也是相当之高,回答也要谨慎,要根据应聘的职位灵活回答。假如申请的职位要求C/C++,那千万不能只说C,如果你确实对C++不是很熟悉,那么可以换一个说法,比如C++也用,但是用的少,然后举几个例子证明你的学习能力确实强。总之不要谦虚也不要撒谎。
Q6:如果遇到不同意见,如何处理?
这个问题面试官也非常喜欢问,主要考察你的团队合作精神,是否有包容心接纳不同的意见,以及如何处理与他人的冲突。

㈢ IT面试技巧:面试常见的几个问题

IT技术岗位面试常见问题包括以下几类问题及回答技巧:
Q1: 挑一个应聘者觉得做的最好的项目讲一下。
最好事先把简历上面写的项目或者课程设计过一篇,拿张纸写一写,尽量把以前做这个项目的时候承担的任务、角色、遇到的问题用最简练的语言说出来。同时,处理这个问题时不同的企业可以选择不同的项目来回答。如果你没有项目经验,可以把以前自己做过的作品或实验拿出来讲。要思路清晰,然后重点突出对项目的贡献以及其它方面的能力。
Q2:应聘者在项目中遇到的最有挑战性的问题是什么?
要把之前碰到过的有挑战性的问题以及如何解决的回想一下,首先精简的描述问题,然后重点在你是如何处理这个问题的。
Q3:从项目中得到的最大收获是什么?
这个问题比较好回答,答案也可以很发散,比如:技术水平有了很大的提高;通过解决项目中出现的各种bug,解决问题的能力有了很大的提升;通过几个人协同完成一个项目,增强了团队合作精神等等。
Q4:挑一个写程序中遇到的bug以及如何解决的讲一下。
这个问题和Q2有点像,但是限制性小了一点。其实程序中遇到的bug肯定很多很多,但是在没准备的情况加上面试的紧张下,可能会大脑空白,思路混乱。所以需要事先准备一下。
Q5:项目中用的最多的语言是什么? 或者最擅长的语言是什么?
这个问题出现的概率也是相当之高,回答也要谨慎,要根据应聘的职位灵活回答。假如申请的职位要求C/C++,那千万不能只说C,如果你确实对C++不是很熟悉,那么可以换一个说法,比如C++也用,但是用的少,然后举几个例子证明你的学习能力确实强。总之不要谦虚也不要撒谎。
Q6:如果遇到不同意见,如何处理?
这个问题面试官也非常喜欢问,主要考察你的团队合作精神,是否有包容心接纳不同的意见,以及如何处理与他人的冲突。

㈣ IT技术支持岗位面试常见问题

IT技术岗位面试常见问题包括以下几类问题及回答技巧:
Q1: 挑一个应聘者觉得做的最好的项目讲一下。
最好事先把简历上面写的项目或者课程设计过一篇,拿张纸写一写,尽量把以前做这个项目的时候承担的任务、角色、遇到的问题用最简练的语言说出来。同时,处理这个问题时不同的企业可以选择不同的项目来回答。如果你没有项目经验,可以把以前自己做过的作品或实验拿出来讲。要思路清晰,然后重点突出对项目的贡献以及其它方面的能力。
Q2:应聘者在项目中遇到的最有挑战性的问题是什么?
要把之前碰到过的有挑战性的问题以及如何解决的回想一下,首先精简的描述问题,然后重点在你是如何处理这个问题的。
Q3:从项目中得到的最大收获是什么?
这个问题比较好回答,答案也可以很发散,比如:技术水平有了很大的提高;通过解决项目中出现的各种bug,解决问题的能力有了很大的提升;通过几个人协同完成一个项目,增强了团队合作精神等等。
Q4:挑一个写程序中遇到的bug以及如何解决的讲一下。
这个问题和Q2有点像,但是限制性小了一点。其实程序中遇到的bug肯定很多很多,但是在没准备的情况加上面试的紧张下,可能会大脑空白,思路混乱。所以需要事先准备一下。
Q5:项目中用的最多的语言是什么? 或者最擅长的语言是什么?
这个问题出现的概率也是相当之高,回答也要谨慎,要根据应聘的职位灵活回答。假如申请的职位要求C/C++,那千万不能只说C,如果你确实对C++不是很熟悉,那么可以换一个说法,比如C++也用,但是用的少,然后举几个例子证明你的学习能力确实强。总之不要谦虚也不要撒谎。
Q6:如果遇到不同意见,如何处理?
这个问题面试官也非常喜欢问,主要考察你的团队合作精神,是否有包容心接纳不同的意见,以及如何处理与他人的冲突。

㈤ 求网络工程师、运维工程师、IT工程师、系统集成工程师常见面试题

做IT运维工程师,你会实际的操作否,现在都用运维管理系统去实现应用管理的标准化,如果你能熟练运用WeADMIN ITOSS估计你做运维没有问题,中移动南方基地,电信爱音乐基地都用这个去运维的,那么你在自己学习中,这个是不需要付费的软件,只是针对定制的企业需要,所以中小微企业来说,零成本可以使用,也希望你运用娴熟后应用于企业。

㈥ 面试IT,面试官会问哪些问题

1.你自我介绍一下吧?
2.如果要用一句话(一个词)描述你自己,你会怎么说?
3.你的学习成绩怎么样?
4.你看中了我们公司的什么?
5.你从哪些途径了解到我们公司?
6.你认为自己有哪些优势可以胜任这个岗位?
7.你有什么兴趣爱好?
8.你的家庭情况如何?
9.你还有什么问题要问吗?
有经验的面试官,对上述每一个问题都会变着花样衍生出不同的提法。

㈦ IT类应届毕业生面试常见问题

IT类应届毕业生面试常见问题

这次因为发展需要和政府支持决定招收12名左右应届大学毕业生,本次招聘会是随DL市高新园区企业招聘团前往某还算不错的师范院校。

我提问最多的问题:

1、请写一个SQL语句:查询A表中全部数据(约10人中有2人答对....)

2、对java比较熟的,让他说几个常用包名,对C#熟的让他说几个常用控件名,能说出3个的一只手都数的.过来。(每种都有几十个,常用的至少也有10多个)

3、敢写“精通数据结构“的,让他说几种常用的数据结构,能说出两个的一上午没有发现,更别说后续的问题了。

4、专业是“软件工程“的,让简单介绍下软件开发的大致步骤,能说出3步的寥寥无几(根据不同分法,会有8步左右)

5、学java的谁简历上写用ssh框架做过项目的,我就让说说默认的配置文件名字,3人中1人说对。

6、某校(非这所师范院校的)几乎所有学生都有一个IB_ 颁发的UML什么建模证书,开始以为还不错,让他们简单说说UML,知道什么说什么,连一个能说出3句话的都没有,甚至连缩写是什么意思都不知道。

诸如此类,我的问题都是只要你对简历上写的名词稍有一点了解,在范围内随意说点什么都可以,全都停留在只要你课没逃很多,就一定知道的1+1级别的问题上,结果仍然很让人失望。我的要求不高,只要态度认真肯学,我带你提高,但我真的没有信心让一个在校从不学习的学生会老实的跟着我学!

更多 面试笔试 请继续访问应届毕业生 求职指南 ;

㈧ 面试JAVA程序员最基本的面试题有哪些

java异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行匹配,如果匹配成功则执行catch内的语句。简单的应用:在所以throws语句的地方加入try-catch。标准应用:try-catch-finally-throw-throws一起使用。
2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用System.gc(),实际上调用Runtime.getRuntime().gc()
3. Error与Exception区别
答:Error是jvm进行处理,是jvm出错
exception是可以由程序处理的,可以用try-catch捕获的
4. final,finally,finallize
答:final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的
6. Static Nested Class 与Inner Class的区别
答:使用Static定义的Class就是外部类,可以通过外部类. 内部类直接访问
而Inner Class是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)采用异步处理方式,性能较高,是非线程安全的 3)允许null
HashTable:1)released in jdk 1.0 ,old Class 2)采用同步处理方式,性能低,是线程安全的3)不允许null
8. assert代表什么?
答:asserts是jdk 1.4之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计的值,一般开发很少使用。要使用assert,必须加上 -ea参数
9. gc是什么?
答:gc是garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放
10. String s = new String("xyz")产生了几个对象?
答:一个匿名对象xyz,在栈空间内。一个new实例化的对象,在堆空间内。
11. sleep() and wait()?
答:sleep()是Thread类定义方法,表示线程的休眠,可以自动唤醒
wait()方法是Object类定义的方法,需要手动notify()和notifyAll()//sleep()不释放资源,wait()释放资源
12. java中存在goto,但不能使用
13.数组有没有length(),String有没有length()?
答:数组有length属性,String有length()
14. Overload与Override的区别
答:Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格
15. Set里的元素不能重复,用什么方法区分?==与equals()方法的区别
答:set里的元素是不能重复的,用iterator()方法来区分重复与否,==属于地址比较,
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
16. 列出常见的 runtime exception
答:NumberFormatException/ArrayOutIndexofBoundException/NullPointerException/ClassCastException
17. abstract class 和 interface有什么区别?
答:抽象类:
|-由抽象方法和常量、变量、全局常量、构造方法、普通方法组成
|-使用abstract声明
|-子类要通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-存在单继承的局限
|-抽象类可以实现若干个接口
接口:
|-由抽象方法和全局常量组成
|-使用interface关键字
|-子类要通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-一个子类可以实现多个接口
|-接口不能继承一个抽象类,但允许继承多个接口
18. 启动一个线程要用start(),因为要通知jvm进行cpu资源的分配
19. try{}里面有一个return,问finally{}里面的代码是否执行,在什么时机执行?
答:finally{}里面的代码执行,在return之前。
20. 写一个singleton
答:singleton的核心就是构造方法私有化,Class,Runtime都采用单例
package com.leongod.demo;
public class Singleton(){
private static final sin = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return sin;
}
}
21. 程序设计:输入一组数字,然后排序输出
答:package com.leongod.demo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class IO {
public static void main(String[] args) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一组数字,中间用空格分割:");
String str = buf.readLine();
Set<Integer> set = new TreeSet<Integer>();
String[] arr = str.split(" ");

for(String s : arr) {
if (s.matches("\\d+")) {
set.add(Integer.parseInt(s));
}
}

Iterator<Integer> it = set.iterator();
System.out.println("排序后的结果:");
while (it.hasNext()) {
System.out.print(it.next() + ",");
}
}
}
22.列出目录内的文件
package com.leongod.demo;
import java.io.File;
import com.sun.org.apache.xpath.internal.functions.FuncBoolean;
public class FileDemo {
public static void main(String[] args) {
?? File file = new File("D:" + File.separator + "kongkong");
?? fun(file);
}

public static void fun(File file) {
if (file.isDirectory()) {
File[] lf = file.listFiles();
if (lf != null) {
for(File f : lf) {
fun(f);
}
}
}else {
System.out.println(file.toString());
}
}
}
23. char可以存一个中文汉字吗?
答:可以,使用了unicode编码
24.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:两种多线程方法,继承Thread类,实现Runnable接口
|-Thread类是Runnable接口的子类
|-使用Runnable接口可以实现资源共享的目的
|-所有线程操作都必须通过Thread类的start()方法启动
两种实现同步的方法:
|-同步代码块:Synchronized(this)
|-同步方法
25.f=3.4是不对的,3.4默认是double类型的
26.String and StringBuffer?
答:String 不可以修改,StringBuffer可以修改
27.Class.forname向容器中加载驱动程序
28.int与Integer有什么区别?
答:int是基本数据类型,Integer是包装类
在jdk1.5以后,可以实现自动装箱和拆箱
29.2*8有效的方法是移位操作:2<<3
30.请说出类集框架的完整结构
答:类级框架的最大接口:Collection、Map、Iterator、Enumeration
Collection:存放单值
|-List:允许有重复内容
|-ArrayList:异步处理,新的操作类,非线程安全
|-Vector:同步处理,旧的操作类,线程安全,支持Enumeration
|-Set:不允许有重复的内容,依靠hashCode()和equals()进行重复的验证
|-HashSet:无序存放
|-TreeSet:有序存放,按Comparable排序
|-Map:存放一对值
|-HashMap:新的类,异步处理,非线程安全,允许有null
|-HashTable:旧的类,同步处理,线程安全,不允许有null
|-TreeMap:有序排列,按key配需
|-Iterator:迭代输出,依靠collection接口中的iterator方法输出,是新的输出标准
31.是否可以继承String类?答:不可以,因为使用了final关键字

㈨ it面试问什么问题

it面试问什么问题

it面试会问什么问题,大家有了解过吗?以下是我为大家整理的关于it面试问什么问题,希望大家喜欢!

问题1.主动性

问 题:

“你是否曾经付出额外的努力,以帮助某一项工作继续进行下去,你是如何做的,结果如何?”

“你工作上最大的成就是什么,你采取了哪些行动?”

“在过去的六个月当中,你是否向上司提出过新的建议,哪些被接受了,你是如何做到的﹖”

“你受过何种奖励,你是如何赢得这些奖励的,同时还有多少人也得到了这些奖励?”

“在你的职责范围内,你实行过哪些改革,你如何确保它们得以执行?”

“为了改进工作或生产流程,你提出过哪些建议?”

问题2. 克服困难的精神

问 题:

“你是否曾经与他人竞争,并失败了,请举例。”

“对于你的上级或同事的批评,你的反映如何?”

“没有哪位销售人员可以每次都做成生意,你失去了一笔大订单之后,你会怎么做?对于一些销售人员来说,有时他们会怀疑:销售对他们而言,是否是一项合适的职业,你是否也有过这种感受?为什么?你是怎么做的。”

“请说说你曾经从一位客户手中失去一笔订单的经历。”

“你的客户有时会对你表现出不感兴趣或不友好,对此你是怎么做的,请举出一个实例。”

问题3. 毅 力

问 题:

“事情并不总是按照我们的想法进行的,你是否经历过作出最大努力,但最终失败了,请举例。”

“你没有做成功的最大的一笔生意是什么?你是怎么做的?”

“对于妨碍你完成工作的阻力,你是如何克服的?请举例。”

“请举出一个实例,你坚持意见,以证明产品或服务是如何能够满足客户要求的。”

“请举出一个实例,你坚持某一立场或行动计划,直到达至期望的目标,或该目标已不再可能达到。”

问题4. 忍耐力

问 题:

“你工作中压力最大的是哪一方面,为什么?你的反应如何?”

“你的工作中是否经历过某些冲突,你的反应如何?”

“你是否曾经因为工作职责的重负而感到失去信心?请给出一个实例。”

“工作中你和客户、下属或同事之间压力最大的是哪些方面的问题?请给一个实例,说明你的行动或反应。”

“工作中你是否面对过道德观或价值观的冲突,你的反应如何?请给出一个实例。”

“当你处于一个新的或不熟悉的工作环境,你的'反应如何?请给出一个实例。”

“你是否曾经面对过要求特别急的某种情况,例如:对体力或期限的要求,你的反应如何?请给出一个实例。”

问题5.廉政

问 题:

“有时组织严格的规定,会使得工作难以进行下去,你是否曾经想过违反某一条规定,以便于更有效地进行工作。”

“你是否曾经被要求做某些你认为是错误的事情?你是怎么做的?”

“我们并不总是和那些我们认为是诚实的人一块工作,你是否曾经见到其它同事的工作方法对你而言是不恰当的,你怎么做?”

“为了完成一笔大生意,有时我们会向客户提供某种额外服务。你是否有过这种经历?”

“你是否曾经说服某一客户购买比他最初想法要贵得多的产品?请举例。”

“有时很容易混淆保密资料和公开资料之间的界限,你是否经历过这种事情?你是怎么做的?”

“你是否曾经把工作带回家去做?对这种行为,你是如何看待的?”

;
阅读全文

与it编译原理面试题相关的资料

热点内容
北京文件夹加密多少钱 浏览:669
什么是车鉴定app 浏览:64
战地一私人服务器怎么买 浏览:497
陈天程序员 浏览:833
编译原理如何运用到编程中 浏览:17
linux选择数据库 浏览:376
php两个数组差集 浏览:978
迷你pdf阅读器下载 浏览:433
做一个python小程序 浏览:655
pythonossystem和 浏览:645
win2008如何搭建ftp服务器 浏览:53
安卓手机为什么不翻牌 浏览:546
删除pkpm及相关文件夹 浏览:481
房贷解压银行内部流程 浏览:734
安卓手机如何更改语音 浏览:601
android红包实现 浏览:734
苹果的nvme为什么安卓不用 浏览:32
python输入单词统计个数 浏览:998
脚本软件提取源码 浏览:281
程序员能给自己的微信钱包刷钱么 浏览:73