开发者社区> 科技小能手> 正文

面试敲门砖

简介:
+关注继续查看
1、简述private、protected、public、internal修饰符的访问权限。
答:private,私有成员,只能在类的内部可以访问;
protected,受保护成员,在该类的内部及继承类中可以访问;
public,公共成员,完全公开,无访问限制;
internal,在同一命名空间内可以访问。

2、例举ASP.NET页面之间传递值的几种方式。
    答:QueryString、Session、Server.Transfer

3、一列数的规则如下:1、1、2、3、5、8、13、21、34……求第30位数是多少,用递归算法实现。
    答:public class MainClass
       {
           public static void Main()
           {
              Console.WriteLine(Foo(30));
              Console.ReadLine(); //读取数据,可以使运行结果停留显示
           }
           public static int Foo(int i)
           {
              if(i
              {
                  return 0;
              }
              else if(i>0 && i
              {
                  return 1;
              }
              else
              {
                  return Foo(i-1)+Foo(i-2);
              }
           }
       }

4、C#中的委托是什么?事件是不是一种委托?
    答:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。这种将方法动态赋给参数的做法,可以避免在程序中大量使用if-else(switch)语句,同时使得程序具有更好的可扩展性。
        事件是一种委托。

5、重写(override)与重载(overload)的区别
    答:重写是指重写基类的方法。
重载是指方法名相同,参数列表不同,即类中的一个方法有多重调用方式。

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

7、请编程遍历页面上所有TextBox控件并给它赋值为String.Empty
    答:foreach(System.Windows.Forms.Control control in this.Controls)
       {
           if(control is System.Windows.Forms.TextBox)
           {
              System.Windows.Forms.TextBox tb=(System.Windows.Forms.TextBox)control;
              tb.Text=String.Empty;
           }
       }

8、请编程实现一个冒泡排序算法?
    答:public static void Main()
       {
           int[] array=new int[10]{1,10,7,8,6,2,-2,12,26,3};
           int temp=0;
           for(int i=0;i
           {
              for(int j=i+1;j
              {
                  if(array[j]
                  {
                     temp=array;
                     array=array[j];
                     array[j]=temp;
                  }
              }
           }
           for(int i=0;i
{
    Console.WriteLine(“{0}”,array[i]);
}
       }

9、描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
    答:索引器(indexer),就是一类特殊的属性,通过它们就可以像数组一样引用自己的类。
索引器不是只能根据数字进行索引,可以用任意类型。

10、求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m
    答:public static void Main()
       {
           int m= System.Console.ReadLine();
           int Sum=0;
           for(int i=1;i
           {
              if(i%2==1)
              {
                  Sum+=i;
              }
              else
              {
                  Sum=Sum-i;
              }
           }
           System.Console.WriteLine(Sum.ToString());
           System.Console.ReadLine();
       }

11、用.net做B\S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要能够分层?
    答:一般分为3层:数据访问层(DataAccess Layer)、业务逻辑层(Bussiness Logical Layer)、用户界面层
       数据访问层,负责实际的数据存储和检索;
       业务逻辑层,是数据访问层和用户界面层两层的纽带,对用户界面层输入的数据进行有效的验证,处理数据,将处理后的数据传送到数据访问层。或者从用户截面层接收数据,处理后再送回表现层。 
       用户界面层,负责处理用户的输入和向用户输出。
       3层结构的优点:分工明确,条理清晰,易于调试,而且具有可扩展性;缺点:增加成本。

12、在下面的例子里
    Using System;
    class A
    {
       public A()
       {
           PrintFields();
       }
       public virtual void PrintFields(){}
    }
    class B:A
    {
       int x=1;
       int y;
       public B()
       {
           y=-1;
       }
       public override void PrintFields()
       {
           Console.WriteLine(“x={0},y={1}”,x,y);
       }
}
当使用new B()创建B的实例时,产生什么输出?
答:x=1,y=0;x=1,y=-1

13、什么叫应用程序域?
    答:应用程序域(通常为AppDomain)是一个用于隔离应用程序的虚拟进程。在同一应用程序范围内创建的所有对象都创建在同一应用程序域中。应用程序域起到安全的作用;占用资源小。

14、CTS、CLS、CLR分别作何解释?
    答:CTS:Common Type System,通用类型系统,描述了类型的定义和行为。
            CTS规范定义一个类型可以包含0个或多的成员;CTS规范定义了类型可见性和访问类型成员的一些规则;
       CLS:Common Language Specification,公共语言规范。CLS是CTS的一个子集。
       CLR:Common Language Runtime,公共语言运行库(时)。CLR是CTS的实现,CLR是应用程序的执行引擎和功能齐全的类库,该类库严格按照CTS规范实现。

15、什么是装箱和拆箱?
    答:装箱,从值类型转换到引用类型的过程。
       拆箱,从引用类型转换到值类型的过程。

16、什么是受管制的代码?
    答:在.NET环境中运行的任何代码都称为受管制的代码(unmanaged code)。

17、什么是强类型系统?
    答:

18、.net中读写数据库需要用到哪些类?他们的作用?
    答:Connection:连接数据库;
       Command:执行语句命令;
       DataSet:数据存储器;
       DataAdapter:功能最强大的适配器,支持增删改查的功能;
       DataReader:一个向前的只读数据留;

19、Asp.net的身份验证方式有哪些?分别是什么原理?
    答:Windows身份验证提供程序:提供有关如何将Windows身份验证与Microsoft Internet信息服务(IIS)身份验证结合使用来确保ASP. NET应用程序安全的信息;
       Froms身份验证提供程序:提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。应用Froms身份验证的一种简便方法是使用ASP.NET成员资格和ASP.NET登录控件,他们一起提供了一种只需少量或无需打骂可以收集、验证和管理用户凭据的方法。
       Passport身份验证提供程序:提供有关由Microsoft提供集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置。

20、什么是Code-Behind技术?
    答:Code-Behind就是所谓的代码分离,它可以使你的程序显得更加有条理、可读性更强。

21、在.net中,配件的意思是什么?
    答:配件(assembly),一个配件有时候是指一个EXE或者DLL文件,实际上是一个应用程序(就是指带有主程序入口电的模块)或者一个库文件。

22、常用的调用WebService的方法有哪些?
    答:使用WSDL.EXE命令行工具;使用VS.NET中的Add Web Reference菜单选项

23、.net Remoting的工作原理是什么?
    答:

24、在C#中,string str=null与string str=””请尽量使用文字或图像说明其中的区别。
    答:string str=null没有给str分配内存空间,string str=””给str分配了长度为空的字符串的内存空间

25、请详述在.net中类(class)与结构(struct)的异同?
    答:(1)数据类型不同。结构(struct)是值类型,值类型在栈上分配地址;类(class)是引用类型,引用类型是在堆上分配地址;
       (2)继承性不同。结构不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确Sealed声明,但结构是隐式的Sealed;类完全可以扩展,除非显示声明Sealed,否则类可以继承其他类和接口,自身也可以被继承;
       (3)内部结构不同。结构没有默认的构造函数,但可以添加带参数的构造函数(结构不能添加不带任何参数的构造函数);没有析构函数;没有abstract和sealed(因为不能继承);没有protected修饰符(因为不能被继承);可以不使用new初始化;类有默认的构造函数;有析构函数;可以使用abstract和sealed;有protrcted修饰符;必须使用new关键字初始化。
26、什么是死锁?死锁的必要条件?怎么才能克服死锁?
    答:死锁指的是由于两个或多个执行单元之间互相等待对方结束而引起阻塞的情况。
       系统的资源不足,进程的推进的顺序不合适,资源分配不当都会导致死锁。
       针对死锁主要有三种解决方位案:(1)在同一时刻不允许一个线程访问多个资源;(2)在资源访问权的获取定义一个关系顺序;(3)为所有访问资源的请求系统地定义一个最大等待时间(超时时间),并妥善处理请求失败的情况。

27、接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
    答:接口是可以继承接口的;
       抽象类是可以实现接口的;
       抽象类可以继承实体类,但有个条件,实体类必须要有欧明确的构造函数。

28、构造器Constructor是否可以继承?是否可以被Override?
    答:Constructor是不可以被继承的,因此不能被重写(Overriding),但可以被重载(Overloading)

29、当一个线程进入一个对象的方法后,其他线程是否可以进入该对象的方法?
    答:不可以,一个对象的方法只能由一个线程访问。

30、面向对象的思想主要包括什么?
    答:继承、封装、多态

31、值类型和引用类型的区别?
    答:一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。
       一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中间插变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据有更大的存储规模和较低的访问速度。
 
 
        该文转自51CTO .NET论坛,希望广大网友支持我们,加入我们大家庭。


本文转自 L.net 51CTO博客,原文链接:http://blog.51cto.com/mixangel/115891

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
技术面试常见智力题
了解技术面试常见智力题。
45 0
【算法岗面试】某小厂V面试题
知识蒸馏(Knowledge Distillation,KD)是常用的知识迁移方法,通常由教师(Teacher)模型和学生(student)模型构成。知识蒸馏就像老师教学生的过程,将知识从教师模型传递给学生模型,使得学生模型尽量与教师模型接近。
111 0
我们谈谈面试技巧(初入职场年轻人该学的)
今天,正式介绍一下Java极客技术知识星球 SpringBoot 精髓之 SpringBoot-starter Spring 源码学习(八) AOP 使用和实现原理 Java:前程似锦的 NIO 2.0 java中List元素移除元素的那些坑 昨天在我们的知识星球中,有人向我咨询了一个问题,问题描述大概是这个样子,很多家技术面得还可以结果就是等通知,然后让我给一点小小的建议,我和他交流了一下,然后思考了我怎么去面试的,总结了一下,送给大家作为参考。
65 0
2018年摩拜校招嵌入式工程师笔试卷
2018年摩拜校招嵌入式工程师笔试卷
80 0
从校园到职场 - 面试官是怎么看简历里的项目经验
  知识星球里有人吐槽,说一些名校毕业生的项目经验,明显都是刷出来的,前一年一水的电子商城,今年一水的秒杀系统。   我相信每个应届生都会面临这个问题,简历里希望填充一些可以让用人单位高看一眼的项目经验,校方或某些第三方机构可能会给一些实习项目,帮助学生攒这样的项目经验,甚至可能已经是一条龙服务,学生只要跟着项目按部就班的做一点基础工作,就可以堂而皇之的把经验写入简历,并希望作为就业的敲门砖。   那么,今天,说一下,作为面试官,是怎么看待这些项目经验的。   当然,面试官有很多种,我只以我为例,我认为自己应该具有一定的代表性,但不要苛求普适性。
57 0
【阿里招聘】那年,差点被阿里面试官掰弯
还记得那些年我们一起追过的阿里面试官吗?还记得那年差点被阿里面试官掰弯的小插曲吗?哈哈,现在让我们一起伴着笑声,带着回忆,重温那年面试阿里的难忘经历吧!
4288 0
外企面试最刁钻10个问题
外企面试中各式各样的问题千奇百怪,是应聘人员眼花缭乱,作为一个一直在世界500强工作的人力资源工作者,武巍的总结的外企面试10大问题希望对各位有用: 1、请介绍一下你自己。 这是外企常问的问题。一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,外企最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理外企才会相信。
888 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云技术面试红宝书
立即下载
阿里云技术面试红宝书
立即下载
这些软技能,让程序员更幸福
立即下载