程序员面试总结

2024-06-27

程序员面试总结(共11篇)

1.程序员面试总结 篇一

程序员面试技巧总结

面试问题:

1、你曾解决的一个有趣的技术问题

2、你曾克服的一个人际冲突

3、显示领导力或个人能力的例子

4、你曾在以往项目中做出的贡献

5、最喜欢的语言的一些琐事,对这种语言你做了什么,以及你不喜欢它哪里

6、有关公司产品/业务的问题

7、关于该公司的工程策略(测试,Scrum,等等)

热爱技术。表达你对你所做的一切感到骄傲,你对自己的选择充满自信,你对语言和工作流有着自己的看法。

沟通

涉及到编码问题的时候,沟通是关键。一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。

了解这是哪种问题。有两种类型的问题:

1、编码。面试官希望你能针对问题写出简洁高效的代码。

2、闲聊。面试官希望能和你聊一聊。话题通常是(1)高水平的系统设计(“如何克隆Twitter?”)或(2)琐事(“Javascript中的hoisting是什么意思?”)。有时候这些琐事中也会引入“实际”问题,例如,“如何迅速排序整数列?好的,如果不是整数,是其他类型的呢…… ”。

如果你开始编写代码,并且面试官并不想多说废话,只想尽快过渡到“实际”问题,那么如果你罗哩叭嗦太多的话,她可能会觉得厌烦。不妨直接问,“是不是为这个问题写代码?”

让人感觉你有团队精神。面试官想知道和你一起工作是什么感觉,会有什么问题,所以要让他们看到你的团队合作性。使用“我们”来代替“我”,例如,“如果那个时候我们做广度优先搜索的话,就能及时/准时得到解决方案。”如果让你选择在纸上还是在白板上编码的话,选白板。这样,你就可以接近面试官,直接面对他提出的问题(而不是和她在桌子两边遥遥相望)。

把自己的想法大声说出来。不是开玩笑,比如说:“我不知道这样做是否有效――但请让我试一试。”如果你不知道怎么办,不知道这个问题该如何解决,那么就说一说你现在的想法。说一说你认为怎么做可能会有效。说一说你认为哪些会有用,以及为什么没用的原因。这同样适用于琐碎的闲聊问题。当面试官要求你解释Javascript闭包的时候,“这与范围有关,不妨把它放到一个函数中”可能会让你得到90%的分数。

不知为不知。如果正在谈论的话题(例如,具体的语言事务,具体的琐事,运行时分析)的确是你不曾涉猎的内容,那么不要不懂装懂。相反,你可以直接说:“我不知道,但我猜$thing,因为……”,因为后面可以通过分析排除其他选项,还可以拿其他语言或问题做例子。

说话不要不经大脑。不要自信地将答案脱口而出。如果是正确的,那么你还是需要时间来考虑如何解释,如果是错的,那会显得你冲动鲁莽。你不是在和人比速度,而且你这么做更有可能因为打断她的话或者妄下结论而惹恼她。

摆脱困境

有时候你会陷入僵局。放松。这并不意味着你已经失败了。请记住,面试官通常更在乎的,是你能否巧妙地从几个不同的角度去揭示问题,而不是一根筋走到底地坚持正确答案。

画图。不要浪费时间在脑袋里思考,可以画到板上。画出几个不同的测试输入。画出你如何手动如愿得到所需的输出。然后想想将你的方法转换成代码。

解决问题的简单版本。不知道如何找到集合中的第4大条目?那么想想如何找到第1大条目,然后试试能否沿用这种方法。

写一个简洁低效的解决方案,然后对其进行优化。竭尽全力。尽一切可能的方法得到某种答案。

讲讲自己的思路。讲一讲你知道什么。讲一讲你认为什么可能工作以及为什么无效的原因。你可能突然会意识到它实际上是可以工作的,或修改版本是有效的。也有可能,你会得到提示。

等待提示。不要用期待的眼光盯着面试官,但可以有短暂的“思考”时间――面试官或许已经决定给你个提示也说不定呢,等待她的提示以免打断她。

考虑空间和运行时的界限。如果你不知道你是否可以优化解决方案,那么就说出来。例如:

“我必须至少看看所有的条目,我做不到时间复杂度比O(n)还好的了。”

“蛮力方法才能检验所有的可能性。”

“答案将包含n^2数据项,所以我必须至少花费N^2的时间。”

写下你的思路想法

凭空地想很容易自我矛盾。把你的想法写下来,然后再去考虑细节。

