申请书范文网

申请书 > 工作总结 > 导航

程序员年度工作总结

发表时间:2024-01-29

您可以在以下资源中找到与您所需的“程序员年度工作总结”相关的资料。如果您想要写一篇范文,需要充分利用现有的信息和资源。当您不知道如何开始时,不妨去寻找一些相关的范文进行学习。这些范文提供了关于如何整体构思的具体指导,希望在阅读本网站的同时,您也能获得一些有用的信息和帮助!

程序员年度工作总结(篇1)

在我进入公司的这一年里,我陆续接触了公司的gps平台,智能手表定位,_铁路局车站消防综合管理系统,_金融款箱管理系统,_保卫处的管理系统,指挥中心的视频监控系统,并在这期间为__制作了一个展示型企业网站。在刚进入公司的那段时间里,我从没有接触过网络摄像机,对于网络摄像机根本没有任何概念,在公司的培养下我逐渐熟悉了各种摄像机,现在拿到_的摄像机开发包,可以很熟练的进行二次开发。在工作之余,我也在努力的学习,和别人交流,学习先进的开发技术,请教别人开发技术问题。

二、主要问题1、由于开始对业务需求不是很熟悉,所以在写需求分析与了解所要开发的过程中多次出现因为需求的原因,而不断修改、返工的情况。在同_金融交流的时候,这个问题多次困扰着我,对方的需求不明,每次交流的过程中都在变更需求,从而导致了效率比较低的问题。2、在开发中,用到很多我所不知道或很多我知道但不太熟悉的领域,在这个领域内,我需要不断的学习。3、在工作阶段,有时比较偏向自己的工作方便,忽略了其他同事的工作上的量与难易。有的功能自己怎么方便怎么写,如今公司在不断壮大,我们部门人员在不断的增加,这样是不利于多人合作的。4、工作的条理性不够清晰,要分清主次和轻重缓急;在开发时间很仓促的情况下,事情多了,就一定要有详实而主次分明的计划,哪些需要立即完成,哪些可以缓缓加班完成,在这方面还有很大的优化空间。5、学习的知识不够广泛;一个项目中,涉及的技术往往有多种,知识多了,就会灵活变通,以后我会加强这方面的学习。

程序员年度工作总结(篇2)

转眼这一年又将过去,尽管受到金融危机的影响,但我们部门,我们小组却是相当辛苦的一年,就感觉从年头马不停蹄地忙到了年尾。业务开发,技术能力以下总结下这一年中工作的情况。

【门禁系统】

年初办公室来安装了门禁系统,我也折腾了几个来回。主要是新的门禁系统跟我们旧的打卡系统的共存问题。我建议门禁系统仅仅使用它的门禁功能,不使用他附带的考勤功能,以免产生系统移植等额外开发开销问题。幸亏我记录了老的考勤系统的引脚接线,门禁系统的安装者没有接好老的考勤系统的接线,导致老的考勤系统无法使用。几经联系往复终于让两个系统能够共存,顺利正常的使用。

【视频设备】

随后日方提供了Web会议系统,为软件园开TV会议提供了方便,不用来回奔袭了。Web会议需要的硬件的采购任务交给了我。经过精挑细选选购了价廉物美的设备。在Web会议的调试上也费了周折,起初的几次应该是由于设置原因导致跟日方的联络中回音过大,影响会议效果。在不懈努力之下,终于现在勉勉强强还算过的去,效果还行。

【数据库讲解】

期间有幸给学生们讲过一次数据库的安装课程。把常用到的sql server数据库的安装,以及oracle的安装作了演示和简单讲解。在讲授的过程自己也有些许领悟。

【软件站】

心里最大的一块石头要算软件站了。这个任务可以算是上一年的计划,一直都没有得以实施,在x老师的敦促下决定一定要把这个网站弄出来。一方面现在服务器的资料越来越多,资料都比较分散。新人装机没有一个指导很难找到要装的东西在哪里。老人装软件等也很难找,非常有必要有这么一个导航,至少是个方便的列表告诉大家急需的软件在哪里

【新人培训】

