asp.net 知识补充

1.解释性语言与编译性语言:

asp为解释性语言,边解释边执行(由jscript活vbscript解释成中间语言之后再执行),asp.net为编译性语言,直接编译成机器码执行。

2.四种参数形式的区别:

传值参数:也就是普通参数,不改变变量的内存地址

引用参数:ref,显示定义参数,调用之前必须初始化,改变内存地址

输出参数:out,显示定义参数,调用之前只需声明,不必初始化,改变内存地址,可返回多个返回值

数组参数:params,显示定义参数,调用时可以直接赋值与参数而不必声明数组。

3.ado与ado.net

ado基于ole db接口和com

ado.net基于asp.net接口和.net体系

优势在于,离线连接数据库断开connection之后仍然可以保留数据集

强类型转换

xml支持

不再支持动态游标

不依赖com

4.new

创建对象或者调用构造函数

隐藏基类成员的继承成员

约束泛型中的参数类型

5.string str=null 和 string str=""

null是没有,没有分配内存空间

""是空,一个空的字符串

6.datagrid的datasource能够连接哪些数据源

datatable

dataview

dataset

dataviewmanage

任何实现IListSource接口的组件

任何实现IList接口的组件

7.反射与序列化

反射:解析出一个程序集(对象等)的所有信息

序列化:把对象转化为其他格式输出(如文本转化为xml),恢复对象格式则用反序列化

8.访问权限修饰符

public:可以跨类跨程序集访问

protected:只有派生类能访问基类中以protected声明的成员

interal:同一个程序集才可以访问,而且只能访问类,不能访问类成员

private:只能在同一个类的里面访问,如果不同类中想调用此类private成员的话,需要开放public方法才行。

9.密封类修饰符sealed

修饰之后此类不能派生类。

10.ado.net的主要对象

connection

command

dataadapt

datareader

dataset

trans

11.struct与class的异同

同:都是可以实现接口的,成员的类型相同。

异:struct是值类型的,值存储在堆栈或“内联”内的,不可以被继承的。没有构造,析构函数,没有protected,sealed,abtract,不初始化实例,不用new。

class是引用类型的,值存储在堆里面,其他的与上面相反。

12.remoting与webservice

remoting可以传变量的引用,效率高,但要求客户端和服务器都必须是.net环境,可以自定义协议传输,用于远程调用

webservice必须传变量的值,效率低,但可以跨平台,必须要用soap协议传输,用于消息传输的

13.三层架构

用户表现层(UI):用户界面显示

业务逻辑层(BLL):具体问题的操作和解决,业务逻辑的处理

数据业务层(DAL):数据的访问,包括insert,update,delete,select等。

优点:实现高内聚,低耦合

         因为是向下依赖的,上层的改变不会影响到下层,所以程序员只需关心就该层就行了。

         有利于标准化

         实现代码的复用

缺点:降低性能,很多可以直接操作的业务需要通过中间层了操作。

         增加了代码量。

14.三层架构与MVC异同

同:都有表现层

异:“三层”没有明确定义control,其modle是指业务逻辑层和数据访问层。

15.xml的技术及应用

保存配置

站与站之间交流

webservice

16.委托

委托可以把方法作为参数传递

相当于指针

用于定义回调函数

17.soap

简单对象访问协议,基于xml,用于分布式系统环境中交换信息和远程调用的协议。

18.sleep()和waite()

sleep()是延时后能自动恢复运行

waite()延时后必须有notify()唤醒才能运行

19.静态和非静态

1.定义不同,静态是类定义,非静态是对象定义,所以定义要先于非静态,且静态类里面只能定义静态变量和方法,但非静 态类可以定义静态方法和变量。

2.内存分配方式不同,静态时只占一份内存,页面运行时只加载一次,而非静态的类每次创建实例化对象都要增加一份内存,每次运行都要加载。

3.生命周期不同,静态是类的生命周期,且自己不能释放,所以要慎用。

4.什么时候使用静态,当其使用频率高,改动少的时候可以使用静态(如连接数据库时)。

20.seo理解

seo是搜索引擎优化,分为站内seo,站外seo,白帽seo和黑帽seo

seo优化公式:SEO=∫Clock=∫C1+L2+K3+O4

c是content:丰富的,吸引用户的文章等,非桥页。

l是链接:反向链接(站外seo,从其他网站中提供的链接),合作网站等有丰富的链接,和内容有较好的匹配性,链接到好的站点。

K是关键词:title,description,keywords.密度合理。不能堆砌,隐藏。
体验公式:SEO=用户体验+蜘蛛体验