调用帮助函数,继续前进。如果你不能或多或少地马上想出如何实现算法,那就跳过它。写一个命名合理的调用函数,例如:“this will do X”,然后继续下一步骤。如果帮助函数非常微不足道,你甚至可以将它忽略。

不要担心语法。不妨一笑而过。如果你非要考虑语法,那就还原到英语。只要向面试官说明稍后会回来整理即可。

预备足够的空间。你可能后面会想要在代码行之间添加代码或笔记。从白板的顶部开始写,并在每一行之间留一条空白。

最后写一个重头检查的标志。不要担心你写的for循环是否应该有“<”或“<=”。在代码的最后画个勾选提醒自己最后再检查一遍。先按自己的思路走。

使用描述性的变量名。想名字需要时间,但可以防止你忘记自己写某段代码的目的。使用names_to_phone_nums_map而不是nums。在名称中说明类型。返回布尔值的函数应该以“is_ *”,保存列表的Vars应该以“s”结尾。标准化很有意义。

完成之后的整理

浏览解决方案,大声地讲,输入一个例子。当程序运行时记录下变量保存的值――如果你只是记在脑子里,不会让你赢得任何加分。这有助于你发现bug和消除面试官的困惑。

寻找差一错误。你的for循环是不是应该使用“<=”来代替“<”?

测试边缘情况。措施包括空集合,单项目集合或负数。加分点:提一提单元测试!

不要惹人厌烦。有的面试官可能并不在意这些整理步骤。如果你不确定,可以这样说,“我通常会检测一些边缘情况――那么我们接下来是不是做这个呢?“

实践

最后,运行实践问题是没有捷径的。

好记性不如烂笔头。对自己诚实。用笔写可能一开始会让你觉得别扭。但是如果你现在就能克服这个难题,那么当面试的时候,你就不会觉得笨拙和不顺手了。

本文中的实践问题只是提供了每个面试过程的线索要点,没有真正的金科玉律,在真正面试时还需实际问题实际解决。最后,祝大家面试成功。

2.程序员面试总结 篇二

