1.简述 private、 protected、 public、internal 修饰符的访问权限
public 公有的
protected 受保护的
private 私有的
internal 内部的
前三者的关系public>protected>private
internal表示在同意程序集内,可访问。
2.列举ASP.NET页面之间传递值的几种方式
a.如果按照页面请求方式来说,有这样的几种方式
get请求,参数通过url传递,后端通过Request.QueryStirng接收
post请求,参数通过流的方式进行提交,后台通过StreamReader流读取器获取
b.session传递
c.cookie传递
3.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现
4.C#中的委托是什么?事件是不是一种委托?
举例说明
delegate in Plus(int a,int b);//定义一个委托
Plus plus=new Plus(funciton);//实例化一个委托,并把同样参数,同样返回类型的函数作为委托的参数放进去
plus(2,2);//通过委托调用这个函数
事件是委托
5.实现多态的过程中overload 重载与override 重写的区别
overload重载:
举个例子:
ClassA
{
public int Test(int a,int b)
{
return a+b;
}
public int Test(int a)
{
return a;
}
//这就是Test方法的重载
}
也就是说方法重载是通过不同的参数数量或不同的参数类型或不同的参数顺序实现的
override重写:就是一个派生类继承父类的方法,对父类的方法进行重写
6.请编程实现一个冒泡排序算法?
8.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
结合我以前的webForm项目,我们是分为这样几层
一个叫Model,Model顾名思义模型层,说白了就是前端用到的表结构
一个叫BLL Business Logic Layer 业务逻辑层,从前端来说,就是根据前端页面逻辑产生的对应的操作方法,从后端来说就是对DAL层的封装后的调用
一个叫DAL Data Access Layer 数据访问层,最底层访问数据库,操作数据库的方法
9.什么是装箱和拆箱?
值类型转换为引用类型,就是装箱
反之就是拆箱
10.什么是受管制(托管)的代码?
跑在CLR(公共语言运行时)上的代码
11.ADO.NET中常用的对象有哪些?说明一下。
ADO.NET用于数据库的连接和操作,最开始的时候,我接触的是Sql Server。
我结合Sql Server说一下这个常用的对象有哪些
SqlConnection 顾名思义连接数据
SqlDataAdapter 这叫数据适配器,它有个自动开关的功能
SqlCommand 用于存放和处理sql语句
DataSet 用于盛放读取后的数据集
SqlDataReader 这个不常用,顾名思义数据读取器,特点就是只读取第一条
12.Code-Behind技术是什么
vs2017新建一个webForm,在新建一个aspx文件的时候,实际上会有三个文件。这三个文件的后缀分别是
.aspx,.aspx.cs,aspx.desgin.cs。
.aspx用于存放html以及一些asp.net的空间。
.cs文件就是后台逻辑了。
所谓的Code-Behind就是把页面代码和后台代码分开了,当然想写在一起也是可行的。
13.配件是什么意思
就是程序集(包括dll文件,一些资源文件,图片,文档之类的)
14.WebService如何调用
我从项目上是这样调用的,右击项目名称,添加,再选择服务引用,然后把WebService的地址放进去,就完成了对webServcie的调用
非项目的情况下有个叫wsdl.exe的程序,可以通过类似添加WebService地址的方式进行调用
15.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
string str=null,不占内存空间
str="",表示空字符串,但是有内存空间
16.class与结构体有什么异同
异:
class是引用类型,结构体值类型
class有析构函数,结构体没有
class可让其他类继承,结构体没有继承
同
二者都可以定义变量,定义方法
二者都可以实现接口
二者都可以有自定义的构造函数
ps:结构的构造函数,必须有结构体的所有字段
17.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
select top 10 * from dbo.Stus where id not in(select top 30 id from (select top 40 * from dbo.Stus) as tb)
18.说一下GC
GC是Garbage Collection的缩写,中文意思就是垃圾回收,有了GC会自动释放应用程序不占用的内存
19.String s = new String("xyz");创建了几个String Object?
答:两个对象,一个是“xyz”,一个是指向“xyz”的引用对象s。
20.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行。return之后。
finally里的代码,不管有没有捕获到异常都会执行。
21.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
通过迭代器区分重复与否,用起来没区别。
22.谈谈final, finally, finalize的区别。
final可用作类或类成员的修饰符
final用于class表示类无法继承,final翻译成中文,最后的,那就当然无法继承
final用在方法上,说明方法不可重写
final用在变量上,变量不可修改
finally。用于try,catch搭配
finalize是java平台的一个方法
23.如何处理几十万条并发数据?
事务和存储过程
24.进程和线程的区别
exe启动就是产生一个进程,线程是进程的具体执行单位
25.堆和栈的区别
引用类型放在堆上
值类型放在栈上
26.成员变量和成员函数加Static的作用
1.从代码的角度上看,有了Static的方法和变量,类可直接调用
2.从程序运行的角度就是,Static修饰的类和方法,程序启动后,就加载完成。
27.GAC
Global Assembly Cache 全局程序集缓存
28.DataReader和DataSet的含义
以sql server为例,通过DataReader去读取数据库的时候,就算表里有不止一条的数据,它也就返回第一条。
DataSet则是把查询出的所有数据存起来。DataSet和SqlDataAdapter连用
29.c#中using和new的用法
using的用法
第一点,也是最普遍的用法,引用命名空间
第二点,当using放入具体的代码块的时候,using会起到dispose的作用
new的用法
第一点就是实例化对象
第二点就是隐藏父类的方法
30.什么是虚函数,什么是抽象函数
举例:public virtual void Test();这就是虚函数
抽象函数则是方法上加了abstract
31.C#中的property和attribute,阐述一下。
property和attribute有一个共同的翻译,叫属性
c#的property我把它理解为资产,比如这个类有name字段,这个name字段就是它的资产
attribute则是对这个类的一些特性的描述,好比说这个人气质很高贵。
32.HashMap和Hashtable的区别
c#没有HashMap
33.c#和.NET的区别
.NET是开发平台
34.线程如何启用
start
35.数组有没有length(),字符串有没有length()
数组没有length()方法,有length属性
字符串也没有length(),有length属性
String类也没有length(),也没有length属性
String实例化的对象有length属性,没有length()
36.值类型和引用类型的区别,通过代码说明
int a=3;
int b=a;
b=44;
这时a还是3
Person p1=new Person();
p1.Name="abc";
Person p2=p1;
p2.Name="efg";
这时p1.Name="efg"
这就是值类型和引用类型最主要的区别。
37.c#中的接口和类有什么异同
同:
二者都可以定义变量,方法
二者都可以继承
异:
class可以继承class,class可以继承接口。接口只能继承接口
class里的方法有修饰符,有方法体,接口没有
class有构造函数,析构函数,接口没有