今年的新人培训我依然是培训的担当者,感受颇多,有自己的感受,也有对新人的想法。总体说来是很累的,一方面我担当一块的培训由早年的一周延长到两周,时间内容都增加了。并且放弃了很多休息时间来关心下新人。自我觉得应该是讲的比以往都详细。于是感慨来了,新人是公司的后备力量,我们培训的责任更加重大20xx年程序员个人工作总结20xx年程序员个人工作总结。新人很注重第一感觉,倘若教的不对,错了,很容易这错误的信息便先入为主。我最大的感觉是,有的知识点讲过了,解释过了,举例子了,演示了,好了,问了都说懂了。立即过一会儿再来问下马上又说不会了。汗。我觉得两方面都要总结,新人自身要总结牢记,熟记技术点精髓自身要非常努力。另一方面我们培训者,可能也要注意方式,方法,讲解技巧。有的东西我们是有经验的,用起来写起来都曾经有过感官的体验,但是新人不一样,新人没有经历过这些,一味的填鸭,他们忘的很快。他们需要时间积累,我们在他们入门的时候还要多点关心,多多指导,纠正他们的错误。我体验到了,给新人一定要多讲几遍,讲一遍是绝对不行的!且最好讲授之间要自己总结些典型的例子,让新人看一看。

另外年尾也曾去xx院作过两天review的支持吧,感觉自己也要与(20xx年幼儿园教师年度工作总结)时俱进啊。

【服务器配置】

今年我依然是部门这里的服务器总负责。自从服务器越来越多,测试用的,数据的,功能的等等服务器越来越多。对服务器的统筹管理尤为重要。服务器一出问题,好了大家手头的工作全部都会中断。重中之重啊!服务器多,管理维护也带来压力,所以在讨论研究之后,各组的服务器由各小组出人维护负责,我总负责及担当本组的服务器维护更新备份任务。一年来相安无事。对于日方要求更新的软件环境等,我都第一时间常常加班加点先自己试点是否成功,成功了则制作教程,发布在软件站上,之后全员公告。最有印象的是大夏天超热的一个周6,日我一人在办公室由于没有空调,汗流雨下,索性赤膊上阵。

【上网权限】

今年对网络加强了管理,特别对外网的访问进行了一系列的措施。我觉得效果还是有的,杜绝了员工上班时间上无关紧要网站,提高了工作效率。我对上网权限的管理进行了实施。对谁要开通网络,进行文档化地登记,定时开通关闭,做好记录。

【申请服务器资料】

以上说到服务器越来越多,但是总的来说服务器多归多,也都有相应的用处。有ap服务器,db数据服务器,文件服务器,打印服务器等等,还有各个小组用的服务器。基本都做到专机专用,尽量让一些功能空闲的服务器多做一些功能服务。年中我还对部门内使用的服务器进行整理归类,做了文档描述当前服务器负载功能情况,便于申请新的服务器,也是留一份记录便于日后管理。

【公共上网机】

由于加强了网络管理,上网的权限受到到限制,则有必要开辟公共上网区域。起初设置了1-2台,我安装部署了公共上网,且寻找了一些管理软件日后公共上网机还是较少,又将一台空闲的机器进行了维护作为公共上网机。由于这些机器都是比较老的机器,非常容易死机,我得不时地关注他们,有的要拆拆弄弄的,有的则要换电源,换风扇换内存等等。感觉兼职了一份IT机器维护的职责。貌似这一年除了品牌机的电脑,部门的电脑维修没有给外人来修理的机会。品牌机的故障我也事先把一道关,预先诊断一下。

【AP新服务器】

公司给员工升级换代旧的开发机器,多出的一台新的机器,我建议做ap服务器,因为ap服务器使用的人多,负荷量大,最好不再使用老的旧的总是死机的服务器。所以我也常常加班加点对更换了新的机器做ap服务器,还有软件的安装环境的配置,数据的移植等等很多琐碎的事情暂且不表。来年希望找个时间把db1的数据服务器也换成新的机器。现在已经常常死机了。

【给与业务】

在给与组里年头忙到年尾,常常加班加点放弃休假日。不知这是公司峥嵘好的征兆亦或又是对自己的另一种摧残。身体累,心累。在给与组里常常要对应一些困难的问题,有的时候很无奈,也仅仅有无奈来形容感情感受。一切的一切,唯独只有不断地提高自己来正面工作,直面每天的生活。学习业务,学习日语,学习技术。学会做人,学会处事,学会沟通。常常感慨我这一年最大的收获是什么。“圆滑”并不一定是一个贬义词,它是一种艺术,它是一种处事技巧,它是有的时候解决问题的唯一手段。在有一些分歧,有一些争论的时候,愚蠢的方法是方头方脑的去跟别人碰个头破血流,然后怀恨在心,终日郁郁寡欢似乎人家都跟你过不去似的。合理的,我领会到了,应该先放下自己的立场,站在别人的立场,静静地听他把他的想法观点完整的表达完毕。然后分析其合理性,提出自己的观点商讨到底谁的更好一点。有的时候也许对方的观念是错的,很不合理的,在不能改变事实情况的时候,学会承受,接受。

团队合作,交流协调