(1湖北省通城县人民医院湖北通城437400)(1广东省深圳市宝安区观澜街道办观澜医院广东深圳518110)(1湖北民族学院科技学院医学系湖北恩施445000)【摘要】目的:现代儿科在小儿病毒性心肌炎方面开展健康教育的作用分析与方法总结。方法:通过语言、书面、形象化等形式,对现代儿科小儿病毒性心肌炎实施程序化的健康教育。结果:现代儿科通过开展程序化健康教育,有助于小儿病毒性心肌炎的病情好转与疾病转归。结论:程序化健康教育是现代儿科医护人员提升医护水平的重要途径,可以更好地开展程序护理,服务现代儿科发展要求。 【关键词】浅析;现代儿科;小儿;病毒性心肌炎;健康教育;总结【中图分类号】R473 【文献标识码】A【文章编号】1004-5511(2012)04-0508-01 病毒性心肌炎(viral myocarditis),是由亲心肌病毒引起的原发性心肌炎症,常见病毒有柯萨齐B病毒、埃可病毒、流行性感冒病毒和风疹病毒等,但以柯萨奇B病毒尤甚[1~2],值得现代儿科医护人员重视。由于柯萨奇B等病毒接触人体后进入体循环后能引起毒血症,随之进入心肌细胞并增生(或毒素直接损害心肌细胞),引起心肌细胞代谢紊乱和功能障碍。因病毒性心肌炎患儿自理能力较弱,需家属照顾,其语言、生理、心理等需要大多由家属代为表达,加之本病病程长,经治疗后恢复期多在家庭度过, 家属为主要的照顾者、护理者、教育者,故程序化的健康教育(health education)在促进患儿康复中作用显著。笔者现总结如下,以期为今后进一步研究提供临床借鉴和文献参考。1临床资料1.1一般资料 通过总结我院儿科2010年~2012年2月120例小儿病毒性心肌炎,男74例,女46例,年龄0~10岁,平均年龄5+0.5岁。引起本次120例患儿中,柯萨齐B病毒93例,埃可病毒引起14例、流行性感冒病毒引起10例,其他病毒引起3例。1.2临床症状 大于50%的患儿因发热、鼻塞、流涕、咽痛或腹泻等病毒感染症状入院,而极少数是因腮腺炎病毒、肝炎病毒或疱疹病毒等感染。2程序化健康教育2.1入院时 除常规入院宣教外,现代儿科医护人员应根据小儿病毒性心肌炎的疾病特点,结合患儿个体差异,选用通俗易懂的语言表达,关心体贴患儿,在祥和宽松的氛围中完成病史采集与查体。2.2住院期间:(1)心理护理 本着整体护理的要求,应当根据患儿个体差异,在心理护理中调适各种心理反应[3],尤其要重视患儿心理评估。现代儿科医护人员应鼓励患儿及其家属做好心理护理,消除患儿心理恐惧感,加强医患沟通。(2)用药 现代儿科针对小儿病毒性心肌炎,常用一些改善心肌功能、减轻心肌细胞炎性反应和抗休克的药物,常见的是肾上腺皮质激素等。而通过发挥免疫调节来减轻心肌细胞损害作用的药物,临床以丙种球蛋白较为常用。临床上还常用正性肌力药物西地兰,通过发挥其直接速效加强心肌收缩力的作用,来迅速缓解症状。而临床上根据FDP能直接被细胞糖代谢利用,不消化ATP的药理学特性,可以用来改善病毒性心肌炎患儿缺血缺氧条件下心肌的能量代谢。生物化学中辅酶Q10作为细胞呼吸链中的一个信号传递物质,临床可以应用其促进心肌细胞生物氧化和物质代谢的机制,用于保护心肌细胞膜的完整性和维持正常生理功能[4]。当然,现代儿科医护人员在应用上述药物制剂时,应特别重视其药物副作用和毒副作用,做好科学、规范、合理用药。(3)饮食与休息 应向患儿及家属说明饮食和休息的重要性,争取其配合。告知患儿注意饮食卫生,指导其摄食"三高"无刺激易消化的食物,多饮水,视病情行低盐或无盐饮食。紧密保持同患儿及家属做好沟通,讲清休息对促进患儿心肌功能恢复,防止复发的重要性,以提高临床疗效[5]。2.3出院后 现代儿科医护人员应强调本病治愈的关键是严格遵从医嘱服药和休息及坚持复诊的重要性,注意保暖,避免上呼吸道和肠道感染,提高机体免疫力。出院后需要继续随访一段时间,直至患儿完全康复,促进其健康成长[6]。3方法总结3.1语言教育 本方法在健康教育中最常用,教育形式可以多样化,最直接有效的方法是现代儿科医护人员与患儿及家属面对面交流、沟通。在开展此法时应根据患儿心理、生理需要,完整清楚表述,以达到预期效果。3.2书面教育 本方法因不受时间限制,便于家长自由阅览,仔细领会,长时间保留,也是临床开展健康教育的重要方式。现代儿科将病毒性心肌炎防治要点用通俗易懂的语言编成出院指导手册,发给患儿及家属以指导其学习,以提高对本病的认识水平。3.3形象化教育 本方法的实施途径较多,现代儿科较为常用的是电视、VCD、宣传牌等。通过视频化、可视化的形象健康教育宣教,能较为被患儿及家属接受和掌握。4小结4.1正确认识疾病:由于心理、认知等因素的作用,患儿及家属对病毒性心肌炎的认识不足,不清楚本病作为慢性病,对其治疗需要一个长期过程[7]。因此,加强其对疾病的正确认识,可以让患儿端正心态,同医护人员紧密合作,通过培养规律健康的生活行为方式,以利于疾病治疗。4.2 开展信心疗法:现代儿科医护人员需要密切观察患儿行为表现,分析并掌握其心理活动特点,采取个性化的方式实施信心疗法。通过健康宣教,鼓励患儿及家属战胜疾病信心,并结合当今本病的治疗进展和医学水平,适时调畅其情志,消除心理障碍。4.3 重视健康教育:现代儿科对本病的治疗,主要是通过有计划、有目的、有评价的健康教育活动来促进患儿及家属参入到医护中来。通过健康教育帮助其正确认识疾病,掌握疾病的基本保健知识,密切配合医护人员,保持积极向上和自信的心态,以利于疾情好转。4.4提升管理内涵:现代儿科通过实施程序化健康教育,能提升医护人员的业务素质和服务水平,密切医患沟通,和谐医患关系,树立现代儿科的管理形象,促进医疗事业的健康有序发展。程序化健康教育的广泛开展,适应现代医学模式的要求,对于推动当前的医疗改革也大有裨益,值得进一步推广。参考文献[1]张阿曼,刘康虎,阎爱梅.病毒性心肌炎热45例临床分析[J].陕西医学杂志,1980, (7) .[2]张治涛.心肌病的诊断与治疗[M].北京:人民军医出版社,2001:169-171.[3]袁剑云,金乔.系统化整体护理[M].北京,中国农业科技出版社,1996,83-87.[4]王朝晖,廖玉华,涂源淑,张金枝.病毒性心肌炎心理和药物康复治疗[J].心血管康复医学杂志,1998,7(2):30-32.[5]张建,华琦.心血管疾病的防治[M].北京:医科大学出版社,2002:440.[6]張凤如.专家解答心肌心肌病心力衰竭[M].上海:科学技术文献出版社,2006:46.[7]王淑玲,杨淑文.病毒性心肌炎患儿的出院健康教育[J].中国健康文摘,2008, (27):217.

