第一篇:.NET实习个人总结
.NET实习个人总结
实习就要接近尾声了,其实我很不愿意写这个总结,因为在写完这个总结的时候也就意味着要结束我的实习生活了,在这段实习期间,我收获到了不少的知识,而且也懂得了公司的一些规章制度,更全面的了解到了以后要是工作应该怎么做,不会初来乍到的去犯错误了,这次实习给了我一个机会,让我体验到了上班的乐趣。
虽然这段时间只有上午去公司,但是让我又养成了一个很好的习惯,那就是早起,平时在学校不到上课点都不起床,现在7点有时候甚至不到7点就起床了,这样非常好,而且上午接受培训期间,我也习惯了听课,从而达到听课不困了。
这段时间,我又深入到了.NET的学习中,从刚开始的皮毛知识,已经演变到了可以达到团队甚至自己就可以编写出一个软件了,这个实习的项目是《PSS进销存系统》虽然知识一个简单的系统软件,但是我们可以由一个小软件演变成为一个大软件,再演变为更大的软件,不再单单是一个进销存系统了。
在这次学习中,我知道了常规的一些代码如何书写了,还更深入的了解到了VS 2008和数据库的使用,在编写代码的时候肯定会遇到一些问题,但是我们团队凭着不怕苦不怕累的精神去虚心向别人请教问题,最终完成了《PSS进销存系统》的研发,虽然功能没有完全的开发完毕,但是我们一致认为这不是问题,因为我们有更多的时间去接触它,而并不单单的在课堂上做。课堂的时间毕竟是有限的,课外的时间是无限的,所以我们会继续努力,一步一步的向上爬,最终会
完成这个项目。
最后一节课的时候,老师给我们讲了一些面试的技巧,叫做《面试宝典》我们从中也学到了很多知识,例如:如何跟公司交流等……
这次的实习给了我很大的信心,让我在IT行业发展有了更大的信心。相信我的明天会更好!
——.NET(1班)胡志强
第二篇:XX年最新关于.net实习总结
XX年最新关于.net实习总结
毕业实习是教学过程中的重要组成部分,是使学生获取生产、经营实际知识和技能,巩固和加深对理论知识的理解,培养与提高能力的重要实践环节。下面是小编整理的XX年最新关于.net实习总结范文,希望能为您带来帮助!XX年最新关于.net实习总结范文一
在这两个星期的实习过程中,老师带我们重新回顾了一遍所学的知识,比如C语言,数据库,网页制作等,让我们更加加深了对所学知识的理解。
毕业实习是教学过程中的重要组成部分,是使学生获取生产、经营实际知识和技能,巩固和加深对理论知识的理解,培养与提高能力的重要实践环节。通过本次实习,学生将进一步加深对网站制作、设计、开发的理解,进一步熟悉用.NET开发网站程序的相关知识,为学生毕业后实际工作打下良好的基础。
我们实习的单位的是软帝信息科技有限公司,这里有专门的.NET培训老师指导我们,设备齐全,老师也很负责。
.NET技术的发展十分迅猛,它是微软开发的一个大型平台,涵盖了互联网应用的很多方面,用来开发各种应用程序和大型网站。我们实习使用C#为.NET的编程语言,主要学习和开发Web方面的知识。
带我们实习的肖老师是一位经验丰富、技术娴熟的软件工程师,他非常细心地指导我们,对我们不懂的问题能够进行详细的讲解,他对我们要求非常严格,但这也是件好事,这样才能有所提高。
老师带我们开发.NET网站,这个网站是一个精品课程网站,使用vsXX环境开发,采用div+Css网页布局,C#,MSSQL数据库,网站采用flash阅读器显示文章、ppt、word,技术比较先进。
由于学校离公司太远了,我们每天早上7点起来,坐一个半小时的公交,然后开始一天的实习,在外奔波比较辛苦,不过大家都能坚持,精神可嘉。
同学们基础较差,实习前几天老师带我们复习,C语言的语法,sql语句,vsXX的使用等等,高强度的复习使部分同学无法接受,虽然感觉很累,但是每天都有收获。
虽然学了三年计算机,对很多计算机理论知识很有了解,学了很多东西,什么都会一点,但是真正精通的不多,实际运用的时候就无从下手,这是很多学计算机同学的现状。我本人读网页制作、div+Css设计、网站开发方面比较熟悉,也是我的强项,虽然在同学当中比较擅长,但是实习的时候感觉还是有很多不足,感到真正实践还是有点困难,还需继续努力加强学习。
往往老师布置一个任务下来,同学们往往都无从下手,不知道怎么动手,最后都是在老师一步一步的带领下完成,这说明了我们在学校学习期间,非常缺乏实际动手能力,这是需要加以弥补的,否则无法参与实际产品的开发。
面对这种情况,老师只好带我们从最简单、最基础的东西学起,但是时间有限,只能强行把大量知识灌输我们,对于很多基础不好的同学来说,只能望洋兴叹。尽管如此,也是有所效果的,这样可以系统的让我们对所学知识有个整体的了解,而不是分散的,知道一个完整的程序或者网站都是用什么具体的计算机学科来完成的。
经过两个星期的实习,对网站开发有了更深入的理解,学习了很多方法,积累了一些经验,很有收获。学无止境,实习的过程让我深知自身知识的不够,还需继续努力学习,做得更好。
XX年最新关于.net实习总结范文二
实习就要接近尾声了,其实我很不愿意写这个总结,因为在写完这个总结的时候也就意味着要结束我的实习生活了,在这段实习期间,我收获到了不少的知识,而且也懂得了公司的一些规章制度,更全面的了解到了以后要是工作应该怎么做,不会初来乍到的去犯错误了,这次实习给了我一个机会,让我体验到了上班的乐趣。
虽然这段时间只有上午去公司,但是让我又养成了一个很好的习惯,那就是早起,平时在学校不到上课点都不起床,现在7点有时候甚至不到7点就起床了,这样非常好,而且上午接受培训期间,我也习惯了听课,从而达到听课不困了。这段时间,我又深入到了.NET的学习中,从刚开始的皮毛知识,已经演变到了可以达到团队甚至自己就可以编写出一个软件了,这个实习的项目是《PSS进销存系统》虽然知识一个简单的系统软件,但是我们可以由一个小软件演变成为一个大软件,再演变为更大的软件,不再单单是一个进销存系统了。
在这次学习中,我知道了常规的一些代码如何书写了,还更深入的了解到了VS XX和数据库的使用,在编写代码的时候肯定会遇到一些问题,但是我们团队凭着不怕苦不怕累的精神去虚心向别人请教问题,最终完成了《PSS进销存系统》的研发,虽然功能没有完全的开发完毕,但是我们一致认为这不是问题,因为我们有更多的时间去接触它,而并不单单的在课堂上做。课堂的时间毕竟是有限的,课外的时间是无限的,所以我们会继续努力,一步一步的向上爬,最终会完成这个项目。最后一节课的时候,老师给我们讲了一些面试的技巧,叫做《面试宝典》我们从中也学到了很多知识,例如:如何跟公司交流等…… 这次的实习给了我很大的信心,让我在IT行业发展有了更大的信心。相信我的明天会更好!XX年最新关于.net实习总结范文三
开学第一个月,是培养计划中进行毕业实习的日子。众所周知,毕业实习是理论与实践相结合的重要环节,目的是提高学生动手能力和综合实践能力,提高学生的学习兴趣,为提高学生的就业竞争力打好基础。同时,毕业设计会使学生了解社会对计算机信息管理的应用现状及发展需求,进一步理解和领会所学的基本理论,了解计算机信息管理技术的发展及应用。另外,毕业设计也能培养学生理论联系实际水平,将所学知识应用到实际工作中,培养学生发现问题、分析问题和解决问题的能力,从而提高学生从事实际工作的能力。它要求学生通过对具体实习项目的分析,理论实践相结合,巩固和发展所学理论知识,掌握正确的思想方法和基本技能。
我通过学院老师的推荐,来到了××××科技有限公司××分公司。××××科技有限公司,成立于××××年××月,注册资金××××万元,是××省重点支持的高新技术企业、软件企业。具有计算机信息系统集成一级资质、涉及国家秘密的计算机信息系统集成乙级资质。作为计算机信息系统集成领域的领先者之一,是一家以高科技为依托,专业从事系统集成、软件开发、咨询与服务的综合性IT企业,年产值近三亿元。
本次实习,主要任务是听从公司带队负责人的意见,做好安排的各项工作。而对个人而言,则是通过参与实际的项目开发,进入实际的工作环境,一方面加深对开发的理解,增强本科在校期间所学理论向现实应用的转换;另一方面,加强实际开发能力,为自己的毕业设计作一定准备。
实习第一天,向我的实习负责人进行了简要自我介绍,之后跟着他参观了公司的市场部、工程部、软件部、设备维修部以及技术部,看到各位前辈都很专注于手中的工作。最后我们来到了研发部,也就是我为期月余的工作地点。在这一天我了解到,每天8:00至8:30进行小组早会,每人明确自己当天的任务。之后,投入上午的工作。12:00至14:00是午饭及午休时间,然后开始下午的工作,下午5:30后会开当日总结会,对当天工作进行总结,并于小姐负责人一起讨论各自下一天的工作任务。当天如果任务没有完成,就得加班。同时,不定期召开工作会,对整个项目进行整体讨论,总结上一阶段成果,发现不足,制定下一阶段计划。
接现来的工作中,整个小组负责的是重庆药物网上交易系统的实现,我零零散散参与了sqlsever中数据的增、删、改、察测试;需求分析的讨论、撰写;系统说明ppt的制作;通过本次实习,对个人而言,最大的收获莫过于对面向对象编程的进一步学习理解,以及实习项目开发中对于面向对象思想的应用,让面向对象编程的思维在自己的脑海里扎根。以前虽然也知道面向对象,知道面向对象编程,但大多数时候更理解为用面向对象编程语言进行程序开发,只要是用到C#,用到java,那就叫面向对象。也知道面向对象编程的核心思想如封装、继承、多态等,但真正开发的时候用到的很少,不管什么东西,能在一个类里写完绝对不会多用另一个类,导致程序的可读性、扩展性都非常差。而通过本次实习,项目经理先再次讲解面向对象的思想,再在程序的开前教给大家,程序的开发过程中严格要求大家做到用面向对象的思维来实现程序的开发。通过这样理论和实际的相互结合,大家在开发程序过程中真正学会了如何划分功能模块进行封装、如何使用继承,如何使用多态。
对于实习的全过程,除开编程方面的理论与实践,最大的收获应该是一种体验。这不仅仅是学习两个字就能收获到的。包括公司的作息习惯,工作任务的完成方法,人际关系的处理等等。总的说来,感觉公司比学校里实际多了,学校里你可以我行我素,出了问题老师会帮你想法解决,同学朋友会包容你安慰你,但在公司里不再如此,出了问题,那就会直接跟工资、职务的进升挂勾,个人不得不谨小慎微。另外,还听项目经理助理说了一些工作中老板面前、同事面前的不同,如一个任务,老板面前,正常需要五分钟能完成的,一定要三分钟完成,而在同事面前,能五分钟完成的一定会边耍边做10分钟完成。因为老板面前要挣表现,以便得到赏识;同事面前没那必要,而且自己做完了余下的时间还要帮别人处理,同样辛苦,还不如一边把节奏放慢点,让自己轻松点。当老板问到任务是否艰巨时,想方设法都要夸大一点任务的难度,让老板知道你的辛苦,还是为了得到赏识。只有老板赏识才会有加工资,才会有职务的上升。他所说这些,我并不赞同,人的一生如果仅仅为了工资、职务奋斗,何其悲哀;事事谨小慎微,权衡利弊,投机取巧,岂不荒唐。但却写下,只是觉得社会实际与美好的学校截然不同,就在你身边,充斥了太多的利益,或许这位助理曾经也是我现在的想法,但来到真实的工作环境,迫于现实改变了。对个人而言,是保持美好的纯真,还是跟随现实,被其改变,现今无法知晓,唯有拭目以待!
第三篇:.net实习心得体会
.net实习心得体会
我也是XX年的毕业生,在北京一个很不知名的学校学计算机专业,我的方向是做.Net开发。
个人觉得在北京找软件开发方面的实习还是挺容易的。我从大三暑假开始找实习,第一次面试就成功了,是在用友软件,在那里实习了4个多月。那的领导和同事都很好,我觉得公司对在校学生还是挺能理解的,我们一共3个实习生,领导会给我们充足的学习时间,给我们已经写好的代码让我们去阅读,给我们分配任务时,也给我们充足的时间去做,而且还有现成的代码去模仿。总之,在用友的四个月算是让我初识了软件公司里人们每天日常的生活,还有编程方面的相关规范和常用的工具等等。
我是7月份进的用友,12月份我就主动要求离开了。离开的原因是因为,要我们做的项目很少,大部分时间就是坐在电脑前,从上班坐到下班,而且领导说可能到春节前也不会有项目做了。我想很多实习生都经历过这种“无事可做”的工作,于是考虑了再三,还是决定离开这里。其实我也不希望做个不安分的整天跳来跳去的人,去辞职的时候领导还找我谈了半天让我好好考虑考虑,不过我最后还是没有留下来。直到现在我还对这件事耿耿于怀,总觉得有点愧对带了我们几个月的领导。
在离开用友的前一周我就开始在网上投简历,51,智联,我几乎是把这两个网站每天发布的.net职位信息都投一遍。接下来,就是各种面试通知,最多的时候是一天有四个。我只好专门找了一个本子来记录每天要去面试的公司。软件开发的面试,基本上都会先有一个笔试,我就把每次笔试不会做的题目都记下来,整理到一起。发现各个公司笔试题的重复率还是挺高的,也许面霸就是这样炼成的,呵呵。
最后选择了位于中关村的一家公司,北大软件,还是做.Net实习生。如今在这里已经半个月了,渐渐适应了这里,希望能够尽快上手工作。
不过一想到近在眼前的毕业,心里还是挺没底的,先不说还不知道自己能不能凭借技术在公司站稳脚跟,就算是站稳了,在北京这种地方,一个做.Net的小程序员能不能生存下去,我觉得也是个问题。北漂、蚁族、蜗居……这一个个词仿佛变得离我很近很近了,不知道自己离开了学校这个保护伞会变成什么样子。我家是天津的,虽然很近,但是还是觉得北京让人很没有归属感。
今天是周末,呆在宿舍里挺无聊,写下此文和大家共勉,希望XX年的毕业生们都找到好工作。
在这两个星期的实习过程中,老师带我们重新回顾了一遍所学的知识,比如C语言,数据库,网页制作等,让我们更加加深了对所学知识的理解。
毕业实习是教学过程中的重要组成部分,是使学生获取生产、经营实际知识和技能,巩固和加深对理论知识的理解,培养与提高能力的重要实践环节。通过本次实习,学生将进一步加深对网站制作、设计、开发的理解,进一步熟悉用.NET开发网站程序的相关知识,为学生毕业后实际工作打下良好的基础。
.NET技术的发展十分迅猛,它是微软开发的一个大型平台,涵盖了互联网应用的很多方面,用来开发各种应用程序和大型网站。我们实习使用C#为.NET的编程语言,主要学习和开发Web方面的知识。
同学们基础较差,实习前几天老师带我们复习,sql语句,vsXX的使用等等,高强度的复习使部分同学无法接受,虽然感觉很累,但是每天都有收获。,虽然在同学当中比较擅长,但是实习的时候感觉还是有很多不足,感到真正实践还是有点困难,还需继续努力加强学习。
往往老师布置一个任务下来,同学们往往都无从下手,不知道怎么动手,最后都是在老师一步一步的带领下完成,这说明了我们在学校学习期间,非常缺乏实际动手能力,这是需要加以弥补的,否则无法参与实际产品的开发。
面对这种情况,老师只好带我们从最简单、最基础的东西学起,但是时间有限,只能强行把大量知识灌输我们,对于很多基础不好的同学来说,只能望洋兴叹。尽管如此,也是有所效果的,这样可以系统的让我们对所学知识有个整体的了解,而不是分散的,知道一个完整的程序或者网站都是用什么具体的计算机学科来完成的。
经过两个星期的实习,对c#.net开发有了更深入的理解,学习了很多方法,积累了一些经验,很有收获。学无止境,实习的过程让我深知自身知识的不够,还需继续努力学习,做得更好。
第四篇:.net实习报告
月末总结
这一个月在XX公司的实现,我开始渐渐的熟悉了这个环境,让我感觉到,要作为一个真正的优秀的软件工程师,我们还有很大的差距。
首先,我感觉到困难的是,在学校,我们都比较注重的是理论知识的学习,忽视了动手能力的培养,这跟我们出来实习到来了很大的麻烦,就造成了实习生的知识技能与用人单位要求的巨大代沟,但是通过这一个月的实习,我明白了我自身的差距,也在项目经理的培训和指导下,在自身的努力下,不断的取得进步,我深知这种进步与实际的工作技能还有很大的差距,但是我会在之后的实习生活中不断的学习,不断的进步。
其次,在学校学习的面向对象的语言主要是java等,很少接触到c#/.net这就跟实习带来了不少麻烦,但是,我深信只要自己好好的努力,不断向师兄们学习,一定能克服这个问题的。在学校学习的阶段,对html、css+div、javascript、jquery、oracle等学习都比较粗浅,而且由于学习的时间比较久了,更是淡忘了不少,所以在实习的这个月中,就在不断的强化这些知识。我深知要学好这些东西,不是一朝一夕的事情,我会长此以往,不断的去学习,并掌握它们。
最后,要感谢师兄对我们的培训,分享自己的经验,让我们明白了实习中要学习的重点,让我们少走弯路。而且我知道自身的动手能力还很差,专业技能还不够好,所以,在之后的实习过程中,我会更加努力,虚心师兄们、同事们学习,不断取得进步。
Lixw_ok
第五篇:.Net面试题(个人整理)
第1页 /共17.列举ASP.NET 页面之间传递值的几种方式。答:
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。
Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
Session变量想必这个肯定是大家使用中最常见的用法了,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。
Cookie对象变量这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。
Server.Transfer方法这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
3.一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。
答:publicstaticint Calculate(int x){ int retInt = 1;if(x > 2){ return Calculate(x1);} else
return retInt;} 4.C#中的委托是什么?事件是不是一种委托?
答:委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。可以通过委
托调用方法。委托用于将方法作为参数传递给其他方法。委托具有以下特点:
委托类似于 C++ 函数指针,但它们是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不必与委托签名完全匹配。事件是一种特殊的委托。
5.override与重载的区别 答:
Override:要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,重写的基方法必须与override方法具有相同的签名。
第2页 /共17
方法重载:一个类中可以有一个以上的方法拥有相同的名称。但必须有不相同的签名。
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
答: QueryString、Server.Transfer方法。
7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? 答:
foreach(Control control inthis.Controls){ if(control isTextBox){ TextBox tb =(TextBox)control;tb.Text = String.Empty;} }
8.请编程实现一个冒泡排序算法? 答:
//冒泡排序
publicstaticvoid MaoPaoSort(refint[] arrays){ if(arrays!= null&& arrays.Length > 0){ for(int i = 1;i < arrays.Length;i++){ bool isChange = false;for(int j = 0;j < arrays.Length-i;j++){ if(arrays[j] > arrays[j + 1]){ int tempValue = arrays[j];arrays[j] = arrays[j + 1];arrays[j + 1] = tempValue;isChange = true;} } if(!isChange)break;} } }
第3页 /共17
9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。Public ReturnType this[ paramType index]{get{} set{}},可以用任何类型进行索引。
10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+„„+m 答:publicstaticint sumMethod1(int m){ int sum=0;for(int i = 1;i <= m;i++){ if(i % 2!= 0)sum += i;else
sum-= i;} return sum;}
publicstaticint sumMethod2(int m){ int sum = 0;if(m % 2!= 0)sum = m / 2 + 1;else
sum =-(m / 2);return sum;}
12.在下面的例子里
classA { public A(){ PrintFields();} publicvirtualvoid PrintFields(){ } }
classB : A { int x = 1;int y;public B()
第4页 /共17
{ y =-1;} publicoverridevoid PrintFields(){ Console.WriteLine(“x={0},y={1}”, x, y);} } 当使用new B()创建B的实例时,产生什么输出? 答:X=1,Y=0
13.什么叫应用程序域?
答:应用程序域(application domain)(AppDomain)一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。
14.CTS、CLS、CLR分别作何解释?
答:CTS:通用类型系统。CLS:通用语言规范。CLR:公共语言运行库。
15.什么是装箱和拆箱?
答:装箱:装箱转换是指将一个值类型隐式或显式地转换成一个object类型,拆箱:拆箱转换是指将一个对象类型显式地转换成一个值类型。
16.什么是受管制的代码?
答:受托管的代码不能直接写内存,是安全的,它受CLR的内存安全管理,而非托管代码是非安全代码,可以使用指针操作内存
18.net中读写数据库需要用到那些类?他们的作用? 答:DataSet:数据存储器
Connection对象,用来创建和打开,关闭数据库连接。
Command对象,用来执行各种sql语句或者调用存储过程。
Adapter对象,数据适配器,用来执行SQL语句,配合数据集执行比较多。DataReader,只读的对象,有着很高的性能。
21.在.net中,配件的意思是? 答:程序集。(中间语言,源数据,资源,装配清单)
22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
第5页 /共17
23..net Remoting 的工作原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView 各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路
答:根据点击的列头,包该列的名称取出,按照该列名排序后,再绑定到ListView中。
35.能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerator方法的类型。
36.GC是什么? 为什么要有GC? 答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.GC.Collect();
37.String s = new String(“xyz”);创建了几个String Object? 答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s。
38.abstract class和interface有什么区别? 答: 抽象类:
只能用做其它类的基类,它就是被设计来被继承的。 不能创建它的实例。
它使用abstract修饰符来声明。 抽象类可以包含抽象成员,但不是必须的,它的成员可以抽象成员和普通带实现的成员的任意组合。
它自己可以派生自另一个抽象类。任何派生自抽象类的类必须使用override关键字实现该类所有的抽象成员,除非派生类自己也是抽象类。接口:
接口是表示一组函数成员而不实现成员的引用类型。其它类和结构可以实现接口。 接口声明不包括数据成员。
接口声明只能包含如下类型的静态成员函数的声明:方法、属性、事件、索引。 接口的成员不能包含任何实现代码,而在每一个成员声明的主体后必须使用分号。 接口名称必须从大写的I开始。它和类一样,也可以声明成分部接口。 接口声明可以有任何的访问类型:public、protected、internal、private。 接口成员是隐式Public的,不允许有任何访问修饰符。
1,什么是线程池
为了帮我们降低创建和销毁线程相关的成本,CLR为每一个进程维护了一个线程池。一开始进程的线程池是空的,如果进程使用的线程被创建,并且完成了线程的执行,它不会被销毁,而是加入到进程的线程池中,这后,如果进程需要一个另外一个线程,CLR就会从池中还原一个线程,这就节省了很多时间。
39.启动一个线程是用run()还是start()?
第6页 /共17
答:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行
40.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 答:接口可以继承接口。抽像类可以实现(implements)接口,抽像类是否可继承实体类,但前提是实体类必须有明确的构造函数。
41.构造器Constructor是否可被override? 答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
42.是否可以继承String类? 答:不可以,因为String类是密封类,被Sealed修饰符所修饰。
44.两个对像值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的hash code。
Hash Code:可以简单的理解为内存的地址。“==” : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储 的地址是否相同,即栈中的内容是否相同。
“equals” : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。而字符串是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。
45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:可以。
47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 不能,一个对象的一个synchronized方法只能由一个线程访问。
49.List, Set, Map是否继承自Collection接口? 答:List,Set是Map不是
51.数组有没有length()这个方法? String有没有length()这个方法? 答:数组和string都没有Length()方法,只有Length属性。
52.sleep()和 wait()有什么区别? 答:sleep()方法是将当前线程挂起指定的时间。
wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。
53.short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错? 答:short s1 = 1;s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能隐式转化为short型。可修改为s1 =(short)(s1 + 1)。short s1 = 1;s1 += 1正确。
第7页 /共17
复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型,s1+=1等价于s1=(short)s1+1;
55.如何处理几十万条并发数据?
答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.56.Session有什么重大BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
57.进程和线程的区别?
答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
进程:进程就是一组资源,它们构成了一个正在运行的程序。线程:在进程中系统创建了一个叫做线程的内核对象,线程体现了一个程序的真实执行情况。
58.堆和栈的区别?
答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
栈:它是一个内存数组,是一个LIFO的数据结构,数据只能从栈顶插入和删除。
堆:它是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据,堆里的内存可以以任意顺序存入和取出。
59.成员变量和成员函数前加static的作用? 答:
它们用来反映类的状态。
静态成员它被类的所有实例所共享,所有实例都访问同一内存位置。 它们独立于所有的类实例,即使没有类实例,也可以调用类的静态成员。
60.ASP。NET与ASP相比,主要有哪些进步? 答:asp解释形,aspx编译型,性能提高,可以跟美工的工作分开进行,更有利于团队开发。
61.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
publicstaticint[] BuildIntArray(){ int[] retsInt = newint[100];
第8页 /共17
List
62.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。答:
QueryString 传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了
session(viewstate)简单,但易丢失作用于用户个人,过量的存储会导致服务器内存资源的耗尽。
application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用 input ttype=“hidden” 简单,可能被伪造 url参数简单,显示于地址栏,长度有限
Server.Transfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流
数据库稳定,安全,但性能相对弱
63.请指出GAC的含义? 答:全局程序集缓存。
GAC(Global Assembly Cache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。
64.向服务器发送请求有几种方式?
答:get,post。get一般为链接方式,post一般为按钮方式。区别:
Get方式,服务器端用Request.Qurystring取变量的值,安全性不高,传送数据量小。
post方式,服务器端用Request.Form获取提交的数据,安全性高。建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。
第9页 /共17
65.DataReader与Dataset有什么区别? 答:
连接数据库时DataSet是非面向连接的,而DataReader是面向连接的。
DataSet表示一个数据集,是数据在内存中的缓存,可以包括多个表,是保存数据的数据结构。而Datareader不承担保存数据的责任,它只负责从数据源读取数据到本地而已,它不是数据结构,而是网络通讯组件的高层封装。
DataSet可以离线处理,前后滚动,而DataReader不能离线处理,且是只读向前的,速度快。
DataSet可以存储数据库各种对象的,比如表触发器等,可以更新回原来的数据库。而DataReader只能存储游标记录,不可以更新回原来的数据库,它类似一个只能向前的游标记录集。
66.软件开发过程一般有几个阶段?每个阶段的作用?答: 软件开发一般分为五个阶段: 问题的定义及规划
此阶段是软件开发与需求方共同讨论,主要确定软件的开发目标及其可行性。 需求分析
在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。 软件设计
此阶段中要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为概要设计和详细设计,软件设计将为软件程序编写打下良好的基础。 程序编码
此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。 软件测试
在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。 6.部署及维护。
67.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义? Uning:
using做为命名空间指令:通过在源文件顶端放置Using命名空间指令以避免不得不使用长名称,它通知编译器你将要使用来自某个指定命名空间的类型。 using做为别名指令:它允许对一个命名空间或命名空间中的一个类型起一个别名。 using语句:某些类型的非托管对象有数量限制或很耗费系统资源,这样在代码使用完它们后,就得尽可能快的释放它们,using语句有助于简化该过程并确保这些资源被适当的处置。
New :
第10页 /共17
创建类和结构的实例。 隐藏基类的方法。
创建匿名类型(var和new关键字一起使用时可以创建匿名类型,匿名类型只是一个继承了Object的、没有名称的类,该类的定义从初始化器中推断,类似于隐匿类型化的变量)。
68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.答: string str = “ afdkd askdfji ksdafj ”;string strAfter = Regex.Replace(str.Trim(), @“s+”, “ ”);
69.下面这段代码输出什么?为什么?
int i = 5;int j = 5;if(Object.ReferenceEquals(i, j))Console.WriteLine(“Equal”);else
Console.WriteLine(“Not Equal”);答:Not Equal,因为ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用,对于值类型它总是返回false。
34.ReferenceEquals, == , Equals的区别
String对于声明的相同的字符串在堆上只保留一个Copy,所以有相同字符串值的两个字符串变量将会指向相同的Reference。 ReferenceEquals:
它是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用,对于值类型它总是返回false。 ==:
它是一个可以重载的二元操作符,可以用于比较两个对象是否相等。对于内置值类型,==判断的是两个对象的代数值是否相等。它会根据需要自动进行必要的类型转换,并根据两个对象的值是否相等返回true或者false,而对于用户定义的值类型,如果没有重载==操作符,==将是不能够使用的。
对于引用类型,== 默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true。但是.NET Framework中的类很多对==进行了重载,例如String类的==与Equals的行为相同,判断两个字符串的内容是否相等。所以在应用中,对于系统定义的引用类型建议不要使用==操作符,以免程序出现与预期不同的运行结果。 Equals(): 它对于值类型和引用类型的定义不同,对于值类型,类型相同,并且数值相同(对于struct的每个成员都必须相同),则Equals返回 true,否则返回false。而对于引用类型,默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true。可以根据需要对Equals进行重载,例如String类的Equals用于判断两个字符串的内容是否相等。
70.什么叫做SQL注入,如何防止?请举例说明。
第11页 /共17
答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:
SqlCommand com=new SqlCommand(“Select * from users where username='”+t_name.text+“' and pwd='”+t_pwd.text+“'”);object obj=com.ExcuteScale();if(obj!=null)
{
//通过验证
} 这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' or 1='1 就可以进入系统了。可以采用参数化查询语句进行防止。
71.什么是反射?
答:有关程序及其类型的数据被称为元数据(metadata),它们保存在程序的程序集中。程序在运行时,可以查看其它程序集及其本身的元数据,一个运行的程序查看本身及其它程序集的元数据的行为叫做反射(reflection)。
72.用Singleton如何写设计模式
publicsealedclassSun { privatestaticSun instance = null;private Sun(){} publicstaticSun Instance { get
{ return instance == null ? instance = newSun(): instance;} } }
73.什么是Application Pool?
答:Web应用,类似Thread Pool,提高并发性能。
74.什么是虚函数?什么是抽像函数?
虚函数:使它们可以在派生类中被重写,它自身可以有函数的实现。
抽像函数:规定其非虚子类必须实现的函数,必须被重写,它自身不可有函数的实现。
75.什么是XML?
答:XML即可扩展标记语言(Extensible Markup Language)。它是一种以简单文本格式存储数据的方式,这意味着它可以被任何计算机读取,它在.Net中执行大量的任务,包括描述应用程序的配置、在Web服务之间传输信息等。
77.什么是ASP.net中的用户控件?
第12页 /共17
答:用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。有了用户控件,就不必为每个需要相同内容的页面多次创建用户界面,编写代码,而只需要创建一个用户控件,在几个页面中多次使用。
78.列举一下你所了解的XML技术及其应用
答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config,soap协议
79.ADO.net中常用的对象有哪些?分别描述一下。提供者对象:
Connection 提供到数据源的基本连接。 Command 使用它对数据源发出命令。
CommandBuilder 此对象用于构建Sql命令,在基于单一表查询的对象中进行数据修改。 DataReader 这是一个快速而易用的对象,可以从数据源中读取仅能前向和只读的数据流。
DataAdapter 它是一个通用的类,可以执行针对数据源的各种操作,包括更新变动的数据,填充DataSet对象以及其它操作。用户对象:
DataSet 它表示一组相关表,在应用程序中这些表作为一个单元来引用。
80.什么是code-Behind技术。
答:Code-Behind技术也称为代码隐藏技术,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。
81.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol)简单对象访问协议,是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。这种相互通信采用的是XML格式的消息。
82.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里? Attribute是Microsoft.NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。Attribute是派生于System.Attribute类之下,它的主要作用是描述
Property是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。
83.XML 与 HTML 的主要区别
XML是HTML的补充,而不是HTML的替代品,XML和HTML是两种不同用途的语言。 XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。而HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。
第13页 /共17
XML是自由的、可以扩展的,XML标记并不是预先规定好的,你必须创造你自XML标记并不是,而在HTML文档中必须使用规则中定义好的标记。
XML是区分大小写字母的,HTML不区分。 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略
或者之类的结束标记。在XML中,绝对不能省略掉结束标记。 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用查找结束标记了。
在XML中,属性值必须封装在引号中。在HTML中,引号是可用可不用的。 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
84.c#中的三元运算符是? 答:?:。
85.当整数a赋值给一个object对像时,整数a将会被? 答:装箱。
86.类成员有5种可访问形式?
87.public static const int A=1;这段代码有错误么?是什么?
答:const表现的很像静态变量,它们对类的每个实例都是可见的,而且即使没有类的实例它们也可以使用,而与静态变量不同的是它没有自己的存储位置,而是在编译时被编译器替换,因此它不能声明为Static。
88.float f=-123.567F;int i=(int)f;i的值现在是-123
将f的值强制转换成int型,也就是将小数点后面的部分直接截取,保留整数部分。89.委托声明的关键字是 Delegate。
91.在Asp.net中所有的自定义用户控件都必须继承自 Control。
92.在.Net中所有可序列化的类都被标记为[Serializable]。
93.在.Net托管代码中我们不用担心内存漏洞,这是因为有了GC垃圾回收机制。
94.下面的代码中有什么错误吗?_______ using System;class A
第14页 /共17
{ public virtual void F(){ Console.WriteLine(“A.F”);} abstract class B:A { public abstract override void F();} 答:abstract override 是不可以一起修饰.95.当类T只声明了私有实例构造函数时,则在T的程序文本外部,不可以从T派生出新的类,因为子类无法调用父类的构造函数,不可以直接创建T的任何实例。
96.Switch语句的格式
switch(1 + 1){ case 1: Console.WriteLine(“Wrong”);break;case 2: Console.WriteLine(“right”);break;default: Console.WriteLine(“jiaoyanqing”);break;}
97.在.Net中,类System.Web.UI.Page 可以被继承么? 答:可以。
98..net的错误处理机制是什么?
答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
异常:它是程序中的运行时错误,它违反了一个系统约束或应用程序约束,或出现了在正常操作时未预料的情形,如果程序没有提供处理该异常的代码,系统会挂起这个程序。即使在Try块中有Return语句,Finally块也总是会在返回到调用代码之前执行。
99.利用operator声明且仅声明了==,有什么错误么? 答:要同时修改Equale和GetHash()? 重载了“==” 就必须重载 “!=”
8.62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
答案:62移动成2的6次方
第15页 /共17
105.对于这样的一个枚举类型:enumColor : byte { Red, Green, Blue, Orange };答:string[] ss = Enum.GetNames(typeof(Color));Array array = Enum.GetValues(typeof(Color));
107.C#可否对内存进行直接的操作?
答:C#可以直接对内存进行操作。但是默认情况下,为了保持类型安全,C#不支持指针运算。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。在不安全的上下文中,类型可以是指针类型以及值类型或引用类型。
108.ADO.NET相对于ADO等主要有什么改进?
ADO.NET不依赖于数据提供程序,而是使用.Net托管提供的程序。 不使用com 不在支持动态游标和服务器端游
可以断开connection而保留当前数据集可用 强类型转换 xml支持
110.大概描述一下ASP.NET服务器控件的生命周期 答:初始化加载视图状态处理回发数据加载发送回发更改通知处理回发事件预呈现保存状态呈现处置卸载
111.匿名内部类是否可以继承其它类,是否可以实现接口? 答:不能,可以实现接口
113.,&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).114.HashMap和Hashtable的区别。
答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.116.重载方法可以改变返回值的类型?
117.error和exception有什么区别? 答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
118.<%# %>和<% %>有什么区别? 答:<%# %>表示绑定的数据源
<% %>是服务器端代码块
120.重载与覆盖的区别?
第16页 /共17
方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
覆盖是一个方法或一对方法产生关系;方法的重载是多个方法之间的关系。 覆盖要求参数列表相同;重载要求参数列表不同。
覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
125.分析以下代码。
public static void test(string ConnectString){
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();conn.ConnectionString = ConnectString;try {
conn.Open();} catch(Exception Ex){
MessageBox.Show(Ex.ToString());} finally {
if(!conn.State.Equals(ConnectionState.Closed))conn.Close();} } 请问
1)以上代码可以正确使用连接池吗?
如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。
127.什么是WSE?目前最新的版本是多少?
答:WSE(Web Service Extension)包来提供最新的WEB服务安全保证,目前最新版本2.0。
129.下面的例子中
classA { publicstaticint X;static A(){ X = B.Y + 1;
第17页 /共17
} } classB { publicstaticint Y = A.X + 1;static B(){ } } static void Main(){ Console.WriteLine(“X={0},Y={1}”, mytest.A.X, mytest.B.Y);}
产生的输出结果是什么? 答:X=2,Y=1;