团队离不开互助合作,又过了一年大家又长了一岁。更加的成熟,愈发的睿智。对人更多了一份宽容,对事更多了一份忍耐。希望热烈激烈讨论的场景继续下去,哪怕整个面红脖子粗,不管结果如何,那是大家都彼此投入了用心了。有的时候常想,到底什么样是合格呢?什么样是完美?姑且不论完美,说说合格,或者讲坦荡。常觉得事情真真正正用心了,对待了,在力所能及的范围内发挥了自己最大的能量,bug永远测不完,程序永远没有完美。至少自己对得起自己的责任心,不存在侥幸逃避心态做好这件事情,品质之外道义上未尝不是可以了。一个人再强大,他也不是超人放在一个团队里,他顶多是个大水滴。一个人再弱小他也不应该被团队抛弃,哪怕它仅是个分子,他也是团队里不可或缺的一份力量,它必有它的发光灼热之处。

工作态度

这一份简单的报告怎可包括我一年的'酸甜苦辣。心情,劳动,多年的汗水,凝聚在泛黄的笔记本上。它是历史的见证,它是对我自己的肯定与鞭策。我决定换上新的笔记本,翻开新的篇章。一如既往…

新的一年工作展望

新的一年继续努力,继续提升自己的实力。日语技术都要双重进步。务必与时俱进。自己不升级不换代,就要被历史的年轮淘汰。

程序员年度工作总结(篇3)

来公司担任程序员一职已一年多时间,在这一年时间里,我学到了很多东西。每个人都是在不断的总结中成长,在不断的审视中完善自己。在这半年里自己也是在总结、审视中脚踏实地地完成好本职工作,现将工作总结如下:

一、思想方面:

严格按照一个程序员应有的素养要约束自已,爱岗敬业,具有强烈的责任感和事业心,积极主动认真的学习专业知识,工作态度端正,认真负责,听从公司的安排,积极配合全友家私完善ERP系统,任劳任怨。

二、工作方面:

热爱自己的本职工作,能够正确认真的对待每一项工作,工作投入,热心为大家服务,认真遵守劳动纪律,按时上下班,有效利用工作时间,坚守岗位,需要加班完成工作按时加班加点,保证工作能按时完成。在这半年里,我本着把工作做的更好这样一个目标,开拓创新意识,积极圆满的完成了以下本职工作:

配合全友家私开发并完善SRM系统

独自开发全友家私SAP日志维护系统

三、存在不足:

公司领导以及部门领导同事的帮助和指教,使我的工作有了很大提高,当然我还存在着很多不足之处,处理问题思路简单,不够成熟,工作中容易产生急躁情绪,需要更深入学习专业知识,提高自己的工作水平。

过去的一年,在马总的亲切关怀,伍经理的殷勤管理与认真指导,软件研发部的团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报如下:

第一部分工作总结

一、软件研发

根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈:

1、开发

以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。

2、数据库开发

数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了Oracel与access数据库,这是我最大的收获。

优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种Sql语句。还掌握了一些关于数据库优化Sql语句优化的方法,能进行一些简单的优化。

缺点:数据是一门比较先进的技术,并不是你会写一些Sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。

二、团队协作

上面的成功与收获,除了自身努力外,以及公司的.支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队总结也就是我在这个团队中的收获。

务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。

拼搏:公司给的每一个任务不管它多难,如果工作没有完成我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周末休息时间也要尽可能的使项目提前。

创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。

互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。

交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。

在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。

三、个人成长

通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。

技术上:不管从语言上还是做事的逻辑上都得到了很大的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。

第二部分20xx年工作设想

通过今年的实践和学习,明年是一个新的开始,立足当前的优缺,肩负起一个软件工程师应有的工作和性质。希望为公司明年的发展尽最大的努力,也希望自己明年有更大的收获。明年计划在以下几方面有所突破,有所建树:

一、在编程语言掌握方面,达到本公司的编程思想—不被语言所束缚。在这方面伍经理是我的榜样,积极努力的提高自身的技术水平,真正做到不被语言所束缚。

二、数据库方面,在当前已有的基础上提升自己,明年自己给自己定的目标是,能非常合理的去使用数据库各类技术,掌握更多的数据库优化思想和技术点。有时间多向许总交流。

三、加强软件开发的辅助性知识使用和积累。针对当前软件开发中的一些情况,明年更加积极的学习Javascrip、Ajax和Flex等技术。能辅助性的把软件做的更好。

四、工作质量上,现在编程我是属于会写会编和局部效率,并不是全局的效率,明年一定要做到,编一个高效率的代码。这就要综合上面的三点,才能使其达到全局的高效。

程序员年度工作总结(篇4)