3.程序员面试题 篇三

基本概念测试题

1.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

2.请说明覆盖与重载的区别?

3.请说明抽象类、类、接口有什么不同?

4.请说明Java的错误处理机制是什么?

5.请举例说明Java中有几种参数传递模式?

6.请说明Java中垃圾回收的机制。

7.请写出Java中的基本数据类型

基本能力测试题

8.请列出您所知道的设计模式的名称并说明在什么情况下使用该模式

9.请按照你的理解简要描述一下三层架构

10.请说明在交给测试部门前,如何对自己负责的模块进行测试?

综合能力测试题

11.请用Java语言以最能够体现你的编程水平的方式编写出对一张表中的记录

进行添加、修改、删除、查询操作的主要类和方法结构(可以随意建立一张表进行编写)

数据库能力题

12.一大型企业,有10000名员工,每半个月发一次工资,请写出你对此企业工资数

据库的设计思路(数据库为SQL server或者Oracle)

13.请在SQL Server或者Oracle中设计表来保存一个树状结构的组织结构图(假

4.程序员面试问题分享 篇四

问题二:有人说,中国的程序员个个是高手,但是中国的开发团队个个不行,你对这一观点怎么看待?你认为团队竞争力不强的原因主要表现在哪里?

问题三:当项目中出现错误(或异常)时,你是怎么样处理的?

面试问题四:项目突然要使用新的技术进行开发(比如说用VC++开发硬件),但是基于现在的技术水平也可以开发出来,你会选择哪种形式进行开发?你在学习中喜欢使用新技术吗?你对使用新技术有什么看法?

问题五:你喜欢自学吗?那么你现在最想学习的是什么?

问题六:是否有过自己旅行的经历?当公司派你去一个完全陌生的环境中去工作一段时间时,你会有什么想法?在目的地,你的工作状态会呈现一种什么样的态度?

面试问题七:如果公司中的甲每天游手好闲,不努力工作,你会怎么做?

问题八:上班的时候,突然有朋友打电话来叫你出去吃饭(或出去玩),你会怎么做?

问题九:假如你被录用,那么在中午的休息时间你会做些什么?

5.程序员面试技巧 篇五

哪里可以找到更多的java项目需求文档呢?我想从其他地方找一些项目来拿出去面试,找几个自己熟悉的模块去说。也可能是由于自己不是太能忽悠吧,总感觉自己切切实实做过的东西和人家谈心里才有底。请高手指教?

还有,如果谈到工资

问到“你凭什么认为你可以拿到这样的工资”或者类似的话

该如何巧妙回答呢?

6.java程序员面试要点 篇六

final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是 Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

可以继承其他类或完成其他接口,在swing编程中常用此方式。

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

第四,&和&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).第五,HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

第七,什么时候用assert。

1.4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序。使用方法 assert,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。另外的使用方式assert < boolean表达式>:,表示如果表达式为真,后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数。注意编译时要增加-source 1.4 参数,否则报错。]运行时要增加 –ea参数,否则assert行被忽略

第八,GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

第九,String s = new String(“xyz”);创建了几个String Object?

两个

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数,参数加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错?

short s1 = 1;s1 = s1 + 1;(s1+1运算结果是int型,需要强制转换类型)short s1 = 1;s1 += 1;(可以正确编译)

第十二,sleep()和 wait()有什么区别?

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用 sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

第十三,Java有没有goto?

没有

很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。

第十四,数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

第十七,给我一个你最常见到的runtime exception。

参考如下:

ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException

第十八,error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

第十九,List, Set, Map是否继承自Collection接口?

List,Set是

Map不是

第二十,abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个 有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

都不能

第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

第二十三,启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

第二十四,构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

第二十五,是否可以继承String类?

