1.类与结构的区别。
Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
1)、结构是值类型;
2)、结构不支持继承;
3)、结构不能定义默认的构造函数;
4)、结构不能定义析构函数;
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
1)、结构是值类型;
2)、结构不支持继承;
3)、结构不能定义默认的构造函数;
4)、结构不能定义析构函数;
5)、结构不能使用初始值设置域值。
2.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
string str = null 是不给他分配内存空间,而string str = “”给它分配长度为空字符窜的内存空间.
3. 解释转发与跳转的区别?
- 内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象,也可以获取到请求中的属性和参数。而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。
- 内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。
- 内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。
- 内部跳转实现的方法: request.getRequestDispatcher("XXX.jsp或者servlet").forward(request, response),
- 外部跳转实现的方法: response.sendRedirect("XXX.jsp或者servlet")
4.const与readonly的区别
- const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。
- const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。
- const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。
- readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。
- readonly 关键字与 const 关键字不同:const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中 初始化。因此,根据所使用的构造函数, readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly字段可用于运行时常数。
- readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。
5.DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
6.C#中的接口和类有什么异同。
答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口
7.请解释进程与线程的区别?进程与程序的区别?
一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。