来公司担任程序员一职已一年多时间,在这一年时间里,我学到了很多东西。每个人都是在不断的总结中成长,在不断的审视中完善自己。在这半年里自己也是在总结、审视中脚踏实地地完成好本职工作,现将这半年的工作总结如下:

一、思想方面:

严格按照一个程序员应有的素养要约束自已,爱岗敬业,具有强烈的责任感和事业心,积极主动认真的学习专业知识,工作态度端正,认真负责,听从公司的安排,积极配合全友家私完善ERP系统,任劳任怨。

二、工作方面:

热爱自己的本职工作,能够正确认真的对待每一项工作,工作投入,热心为大家服务,认真遵守劳动纪律,按时上下班,有效利用工作时间,坚守岗位,需要加班完成工作按时加班加点,保证工作能按时完成。在这半年里,我本着把工作做的更好这样一个目标,开拓创新意识,积极圆满的完成了以下本职工作:

配合全友家私开发并完善SRM系统

独自开发全友家私SAP日志维护系统

三、存在不足:

一公司领导以及部门领导同事的帮助和指教,使我的工作有了很大提高,当然我还存在着很多不足之处,处理问题思路简单,不够成熟,工作中容易产生急躁情绪,需要更深入学习专业知识,提高自己的工作水平。

明年工作计划

1、学习一门新的不同风格的编程语言

这是很需要的一件事,因为如果你只了解一种语言,它就会局限你解决问题的能力和你的职业发展。所以在新的一年,你应该花些时间学习一门新的语言,体验不同的编程风格,并学以致用。

2、提高你的已有技能

如今Codecademy,CodeSchool,CodeAvengers,Treehouse等都提供了大量的在线课程,在这里你可以强化技术,加深对知识的理解。如果你更喜欢那些面对面的课程,也是可以的,甚至你可以到当地的大学听课。

3、活动你的手指,但不是在键盘上

从你的书架上拿起“刺客信条”或其它游戏,用手柄和方向盘操纵游戏,活动你的关节和手指,当然还可以减压。

4、减少咖啡因的摄入

无论你之前喝了多少咖啡、茶或是其它功能饮料,都应该在新的一年多喝水,最好在每一天都能喝8杯水,因为即使有一点脱水都会让你感到疲惫,没有力量。

5、按时交付每一个项目

当然,这一点你不能完全控制,但是你要确保你的文档按时交付,不拖累整个项目的进展。

6、更多的时间远离计算机

让自己有更多的时间在做饭、登山、滑雪、跳舞或者学习艺术,总之多做一些不需要总盯着电脑屏幕的事情,到户外闻一闻花香,感受一下自然气息。

7、关注更多信息

你有很多编程上的智慧可以分享,给自己一个展示的机会,现在有很多的组织需要编程上的帮助,你可以为这样的组织贡献力量。

8、备份数据

我们知道硬件都不是坚不可摧的,随时要检查你的备份情况。尝试免费和安全的云存储,当然投资给一些好的硬件设备,设置安全的密码都是很好的方法。

9、生活得更有趣

如果没有任何一条新年愿望适合你,你可以找找那些新年愿望生成器,“这一年我要、、、、、、”或“这一年我会、、、、、、”看看系统会显示出什么。

程序员年度工作总结(篇5)

输入和输出

iO分类

1 输入 和 输出 流

2 节点流 和 处理流

3 字节流(byte)和 字符流(char)

输入流

字节流

抽象基类 InputStream

读取文件的 FileInputStream

缓冲流 BufferedInputStream

读取各种java基本数据类型的 DataInputStream

读取对象 ObjectInputStream

字符流

抽象基类 Reader

读取文本文件的 FileReader

实现缓冲的 BufferedRead 读取一个行 readLine();newline()输出流

字节流

抽象基类 OutputStream

写文件的 FileOutputStream

缓冲输出流 BufferedOutputStream

写各种java基本数据类型的 DataOutputStream

写对象的 ObjectOutputStreamwriteObject(Object obj);字符流

对象的序列化

一个对象所属的类如果实现

则这个类是序列化类,此类创建的对象就是序列化对象 序列化对象可以通过文件流在文件中进行读和写。

程序员年度工作总结(篇6)

1、技术能力,作为一个入职不久的程序员,技术能力的提升依然是当务之急。不断提升自己的技术能力,提高工作效率,保证项目开发工作按时完成。具体如下:

(1)  熟练掌握Yii框架,并能在不同场景熟练应用。

(2)  学习js/css/html、linux相关知识,能熟练运用linux常用命令,实现简单的js功能,可以写出漂亮的html页面。

(3)  学习缓存、大数据、高并发、安全方面的知识,做到代码简洁、高效、安全。