String类是final类故不可以继承。

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?

有C背景的程序员特别喜欢问这种问题。< < 3

第二十九,两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对?

不对,有相同的hash code。

第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、short、char 或者 byte。long,string 都不能作用于swtich。

第三十二,编程题: 写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton {

private Singleton(){}

//在自己内部定义自己一个实例,是不是很奇怪?

//注意这是private 只供内部调用

private static Singleton instance = new Singleton();

//这里提供了一个供外部访问本class的静态方法,可以直接访问

public static Singleton getInstance(){

return instance;

} }

第二种形式:

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance(){

//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

//使用时生成实例,提高了效率!

if(instance==null)

instance=new Singleton();

return instance;} }

其他形式:

定义一个类,它的构造函数为private的,所有方法为static的。

一般认为第一种形式要更加安全些

其中也存在一些问题,下面补充一下.希望大家继续补充

1.最好介绍一下final修饰变量的情形(分开说明基本类型变量和引用类型变量)。

2.不知道如何描述比较好,匿名内部类本身是一个实现了特定接口或继承了其他类的类。

3.非静态类不能有static的方法。参考一下java collections framework的代码,还能说出很多东西来。

4.&既是位运算符,也是逻辑操作符。

&和&&都是逻辑运算符,它们的区别是,&&进行短路计算。

6.可以补充一下,参考文档。

11.说一下具体的原因可能更好。

13.java有goto这个keyword,不过还没有使用。

15.overload和多态没有任何关系。多态是面向对象的基本特征,是和继承、overriding相关的。原来以为把overload当作多态的一种是从C++来的,后来翻了基本c++的经典的书,也强调多态只是和继承,虚函数,overriding相关,所以不知道这个错误思想从哪来的了.16.public interface Set extends Collection 一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2)的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。

看文档就是了.22.“抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。”什么意思?谁规定的?

27.这个比较复杂,例如

