㈠ 程序员的面试问题(希望全面点)
很多用这个. 1. 问:怎样用 Win95 的记事本 (Notepad) 来编辑 java源程序? 答:记得存档时扩展名要加上".java",文件类型改成:“所有的文件(*.*)”。 2. 问:到底 Java 是如何传递参数的?是by value或by reference? 答:All parameters (values of primitive types, and values that are references to objects) are passed by value [JLS sect 8.4.1]。根据以上 Java规格文件的说法, 所有参数应该都是传值的(by value)。但实际上, 实际经验却告诉我们所有 Java 的对象都是传址的(by reference)。因此我们可以这样解释: 基本类型(如int, float, char等)是by value,而所谓“对象”(Object)则是by value of reference to object。 3. 问:String这个类型的class为何定义成final? 答: 主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。 4. 问:finalizers和C++ 的 destructors有何差异? 答:Java内部具有“内存使用回收” 的机制, 虽然它也提供了类似 (C++ 的) destructors的 finalize(),每个对象都可以使用这个方法 method,但必须冒着破坏原先回收机制的危险。所以建议尽量避免使用finalize(),不妨考虑多使用 null 及 dispose() 来释出资源会好一些。 5. 问:继承了一个class叫做 Frotz,编译器却给我“No constuctor Frotz() in the class”这样的错误提示,为什么呢? 答:记住每当您定义了一个 class的constructor,除非您一开始就去call 这个constructor,否则 Java 会自动引入superclass原先不含参数的 constructor, 如果superclass的 constructor都是有参数的,那么问题中的错误提示便出现了。 解决的方法很简单, 找一找 API文件,加上正确的参数就得了。 6. 问:怎样让char类型的东西转换成int类型? 答: char c = 'A'; int i = c; //反过来只要作强制类型转换就行了 c = (char) I; 7. 问:我的applet原先好好的, 一放到web server就会有问题,为什么? 答:一般来说,从以下方向试试: 确定class文件的格式没错——已经编译过,也没有损坏的情形; 确定所有用到的class文件放到web server上,少一个都不行; 确定所有的文件名和class名称一致,特别检查大小写有无差错; 如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分); web server上的文件档案应该事先设定好。(尤其是search,read和execute权限) 8. 问:怎样在 Applet中用某个图形涂满整个背景? 答:在背景建立 Panel 或 Canvas, 然后用图形填满它。 9. 问:怎样在 Applet 中建立自己的菜单(MenuBar/Menu)? 答:首先在Applet的init() 方法中建立Frame instance, 然后将Menus, Menubar都加上去即可。 (setMenuBar() 是 Frame下的方法)或者,找到Applet上层的Frame后依法炮制。 Container parent = getParent(); while (! (parent instanceof Frame) ) parent = parent.getParent(); Frame theFrame = (Frame) parent; 注意:第二个方法在Mac或某些browsers上并不可行。 如果您使用的是JDK 1.1,也可以考虑使用popup menu,这样就不必理会Frame的问题了。 10. 怎样比较两个类型为String的字符串? 答:在两个对象之间使用 "==",会将“两个对象是否有同一reference”的结果传回。也就是说, 这等同于“两个对象是否拥有同一地址 (address)”,或者“两个对象物件是否为同一对象”。如果您的意思是判断两个字符串的内容是否相同,那么应该使用以下的方法才对: if (s1.equals(s2) ) or if (s1.equalsIgnoreCase(s2) ) or if (s1.startsWith(s2) ) or if (s1.endsWith(s2) ) or if (s1.regionMatches(s1_offset, s2, s2_offset, length) ) or if (s1.compareTo(s2) <0) 11. 怎样将浮点数(float)相加 ? Float 好像没有办法? 答:我猜想您的程式大概写成这样: Float One; Float Two; Float Hard = One + Two; 请注意 float 和 Float 是不同的,前者是 Java 基本类型之一, 而后者却是class。您应该将源代码改为: float One; float Two; float Hard = One + Two; 或 Float One = new Float(1.0); Float Two = new Float(2.0); Float Hard = new Float(One.floatValue() + Two.floatValue());
㈡ 程序员面试题
第一种推论:
A、假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。
B、假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天也每有枪响,说明病狗数大于2。
由此推理,如果第三天枪响,则有3条病狗。
第二种推论
1 如果为1,第一天那条狗必死,因为狗主人没看到病狗,但病狗存在。
2 若为2,令病狗主人为a,b。 a看到一条病狗,b也看到一条病狗,但a看到b的病狗没死故知狗数不为1,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b的想法与a一样,故也开枪。
由此,为2时,第一天看后2条狗必死。
3 若为3条,令狗主人为a,b,c。 a第一天看到2条病狗,若a设自己的不是病狗,由推理2,第二天看时,那2条狗没死,故狗数肯定不是2,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c的想法与a一样,故也开枪。
由此,为3时,第二天看后3条狗必死。
4 若为4条,令狗主人为a,b,c,d。a第一天看到3条病狗,若a设自己的不是病狗,由推理3,第三天看时,那3条狗没死,故狗数肯定不是3,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b和c,d的想法与a一样,故也开枪。
由此,为4时,第三天看后4条狗必死。
5 余下即为递推了,由年n-1推出n。
答案:n为4。第四天看时,狗已死了,但是在第三天死的,故答案是3条。
㈢ 程序员的面试问题
如果是刚毕业,那么肯定有自我介绍,然后就是你做过什么样的项目,还有就是基础知识,应该笔试是跑不掉的,不过也有的公司没笔试,总之,要有自信,敢说,针对毕业生,公司看的也就是你的可造就性和可培养性了!
㈣ 如何面试一名程序员
如何面试程序员
一、提问之前的准备
首先,最重要的是,你自己一开始就应该想清楚:
1. 需要新员工完成什么样的任务?
2. 怎样的人能完成这样的任务?
3. 哪些途径和方法可以发现这样的人?
只有明确这些根本性的问题,才能正确高效地完成面试。
二、提问的原则
假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。
有一些提问的原则,是你应该遵循的:
每一个面试问题都有明确的目的。你不仅自己了解,还能向其他面试官解释清楚。
多提一些开放性(Open-ended)的问题,而不是那种用Yes/No就可以回答的问题。这样做使你有机会与面试者展开讨论,并且提出后续的问题,尽可能多地了解对方。
不要问宗教、家庭、健康、个人隐私等方面的问题。
不要问太复杂的问题。因为面试者没有太多思考时间,所以无法周全地回答,你也就无从判断他的能力了。
三、考察专业能力
为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。)
比如,你的招聘职位是系统管理员,你可以问"如何快速地在50台机器上部署Linux?"(提示:正确答案不是刻录50张安装光盘。)
另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。
四、考察综合素质
因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。
所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。
下面是一些典型问题:
Why did you get into development?
你为什么开发软件?
How many technical books did you read in the past year?
去年你读了几本技术书籍?
What was your favorite technical book in the past year? What did you learn from it?
去年你最喜欢的技术书籍是哪本?你从中学到了什么?
What websites do you read regularly, related to development?
平时你经常访问哪些编程类网站?
Do you maintain any open-source projects?
你有自己的开源项目吗?
Do you code in your spare-time?
业余时间你编程吗?
Do you love programming, or do you do it for the money?
对于你来说,编程是一种爱好,还是一种谋生手段?
Have you accomplished anything important in your career yet? Do you want to?
你的职业生涯之中有什么重要的成就?它是你主导的吗?
What would make you feel that you have done something important?
什么事情会让你很有成就感?
五、考察理性思维
某些情况下,你可能需要了解面试者的分析判断能力,看他能否全面地思考问题、客观地评价自己。
那么,你可以依次提出这样三个问题:
What's your favorite programming language? Why?
你最喜欢的编程语言是哪种?为什么?
If you could add one feature to your favorite language, what would it be? Why?
如果允许你为这种语言加一种功能,你会加什么功能?为什么?
If you could remove one feature from it, what would it be? Why?
如果允许你取消一种功能,会是什么功能?为什么?
这里的重点是,让面试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要面试者有一个明确的立场,能够从正反两方面说出令人信服的理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样就很好。
你还可以把这些问题,套用在其他东西上面,比如操作系统、文字编辑器等等。
㈤ 程序员面试时需要带哪些东西
1、把自己简历上的东西记清楚,尤其是简历上有水分的,不要在面试的时候露馅啦;
2、找一些面试方面的资料,就是面试官会问到的技术上和为人处世方面的问题,就是要对面试官问的一些问题要做的心中有数。这些资料可以上网上找,也可以问面试的那家公司的人(如果你认识的话)。
3、还有就是面试的时候,最好谦虚点、有礼貌点,给面试官一个好的印象。但同时,也要有自信,对自己懂的知识,可以稍微夸张点。
㈥ 程序员面试需要准备什么
眼下的程序员招聘网站始终摆脱不了面试这一不靠谱的环节,唯独看到一家“瞬聘网”,它做的是程序员无简历无面试的招聘模式,不妨去看看。
㈦ 程序员面试常见问题有哪些
你有没有做过什么项目,这个问题要回答得简明扼要,直接简洁地描述你参与过的项目和在里面扮演的角色。面试官是想看看你是不是真的参与项目了,你对项目的把控度、你在项目里担当的角色、对项目类型以及你对项目应用的了解。通过你的回答,有经验的面试官能看的出你对这个行业的认识。
㈧ 程序员面试要准备些什么东西
面试前的准备
简历
1. 千万别给自己挖坑
在面试的时候,面试官都会针对简历上技术能力、工作经历、项目经验等提出一些细节上的问题,所以你写下的都些东西必须是真实,并且是非常了解。
2. 要有辨识度
通常一个职位可能收到的简历比较多,很多时候,你的简历甚至根本没被HR看到。那么,怎样让自己的简历脱颖而出呢?首先,简历要有“辨识度”,要让面试官看完这个简历,就很想见见这个人。
3. 面试前最好进行一个“模拟面试”
其实自己在制作简历的时候,就像写程序一样自己是很难发现bug的,因此在面试前最好找朋友、老师或同学帮你来一场“模拟面试”,这样也许会发现一些意想不到的问题。
4. 针对不同的公司要对简历进行微调
比如对方是个做电商。而你恰好做过类似项目,就可以将该部分的项目介绍着重突出以下,比如排列到最前面。
充分准备相关的专业知识
可以在网上收集一些相关的面试题,有时面试官也可能会照着网上的内容来问,所以网上一些比较热门的题目也可以关注一些,然后对照自己的经验组织成自己的语言。
项目经验
项目的研发背景、整体业务流程、开发周期、负责的模块、技术实现细节、技术亮点等。自己做过的每个项目都要整理清楚。
了解热门前沿技术
比如你面试的是 iOS 开发岗位,除了 OC 你还能聊聊最新版本的 Swift;比如现在微信小程序开发又火起来了,你也在关注和学习,甚至能解决面试官的一些问题。了解这些热门的前沿技术绝对会成为你面试时的加分点。
㈨ 程序员面试时需要注意哪些
1 说得太少
尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”。面试官会通过你对这些技术和非技术问题的回答来评估你的经验和能力。
所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊。如果你不能很好地说明你的经验、成就和技能给企业带来的价值,那么你的竞争力毫无疑问就高不起来。所以,你需要对一些最常见的开放式问答作充分的准备,学会推销自己。
2 说得太多
不断地说,不断地说,却并没有什么实质性的内容。换句话说,就是废话连篇,言之无物。如果你不能简洁的解释问题,那么面试官就会怀疑你在工作时的表现是不是也会像你的谈话一样拖泥带水?可以先问问面试官,确定是否真的需要详细解释。
解释也是一门艺术,关键是确定重点,如果需要的话再深入到细节。当聊到业务的时候,就应该从业务的角度看问题,不要涉及任何技术术语。学会用简洁明了的方式解释问题。如果你能时刻把握主旨,那么这一点也不是问题。
3 回答不出一些必知的基本技术问题
面试不是技术竞赛,不是看谁答对的问题多,但是有一些“必须知道”的核心Java和Web基础知识,你不能不知。例如,对于Java开发人员
1)不知道“==”和equals之间的区别。
2)不知道equals和hashCode方法被隐式调用时的约定。
3)不能解释曾投入精力过的应用程序的高层体系结构。
4)不知道OO的概念和设计原则。
5)不能很好地处理多线程。
6)不知道如何在HTTP客户端与服务器端之间保持状态。
7)不知道SQL。
…
4 既写不好简单的代码,又回答不出如何解决棘手的问题
作为一个开发人员,你应该根据自己的经验水平,来针对给定的问题和情况编写代码。如果碰到一些比较棘手的问题,那么即使你还没有解决方案,也应该将你的思路讲给面试官听。当然这在面试时会让人特别紧张,尤其是在还有时间限制的情况下,但是你也必须保持冷静,至少应该说明你将如何试着去解决问题的方法。
5 糟糕的礼仪和态度
迟到,不适宜的着装,抖手抖脚,没有眼神接触,过于紧张,没有提问,显示不出对这份职业的兴趣,“我什么都知道”的高傲态度,贬低你的现在和以前的雇主,遇到技术问题时烦躁不安或者垂头丧气,为自己找理由而不是虚心接受错误,与面试官发生争执,随波逐流而没有自己的看法,过于呆板,撒谎,嗓门太大,无法成为良好的倾听者,等等。
提示:面试官要找的不是技术明星,而是实实在在具备了合适的技术技能、软技能、端正的态度以及能为企业获取利益、全面的专业人才。因此,不妨先研究下想要应聘的机构,深入了解其工作规范以调整回答问题时的方向和重点。将每一场面试都当作免费的培训课程,积极调整心态,不但能达到一个双赢的局面,还可以减少紧张的情绪,从而获得更好的表现。这样即使你并没有得到那份工作,也可以由此学到点什么,获得进步
㈩ 程序员面试该注意什么
闲聊
面试过程中,背景往往是初始话题,通过闲聊,他们可以得知你对编码的认知、你的个人能力或领导力、沟通问题、技术经验等。因此,你可以通过举出能表明自己以上能力的例子,凸显出自己热爱技术、自信阳光的特性,这是基本能给面试官留下不错的印象。
沟通
涉及到编码问题的时候,沟通是关键。一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。充分了解面试官出的问题到底是什么类型,如果你开始编写代码,并且面试官并不想多说废话,切忌高谈阔论。让人感觉你有团队精神,敢于表达自己的想法,如果是是在解决不了的问题那就不要装作自己很懂,凡是要先思考再做决定。
摆脱困境
有时候你会陷入僵局,放松,尽量巧妙地寻求解决办法,不要浪费时间在脑袋里思考,动手操作会更加形象;为解决问题寻找简单版本,写一个简洁低效的解决方案,然后对其进行优化;与面试官多交流方法技巧,展示出自己的思路;要察言观色,偶尔观察面试官的神态或许对解决或有帮助;考虑空间和运行时的界限。
写下你的思路想法
凭空地想很容易自我矛盾,把你的想法写下来,然后再去考虑细节;调用帮助函数,继续前进,不要担心语法问题,为自己预备足够的空间,用以在代码行之间添加代码或笔记;最后写一个重头检查的标志,不要担心你写的for循环是否应该有“<”或“<=”。在代码的最后画个勾选提醒自己最后再检查一遍。先按自己的思路走;使用描述性的变量名,标准化很有意义。
完成之后的整理
浏览解决方案,当程序运行时记录下变量保存的值——如果你只是记在脑子里,不会让你赢得任何加分,这有助于你发现bug和消除面试官的困惑;寻找差一错误,测试边缘情况,措施包括空集合,单项目集合或负数;不要做惹人厌烦的事。
实践
最后,运行实践问题是没有捷径的。好记性不如烂笔头,对自己诚实,用笔写可能一开始会让你觉得别扭,但是如果你现在就能克服这个难题,那么当面试的时候,你就不会觉得笨拙和不顺手了。准备充分,放轻松,技术在手,终能收获一席之地。