2、工作方面,做到每月都能提前或按时完成自己的月度工作目标,在部门目标制定后,认真做好个人工作规划,阶段性地及时总结。对自己所做的工作负责,注重团队协作,提高沟通技巧,努力使团队的每一项工作都能比我们想象中的做的更好。

3、个人方面,努力提高个人素养,提高自己的沟通能力,演讲能力,做到能在公共场合清晰、流畅地表达自己的观点,加强情绪管理,做好工作之余的时间管理,不懂得问题,多向部门其它同事请教,本年度至少阅读6本技术书籍。

2018,新的一年,新的规划,从现在开始出发,用心去行动,我,将一直走在追逐梦想的路上。

程序员年度工作总结(篇7)

OC语言(★★)

有人可能会问对于我们学iOS的同学来讲,面试还会问Objective-C基础吗?答案是会的,但是不会太多,因此我给了两颗星的重要程度。一般笔试的时候出现Objective-C基础题的概率比较大,口头面试的时候比较少,比如自己在面试的时候一些对基础知识比较看重的面试官会深究着Objective-C基础去问,比如Objective-C内存管理等等。

一、Objective-C语法

1.面向对象都有哪些特性以及你对这些特性的理解

继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。

封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。

多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但一切对A

系统来说都是透明的。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)。运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1.方法重写(子类继承父类并重写父类中已有的或抽象的方法);2.对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

2.我们说的Objective-C是动态运行时语言是什么意思? (When we call objective c is runtime language what does it mean?)主要是将数据类型的确定由编译时,推迟到了运行时。这个问题其实浅涉及到两个概念,运行时和多态。简单来说, 运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法。多态:不同对象以自己的方式响应相同的消息的能力叫做多态。意思就是假设生物类(life)都用有一个相同的方法-eat;那人类属于生物,猪也属于生物,都继承了life后,实现各自的eat,但是调用是我们只需调用各自的eat方法。也就是不同的对象以自己的方式响应了相同的消息(响应了eat这个选择器)。因此也可以说,运行时机制是多态的基础.,readonly, aign,retain,copy,nonatomic, strong, weak属性的作用?并区别strong(强引用)、weak(弱引用)?什么情况使用copy,aign和retain? readwrite 是可读可写特性;需要生成getter方法和setter方法时;

readonly 是只读特性只会生成getter方法不会生成setter方法,不希望属性在类外改变;

Aign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;, aign用于简单数据类型,如NSInteger,double,bool;retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;

Copy 表示赋值特性,setter方法将传入对象复制一份;需要完全一份新的变量时;nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作;atomic表示多线程安全,一般使用nonatomic。

retain 和copy用户对象,copy用于当 a指向一个对象, b也想指向同样的对象的时候,如果用aign,a如果释放,再调用b会crash,如果用copy 的方式,a和b各自有自己的内存,就可以解决这个问题。retain 会使计数器加1,也可以解决aign的问题。另外:atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。

其实从这个也可以引申到内存管理的一系列问题.面试官会让你讲讲MRC和ARC的理解,随即也引申出Block的内存机制,为啥推荐Block用copy,Block会存在哪些内存问题?循环引用?

4.分别描述内存管理要点、autorelease、release、NSAutoreleasePool?并说明autorelease是什么时候被release的?简述什么时候由你负责释放对象,什么时候不由你释放?[NSAutoreleasePool release]和[NSAutoreleasePool drain]有什么区别? 内存管理要点: Objective-C 使用引用计数机制(retainCount)来管理内存。内存每被引用一次,该内存的引用计数+1,每被释放一次引用计数-1。当引用计数 = 0 的时候,调用该对象的 dealloc 方法,来彻底从内存中删除该对象。alloc,allocWithZone,new(带初始化)时:该对象引用计数 +1;

retain:手动为该对象引用计数 +1;copy:对象引用计数 +1;

mutableCopy:生成一个新对象,新对象引用计数为 1;release:手动为该对象引用计数-1;

Autorelease:把该对象放入自动释放池,当自动释放池释放时,其内的对象引用计数-1。

NSAutoreleasePool: NSAutoreleasePool是通过接收对象向它发送的autorelease消息,记录该对象的release消息,当自动释放池被销毁时,会自动向池中的对象发送release消息。autorelease 是在自动释放池被销毁,向池中的对象发送release只能释放自己拥有的对象, 区别是:在引用计数环境下(在不使用ARC情况下),两者基本一样,在GC(垃圾回收制)环境下,release 是一个no-op(无效操作),所以无论是不是GC都使用drain