public class Main {

public static void main(String[] args){

System.out.println(test());}

public static boolean test(){

boolean b = false;

try {

return b = 4 > 3;

} finally {

System.out.println(b);

//return false;} } }

这个例子中可以看出,return后面的表达式已经计算了,感觉return语句这里被挂起了,如果finally中没有return,这个return就返回.如果finally也有return,那么就是finally中的return返回了.29.碰上不守规矩的程序员谁也没办法.31.还有枚举呢

7.程序员面试常见问题 篇七

1.如果我们不能提供你所要求的薪水,你还愿意来我们公司吗?你的期望薪水是多少?你想得到的薪水是多 少?如果达不到你的要求,怎么办?

答:我认为工作最重要的是合作开心,薪酬是其次的,不过我原来的月薪是××元,如果跳槽的话就希望 自己能有点进步,如果不是让您太为难的话,您看这个工资是不是可以有一点提高? 2.你有哪些主要的缺点?

分析:这是个棘手的问题。若照实的回答,你会毁了工作,雇主试图使你处于不利的境地,观察你在类 似的工作困境中将作出什么反应。

回答:我需要学会更耐心一点。我的性子比较急,我总要我的工作赶在第一时间完成。我不能容忍工作 怠慢。

3.你有哪些主要的优点?认真,负责 有点急躁,在意结果

分析:像前面问题一样,这个问题问得相当直接,但是有一点隐含。

回答:“我具有朝著目标努力工作的能力。一旦我下定决心做某事,我就要把它做好,如果面试官让面试者提问的话,一般问什么问题比较合适? 一,对职位的重视: 能不能给我介绍一下这个职位的工作环境? 2 职位的一整天工作内容都有哪些呢? 3 这个职位以后的发展道路如何? 职业规划

面试官想了解你职业稳定性及个人发展方向的一个问题。

例如:我现在从事java web方向,那么未来三年的规划,是继续在这个职业上深造,我希望在三年内能够达 到项目经理的水平。这就是短期职业规划。

如果你被录用了,请问你将如何开展新工作? 回答:1.熟悉公司文化,产品,运作流程。与同事,其他部门沟通,营造好的合作氛围。

2.立刻了解客户的资料,熟知他们的需求,并迅速建立好的客户关系。等等 你的客户多次提出一些不合理的要求,你怎么办处理

我的回答是: 我记得贵公司的服务宗旨是:客户永远是对的,如果客户不对,我会在维护公司利益的范围里尽全力去满足客户的要求,并且我会去仔细观察客户之所以一直不满意的原因是什么 是对商品不满意还是对公司有成见还是对我个人服务有不满?

经典面试题怎样回答最合适

问题1: 如果我录用你,你认为你在这份工作上会待多久呢? a.这问题可能要等我工作一段时间后,才能比较具体地回答 b.一份工作至少要做3年、5年,才能学习到精华的部分。c.这个问题蛮难回答的,可能要看当时的情形。你认为公司做哪些事情可以让你更加努力工作

8.php程序员面试题 篇八

请列举、你能想到的所有的字符串查找算法,并加注释简单说明。

有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。

写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)

向php传入参数的两种方法。

(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;

error_reporting 等调试函数使用

您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

posix和perl标准的正则表达式区别;

Safe_mode 打开后哪些地方受限.

您是否用过模板引擎? 如果有您用的模板引擎的名字是?

请介绍Session的原理,大型网站中Session方面应注意什么?

测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。

您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。

sort、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?

reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?

你如何替 PHP 的应用程式侦错?

你如何产生一个 myclass 的物件?

你会如何定义一个没有成员函式或特性的类别 myclass?

给你一行文字 $string,你会如何编写一个正规表达式,把 $string 内的 HTML 标签除去?

9.程序员的面试技巧 篇九

我们也发现,很多很有才华的程序员在面试的时候总是掉链子,这大概是因为他们把大多数时间都用来搞技术开发,而忽略了学习面试技巧的重要性。

这何尝不是一种悲剧。有效的面试技巧能让你成功得到工作,即使你对那个领域也并不是非常熟悉。

1.给自己写一份非常专业的简历

我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历。相较于你将来可能得到的巨大收获,这真的只是一个小小的投资。

2.研究面试官

当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址。但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知。

再举个正面的例子,我在面试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。

你说我会推荐哪个?

面试官也是人,也会有人性的弱点和特点。Dale Carnegie曾说过,要让别人对你感兴趣,最简单的方法就是你先表达出对对方的兴趣。

不管这种方法是否有欠公正,但是如果你想面试成功,那么我建议你事先最好先好好研究一下你应聘的这家公司和面试官(如果知道的话)。

当今社会的信息是如此的发达,我们完全可以在Facebook、Twitter、微博、博客上找到任何人的资料。即使你只是大致浏览一番,也会让你受益良多。

3.获得内部推荐

知道找工作最简单的方法是什么吗?那就是获得内部推荐。

这不但可以增加面试机会,还能提升40%的录用几率。

前阵子,我找到了一家心仪的公司。然后直接投简历?NONO,猜猜我是怎么做的吧?

首先我找到一名和我有共同想法和意见的开发人员,然后开始关注他的博客。

接着我在他的博客中留言、发表建议,并且表现出对他的工作和公司非常感兴趣的想法。最后我成功拿到了这个宝贵的内部推荐资格。

很多程序员会说,“可是,某某某公司里面的人我一个也不认识啊”。如果你想就此放弃,那当我什么也没说,如果你愿意试试,我敢打赌,你总能想出一种方法达到你的目的。

不过这有个秘诀,那就是首先你得在网上创建自己的“名片”――让别人有了解你的机会,所以do it now吧。

4. 学会解决算法问题

这是每一个开发人员都应该具备的重要技能,而且真要掌握起来也并非那么难。

在很多面试中,都会有这样的问题,要求你在白板或者电脑上解决编程问题,但是许多程序员,即使是那些非常优秀的程序员,都会一下子大脑一片空白,完全理不出思路来。

如果你能花时间学会如何解决这种类型的面试问题,那么下次再碰到这种场景,就不会这么紧张了。

我们会紧张其实和怯场无关,主要是因为我们不熟悉这些问题,也没有自信能解决这种问题。

10.程序员面试一分钟自我介绍 篇十

1)学习能力:我有较强的科研能力,能熟练的进行Windows2000和LINUX操作,并能使用VB,DELPHI等语言编程。能运用网页三剑客Photoshop软件进行相关工作。

2)实践能力:我的专长是软件开发,我希望能从事这方面的工作经验,并且我曾经发过多个系统,如人事档案管理系统,工资管理系统等等。

3)交际能力:我的性格沉稳,能坐得住,对IT行业的工作,具有非常好的适应能力,而且为人谦和,具有很强的组织和协调能力,富有的事业心和责任感使我能够面对任何困难和挑战。

从以上的简单自我介绍,我希望公司能给我一个展示自己能力的机会,让我我可以学以致用,同时我也很欣赏XX公司的企业文化与工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。我的职业生涯目标是,做一个既懂技术,又懂业务的复合型人才。