21.值类型与引用类型的内存分配:

值类型的内存分配,分配在栈()中的变量之中,可以随意复制和替代,假如是两个变量的话,这两个变量运算结束之后就无关系了。

引用类型,对象在栈中是以地址的形式存储的,实例化对象之后,实例放于堆中,指针从栈中指向堆中。赋值的操作,入x=y的假设x已经实例化,那么x复制了一个地址给y,并指向同一个实例。

22.数据库连接字符串的理解

sa登录:constr="server=(local);database=northwild;uid=sa;pwd=sa"

windows登录:constr="server=(local);database=northwild;integrated security=sspi;persist security=false;connect timeout=300"

integrated security=sspi/true 或者 trusted_connection=false 表示使用windows登录;

persist security=false表示不保存密码信息;

23.装箱和拆箱

装箱:值类型转化为引用类型或者值类型所实现的任何接口的隐式转化。系统资源消耗大,因为要多要分配实例及指针。

拆箱:引用类型转化为值类型或从接口类型到值类型的显示转化。系统资源消耗较小,因为它只是返回实例指向的内存地址。

24.CLR(公共语言运行时)

负责内存分配和垃圾收集,受其监视的代码成为托管代码,反之则为非托管代码。

25.堆和栈(堆栈指的是栈):

   栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而堆是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。

     栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一,不同堆分配的内存无法互相操作。

     栈空间分静态分配和动态分配两种。静态分配是编译器完成的,比如自动变量(auto)的分配。动态分配由alloc函数完成。栈的动态分配无需释放 (是自动的),也就没有释放函数。为可移植的程序起见,栈的动态分配操作是不被鼓励的!堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放 回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。

26.lambda表达式的理解:

“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
   所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型,如下所示:

  delegate int del(int i);

  del myDelegate = x => x * x;

  int j = myDelegate(5); //j = 25

  创建表达式目录树类型:

  using System.Linq.Expressions;

  // ...

  Expression<del> = x => x * x;

  => 运算符具有与赋值运算符 (=) 相同的优先级,并且是右结合运算符。

  Lambda 用在基于方法的 LINQ 查询中,作为诸如 Where 和 Where 等标准查询运算符方法的参数。

27.委托的理解: 

相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法

用delegate定义

28.聚集索引和非聚集索引的区别和使用

聚集索引是物理索引,查询速度快,修改速度慢,适用于返回的结果集多,列中不同值少,返回一个区间的值

非聚集索引是逻辑索引,适用与上面相反加上order by 使用了该列。

29.OS的两种调度策略

1.抢先式调度策略:中断当前作业,把cpu交给其他作业

2.非抢先式策略

30.进程的四种调用方式

1.消息传递

2.同步

3.共享内存区域

3.过程调用

31.asp.net的运行机制

 

 当一个请求从浏览器发出,到达服务器端,IIS收到该请求。IIS根据所请求资源的扩展名,将该请求转交给相应的ISAPI扩展程序来处理。那扩展名为.aspx的请求是怎么样的呢?同样也是由相应的ISAPI处理该请求,也就是aspnet_isapi.dll,但这只是第一站,aspnet_isapi 还要将该请求转交给ASP.NET来处理.

IIS运行在一个InetInfo.exe的进程中,IIS收到扩展名为.aspx请求后,加载ASP.NET ISAPI---"aspnet_isapi.dll",ASP.NET ISAPI 会启动一个名为"aspnet_wp.exe"的工作进程,“aspnet_wp.exe”启动时会加载CLR、创建appDomain,在创建对appDomain时会实例化一个名为ISAPIRuntime类,ISAPIRuntime是Asp.net与asp.net ISAPI通信的桥梁。IIS与ASP.NET ISAPI都是非托管程序,而ASP.NET  HttpRuntime则是一个托管程序,ASP.NET ISAPI 通过COM的方式与ASP.NET Http Runtime基于命名管道通信。ISAPIRuntime是一个特殊的类,它实现接口IISAPIRuntime,该接口基于COM。所以说非托管程序可以以COM的方式访问。


ASP.NET ISAPI 调用 ISAPIRumtime  ProcessRequest 方法的,这时就到了托管环境的天下,到ASP.NET发挥的时候了,个个“洗刷”工具开始启动。

 ISAPIRuntime将处理权转交给HttpRumtime的ProcessRequestInternal方法 

32.Ajax的运行机制

1.使用CSS和XHTML来表示。
   2. 使用DOM模型来交互和动态显示。
   3.使用XMLHttpRequest来和服务器进行异步通信。
   4.使用javascript来绑定和调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值