面试中内存管理,release和autorelease的含义?这里尤其要强调下autorelease,它引申出自动释放池,也能引申出Run loop!5.自动释放池是什么,如何工作 ? 当 您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。

1>.Objective-C 是 通过一种"referring counting"(引用计数)的方式来管理内存的, 对象在开始分配内存(alloc)的时候引用计数为1,以后每当碰到有copy,retain的时候引用计数都会加1, 每当碰到release和autorelease的时候引用计数就会减1,如果此对象的计数变为了0, 就会被系统销毁.2>.NSAutoreleasePool 就是用来做引用计数的管理工作的,这个东西一般不用自己管理.3>.autorelease和release没什么区别,只是引用计数减1的时机不同而已,autorelease会在对象的使用真正结束的时候才做引用计数减 OS有没有垃圾回收?autorelease 和垃圾回收制(gc)有什么关系? IPhone OS 中没有垃圾回收。autorelease只是延迟释放,gc是每隔一段时间询问程序,看是否有无指针指向的对象,若有,就将它回收。他们两者没有什么关系。

7.简述NotificationCenter、KVC、KVO、Delegate?并说明它们之间的区别? KVO(Key-Value-Observing):是键值监听,键值观察机制,当观察者为一个对象的属性进行了注册,被观察对象的isa指针被修改的时候,isa指针就会指向一个中间类,而不是真实的类。所以 isa指针其实不需要指向实例对象真实的类。所以我们的程序最好不要依赖于isa指针。在调用类的方法的时候,最好要明确对象实例的类名

KVC(Key-Value-Coding)内部的实现:是键值编码,一个对象在调用setValue的时候,(1)首先根据方法名找到运行方法的时候所需要的环 境参数。(2)他会从自己isa指针结合环境参数,找到具体的方法实现的接口。(3)再直接查找得来的具体的方法实现。Delegate:代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者和接收者的关系是直接的一对多的关系。

Notification:消息的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。

1).效率肯定是delegate比nsnotification高。

2).delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要关注返回值,也就是delegate方法的结果。比如-windowShouldClose:,需要关心返回的是yes还是no。所以delegate方法往往包含should这个很传神的词。也就是好比你做我的delegate,我会问你我想关闭窗口你愿意吗?你需要给我一个答案,我根据你的答案来决定如何做下一步。相反的,notification最大的特色就是不关心接受者的态度,我只管

把通告放出来,你接受不接受就是你的事情,同时我也不关心结果。所以notification往往用did这个词汇,比如NSWindowDidResizeNotification,那么nswindow对象放出这个notification后就什么都不管了也不会等待接受者的反应。

1)两个模块之间联系不是很紧密,就用notification传值,例如多线程之间传值用notificaiton。

2)delegate只是一种较为简单的回调,且主要用在一个模块中,例如底层功能完成了,需要把一些值传到上层去,就事先把上层的函数通过delegate传到底层,然后在底层call这个delegate,它们都在一个模块中,完成一个功能,例如说 NavgationController 从 B 界面到A 点返回按钮(调用popViewController方法)可以用delegate比较好。

What is lazy loading? 就是懒汉模式,只在用到的时候才去初始化。也可以理解成延时加载。我觉得最好也最简单的一个列子就是tableView中图片的加载显示了。一个延时载,避免内存过高,一个异步加载,避免线程堵塞。

有多继承吗?没有的话可以用什么方法替代? 多继承即一个子类可以有多个父类,它继承了多个父类的特性。Object-c的类没有多继承,只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,OC类似于多继承,是在用protocol委托代理来实现的;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。

10.分别描述类别(categories)和延展(extensions)是什么?以及两者的区别?继承和类别在实现中有何区别?为什么Category只能为对象添加方法,却不能添加成员变量? 类别:在没有原类.m文件的基础上,给该类添加方法;

延展:一种特殊形式的类别,主要在一个类的.m文件里声明和实现延展的作用,就是给某类添加私有方法或是私有变量。两个的区别:延展可以添加属性并且它添加的方法是必须要实现的。延展可以认为是一个私有的类目。

继承和类别在实现中的区别:类别可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。Category只能为对象添加方法,却不能添加成员变量的原因:如果可以添加成员变量,添加的成员变量没有办法初始化

有私有方法么?私有变量呢?如多没有的话,有没有什么代替的方法? objective-c类里面的方法只有两种, 静态方法和实例方法.但是可以通过把方法的声明和定义都放在.m文件中来实现一个表面上的私有方法。有私有变量,可以通过@private来修饰,或者把声明放到.m文件中。在Objective‐C中,所有实例变量默认都是私有的,所有实例方法默认都是公有的12.#include与#import的区别? #import与@cla的区别? #import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样你就不会陷入递归包含的问题中。