程序员面试一分钟自我介绍2

大家好,我七月毕业于华侨大学计算机科学与技术系,毕业至今一直就业于厦门力泰科技有限公司,从事j2ee企业信息化管理系统的开发,目前的岗位是项目经理,负责带领一个3-5人的小团队进行系统开发。

参加工作以来,本人先后独立或主持开发过10几个企业信息化管理系统。其中,电力有限公司的电费充值卡管理系统、集团的人力资源管理系统以及移动办公管理平台,这三个系统运行以来深受使用单位的一致好评,为企业节约了人力成本,提高了工作效率。

本人对软件开发具有浓厚的兴趣,工作之余经常钻研技术,关注it技术的发展趋势。对业务需求分析比较透彻,在客户端界面操作的易用性上考虑得比较周全。工作至今,我从一个学徒成长为项目工作组成员,再到现在的项目经理,这几年的提升已让我具备了系统开发独挡一面的能力,而且已连续两年被评为企业优秀员工,这不仅是因为本人在工作岗位上长期都本着刻苦努力、虚心好学的态度,也是领导、师傅耐心教导的成果。

优点:本人具备丰富的工作经验、扎实的技术能力以及优良的代码编写风格,刻苦认真、虚心好学,对业务需求分析比较透彻,不仅能够独立完成任务,也能带领团队完成任务,具有良好的团队协作精神和沟通能力。

缺点:在带领团队完成项目的时候,有时会因为太过和善而显得魄力不足。

程序员面试一分钟自我介绍3

女士们,先生们,早上好!很荣幸有机会参加此次面试。我希望今天我能有好的表现。我希望此次面试能够成功。现在,请允许我自我介绍一下。我今年26岁,出生于山东省。我毕业于青岛大学电子专业。我在去年毕业获得学士学位。大学期间,我努力学习,通过了大学英语六级考试,掌握了基本的专业知识。成为电子工程师是我长期渴望的梦想。我渴望有机会施展我的才能。

今年七月,我就职于青岛一家小的私人公司担任技术助理工程师。由于我的才能得不到足够的施展,我决定更换工作。我前往北京为一家外资企业工作担任自动软件测试工程师。因为我想更换一下工作环境,想找一个更具挑战性的工作。而且我认为摩托罗拉公司是一个国际公司,我可以在这样的工作环境里收获更多。这就是我来这里面试的原因。我觉得我是一位具有良好团队精神、诚恳的人。而且,我能够在高强度压力下进行工作。我非常有信心我有能力胜任该公司的工程师职位。

11.程序员经典面试题目 篇十一

1.1、前端 MV框架的意义

早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架。

随着 AJAX 的出现,Web2.0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。

如果是页面型产品,多数确实不太需要它,因为页面中的 JavaScript代码,处理交互的绝对远远超过处理模型的,但是如果是应用软件类产品,这就太需要了。

长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。

从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的 MV框架,这个状况会大有改观。

之所以感受不到 MV框架的重要性,是因为Model部分代码较少,View的相对多一些。如果主要在操作View和Controller,那当然 jQuery 这类库比较好用了。

参考《前端 MV框架的意义》

1.2、请简述盒模型

IE6盒子模型与W3C盒子模型。

文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界margin, 边框边界bder, 内边距边界padding与内容边界content。

CSS3中有个box-sizing属性可以控制盒子的计算方式,

content-box:padding和bder不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和bder、padding之和。(W3C盒子模型)

bder-box:padding和bder被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。(IE6盒子模型)

参考《盒模型》

1.3、请你谈谈Cookie的弊端

a. 每个特定的域名下最多生成的cookie个数有限制

b. IE和Opera 会清理近期最少使用的cookie,Firefox会随机清理cookie

c. cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节

d. 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。

1.4、浏览器本地存储

在HTML5中提供了sessionStage和localStage。

sessionStage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储。

localStage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

1.5、web stage和cookie的区别

a. Cookie的大小是受限的

b. 每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽

c. cookie还需要指定作用域,不可以跨域调用

d. Web Stage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie

e. Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Stage仅仅是为了在本地“存储”数据而生

f. IE7、IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持web stage

1.6、对BFC规范的理解

BFC全称是Block Fmatting Context,即块格式化上下文。它是CSS2.1规范定义的,关于CSS渲染定位的一个概念。

BFC是页面CSS 视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域。

BFC的一个最重要的效果是,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

利用BFC可以闭合浮动,防止与浮动元素重叠。

参考《Learning BFC》

1.7、线程与进程的区别

a. 一个程序至少有一个进程,一个进程至少有一个线程

b. 线程的划分尺度小于进程,使得多线程程序的并发性高

c. 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率

d. 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

e. 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配

1.8、你都使用哪些工具来测试代码的性能?

JSPerf, Dromaeo

1.9、你遇到过比较难的技术问题是?你是如何解决的?

1.10、常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?

关于性能测试的面试题目

1、如何识别系统瓶颈?

从TPS指标分析,TPS即系统单位时间内处理事务的数量。当前随着用户数的增长期系统每秒可处理的事务数是否也会增长。

2、如何发现数据库的相关问题?

①通过运行某些相应的已获取的SQL语句,判断是否由于数据库索引所导致的事务响应过长的问题发生。

②通过实时监控工具(nmon等)监控分析:Ⅰ.系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;Ⅱ.在系统运行过程中其内存是否存在内存泄漏现象;

3、think_time的作用是什么?

①降低当前运行时压力,环节对应用服务器所造成的压力;

②模拟真实生产用户操作,考察对服务器所造成的影响。

4、进行参数化的目的是什么?

①减少脚本的大小;

②便于脚本的维护,从而更加真实的模拟生产环境的数据。

5、容量测试方法中为什么要以逐步递增的方式进行?

虚拟用户数随着负载时间的延长而增加,可以帮助确定系统响应时间减慢的准确时间以及准确的用户数。

6、假设在测试过程中某些事务的响应时间过长,但分析应用服务、数据库以及网络都属于正常现象,问题可能出现的原因有哪些?

①LoadRunner客户机器是否已无法承载当前运行压力导致LoadRunner无法及时获取从服务端返回的信息;

②Tink_time是否已忽略;

③确定当前被测系统架构,是否为在每次测试过程中清楚缓存所导致。

7、如何发现应用服务器的相关问题?

①通过某些事务的运行,判断是否在应用代码层未进行调优导致事务响应事件过长;

②通过实时监控工具(nmon等)监控分析:Ⅰ.系统在运行过程中其CPU是否稳定运行或CPU耗用是否过高;Ⅱ.在系统运行过程中其内存是否存在内存泄漏现象;Ⅲ.打开相应日志、分析在运行过程中是否存在交易报错并获取错误原因查看是否由于代码原因导致交易错误发生。

8、简述性能测试流程?

①分析性能需求:挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标:比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下;

②制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具;

③编写测试用例;

④搭建测试环境,准备好测试数据;

⑤编写性能测试脚本;

⑥性能测试脚本调优。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本;

⑦设计测试场景,运行测试脚本,监控服务器;

⑧分析测试结果,收集相关的日志提单给开发;

⑨回归性能测试;

⑩编写测试报告。

9、如何确定系统最大负载?

通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。

10、性能测试指标有哪些?

①响应时间;

②吞吐量;

③Cpu;

④内存;

⑤Io;

⑥Disk。

Shell 脚本面试题目

一、Shell脚本是什么、它是必需的吗?

一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。

二、什么是默认登录shell,如何改变指定用户的登录shell?

在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。

三、可以在shell脚本中使用哪些类型的变量?

在shell脚本,我们可以使用两种类型的变量:①系统定义变量;②用户定义变量。

系统变量:是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“set”命令查看。

用户变量:是由系统用户来生成和定义,变量的值可以通过命令“echo $<变量名>”查看。

四、如何将标准输出和错误输出同时重定向到同一位置?

这里有两个方法来实现:

方法一:2>&1 (如# ls /usr/share/doc > out.txt 2>&1 )

方法二:&> (如# ls /usr/share/doc &> out.txt )

五、shell脚本中“$?”标记的用途是什么?

在写一个shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用“$?”可以来检查前一命令的结束状态。

六、如何在后台运行脚本?

在脚本后面添加 “&”。

七、“chmod 500 script” 做什么?

使脚本所有者拥有可执行权限。

八、“>” 做什么?

重定向输出流到文件或另一个流。

九、& 和 && 有什么区别

& - 希望脚本在后台运行的时候使用它;

&& - 当前一个脚本成功完成才执行后面的命令/脚本的时候使用它。

十、什么时候要在 [ condition ] 之前使用 “if”?

上一篇:体育教师学期教学心得下一篇:小学生综合素质评价改革的实践与探索(反思)