#import与@cla二者的区别在于:

1>#import会链入该头文件的全部信息,包括实体变量和方法等;而@cla只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。

2>在头文件中,一般只需要知道被引用的类的名称就可以了。不需要知道其内部的实体变量和方法,所以在头文件中一般使用@cla来声明这个名称是类的名称。而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。

3>在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这样的引用关系。当最开始的那个头文件有变化的话,后面所有引用它的类都需要重新编译,如果你的类有很多的话,这将耗费大量的时间。而是用@cla则不会。

4>如果有循环依赖关系,如:A–>B, B–>A这样的相互依赖关系,如果使用#import来相互包含,那么就会出现编译错误,如果使用@cla在两个类的头文件中相互声明,则不会有编译错误出现。所以,一般来说,@cla是放在interface中的,只是为了在interface中引用这个类,把这个类作为一个类型来用的。在实现这个接口的实现类中,如果需要引用这个类的实体变量或者方法之类的,还是需要import在@cla中声明的类进来.13.浅复制和深复制的区别? (Difference between shallow copy and deep copy?)浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身。意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。

深层复制(mutableCopy):复制引用对象本身。深复制就好理解了,内存中存在了两份独立对象本身,当修改A时,A_copy不变。

用网上一哥们通俗的话将就是:

浅复制好比你和你的影子,你完蛋,你的影子也完蛋

深复制好比你和你的克隆人,你完蛋,你的克隆人还活着。

14.类变量的@protected,@private,@public,@package声明各有什么含义? 变量的作用域不同,@protected 该类和所有子类中的方法可以直接访问这样的变量,这是默认的;@private 该类中的方法可以访问这样的变量,子类不可以;@public除了自己和子类方法外,也可以被其他类或者其他模块中的方法访问;@package 目前尚未得出结论. 关键字的作用? 1>函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

2>在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

3>在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明 它的模块内;

4>在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

5>在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量

16.关键字volatile有什么含意?并给出三个不同的例子WWw.sQ158.cOM

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:

? 并行设备的硬件寄存器(如:状态寄存器)

? 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)? 多线程应用中被几个任务共享的变量

与C、C+++之间的联系和区别?

Objective-C和C++都是C的面向对象的超集。

Object与C++的区别主要点:Objective-C是完全动态的,支持在运行时动态类型决议(dynamic typing),动态绑定(dynamic binding)以及动态装载(dynamic loading);而C++是部分动态的,编译时静态绑定,通过嵌入类(多重继承)和虚函数(虚表)来模拟实现。

Objective-C 在语言层次上支持动态消息转发,其消息发送语法为 [object function];而且C++ 为 object->function()。两者的语义也不同,在 Objective-C 里是说发送消息到一个对象上,至于这个对象能不能响应消息以及是响应还是转发消息都不会 crash;而在 C++ 里是说对象进行了某个操作,如果对象没有这个操作的话,要么编译会报错(静态绑定),要么程序会 crash 掉的(动态绑定)。

18.目标-动作机制

目标是动作消息的接收者。一个控件,或者更为常见的是它的单元,以插座变量(参见"插座变量"部分)的形式保有其动作消息的目标。

动作是控件发送给目标的消息,或者从目标的角度看,它是目标为了响应动作而实现的方法.程序需要某些机制来进行事件和指令的翻译。这个机制就是目标-动作机制。

19.动态绑定

在运行时确定要调用的方法 , 动态绑定将调用方法的确定也推迟到运行时。在编译时,方法的调用并不和代码绑定在一起,只有在消实发送出来之后,才确定被调用的代码。通过

动态类型和动态绑 定技术,代码每次执行都可以得到不同的结果。运行时因子负责确定消息的接收者和被调用的方法。运行时的消息分发机制为动态绑定提供支持。当向一个动态类型确定了的对象发送消息时,运行环境系统会通过接收者的isa指针定位对象的类,并以此为起点确定被调用的方法,方法和消息是动态绑定的。而且,不必在Objective-C 代码中做任何工作,就可以自动获取动态绑定的好处。在每次发送消息时,特别是当消息的接收者是动态类型已经确定的对象时,动态绑定就会例行而透明地发生

开发与iPhone开发有什么不同?

开发iPad和iPhone应用使用的是相同的SDK,它们之间的区别主要体现在设备硬件和UI操作上。

(1)设备硬件:由于iPad不具备电话功能,iPad1也没有相机,所以相关的特性如电话、SMS等无法使用。

(2)UI操作:由于iPad屏幕大小为英寸,而iPhone的屏幕是英寸,这就决定了两者操作方式的不同。有些控件,如UIPopoverController, UISliptViewController 只能在iPad中使用,而不能在iPhone中使用;而且当需要presentModalViewController时,Window presentation style 只对iPad有效;除此之外,iPad产品开发中还需针对iPad大屏幕考虑加入多指手势以增加用户体验

21.换肤技术使用了什么技术? 22.谈谈你对runtime的了解? 23.算法和数据结构

程序员年度工作总结(篇8)

我是一名程序员。一年来,软件研发部门团结协作,在公司充满拼搏的环境中,以认真的工作态度和锲而不舍的精神努力工作。完成了公司各项工作,在软件研发、团队合作和个人成长方面取得了一定的成绩。在公司一年的工作已经结束,特向公司汇报如下:

1.软件研发

根据公司安排和项目需要。通过自己的努力,在x经理的帮助,以及团队的配合下,我克服了很多技术难关,增加了工作经验,收获颇丰:

1.xx开发

我以前在其他公司也做过一些开发,但是没有涉及到底层、架构和页面样式。通过今年公司项目的培训,我成长并学到了很多东西。

首先,面向对象语言的好处。当前编程的主流思想是对象,任何东西都可以用对象来表示。在过去,这些话很难理解。是从表面上理解的,而不是从深度体验中理解的。通过对xx项目的深入了解,无论是数据还是一些外部条件,我们都可以抽象成对象,用对象来表示。使用语言中的类squares等。xx就是这样,c#和java一样。

其次,具备独立完成知识的能力。之前没做过vb的东西,这次做了深入的工作。这次涉及的领域很广,把最常用和最重要的都涉及到了,还增加了xml和java实际操作中的空白部分。通过今年的发展,我能够胜任这方面的工作,可以独立完成这方面的工作。

还是有一些不足。通过这款软件的开发,LocALhOST也发现了自身的不足,比如缺乏基础知识,缺乏整体的编程思路。这些都是工作中需要细化和改进的。

2. 数据库开发

数据库是与项目一起使用的最常见和最普通的技术。以前只知道对数据库的一些简单常用的操作。经过今年项目实战,积累了一些丰富的数据库操作经验。为以后工作和经验的积累打下了坚实的基础。同时项目中还用到了oracle和access数据库,是我的收获。

优点:熟练使用数据库技术进行开发。尤其是sql数据库的操作,经过这么长时间的积累,基本可以合理的设计和新建一个数据库了,同时也加强了对数据库在数据结构方面的理解。通过项目的实践,我现在可以熟练使用和编写各种SQL语句了。我也掌握了一些优化数据库中SQL语句的方法,可以进行一些简单的优化。

缺点:数据是一种比较先进的技术。不是你会写一些sql语句,而是你可以建几个数据库,你是一个数据库工程师。成为一名优秀的数据库管理员,就是长期的工作积累。针对自己的不足,在以后的工作和学习中,要多接触,多利用新的知识点。丰富您的经验和知识储备。

二、团队合作

以上的成功和收获,除了自己的努力,还有公司的支持。是这支球队造就了我。我们的团队也是一个具有务实、拼搏和创新精神的团队,因为我们的团队成员努力工作、合作。我和软件开发团队是一个整体,这里的团队总结就是我在这个团队中的收获。

务实:公司下达的任务和任务,都是用心完成的。我们团队中没有人在工作的同时除了工作以外的任何事情,而且他们实际上都在做对公司有益的与工作相关的事情。相信在吴经理的带领下,现在是这样,以后也一样。

努力工作:不管公司下达的每一项任务有多么艰巨,如果工作没有完成,我们就会在晚上加班,一定要尽可能完成一天的工作。如果工作真的很忙,为了赶进度,我们放弃周末休息,尽早做项目。

创新:现在当我们开始一个项目时,我们会进行讨论。一般情况下,我们会进行高效、合乎逻辑的分析和讨论,以确保程序的前提是正确的,并尽可能提高程序的效率。

互助:只要我们群里的任何人有技术或其他问题,我们都会尽可能地互相帮助。没有人会支持整个项目。

沟通:我们会在项目期间及时沟通我们的收获,特别是一些针对性的技术问题。这节省了大量重复研究的时间,这是相当多的时间。

只要懂得沟通,我就不会小气。我会主动和你沟通。我的团队有句名言“强者使团队强,弱者使团队更弱”。

3. 个人成长

通过公司近一年的培训和学习,我确实进步了很多,无论是技术还是工作,都不像以前那样了。 我在公司学到的东西让我快速成长。

技术上:无论是语言还是做事的逻辑都有很大的提升。 现在在软件团队,我可以独立完成部分工作,承担自己的责任。

猜你喜欢