1、面向对象程序思想

  面向对象是程序开发的一种机制,特征为封装、继承、多态。以面向对象方式编写程序时,将复杂的项目抽象为多个对象互相协作的模型,然后编写模型结构,声明或实现类型的成员,即描述对象的特征和行为,编写不同的类型解决或完成不同的功能,在程序中通过类的实例处理解决实际问题。

2、类和对象区别

  类(Class)指一类事物,对象(Object)指属于这一类事物的实体;

  类定义了对象的相关数据和方法,类通过构造函数生成对象,对象实现了类的定义,且拥有具体的数据。

3、修饰符作用

  private 所属类内部可以访问,某些情况可以通过get或set进行读取或修改。

  protected 所属类及子类的内部访问。

  internal 同一程序集内部访问。

  public 公共访问权限,无限制。

4、sealed修饰符

  用于修饰类、实例方法和属性,修饰类时,该类无法被继承,所以也称为密封类。

  abstract(抽象类)必须被继承才有意义,故二者不能共存。

5、override和overload

  overload 方法名相同,函数签名不同,多次overload可以适应不同需要。

  override 对基类的拓展或改写,签名必须保持一致。

6、接口和抽象类

  二者皆无法被实例化,并且未实现部分都由派生类实现,抽象类只能派生类,接口可以派生类和结构。

  抽象类的派生类也可以说是受限类,即抽象成员在派生类中不一定被实现。

  接口则要求派生类或结构完全实现其成员。

  抽象类可以包含已经实现的成员,可以包含字段;

  接口只包含未实现的成员,不能包含字段。

  类只能继承一个抽象类,但可以继承多个接口。

7、this和base

  this用于引用类的当前实例,base用于派生类访问基类成员。

8、简述程序集和应用程序域

  程序集用于解决DLL相关的问题,是自我描述的安装单元,是逻辑单元,而非一个文件。

  程序集可以使包含元数据的多个文件,也可以是一个dll或者exe执行文件。

  动态程序集位于内存之中,而非存储文件。

  应用程序域是.NET中的程序边界。

9、.NET程序编译过程

  由多种高级语言编写,如c#,vb,最后会被各自编译器编译为一致的中间语言(IL)。然后又CLR(公共语言进行时)提供运行环境,将中间语言编译为机器码供CPU执行。

  中间语言采用即时编译,也称JIT编译。这种方式只编译调用的代码部分,编译过的部分存储于内存,下次执行无需再次编译,退出程序时,已编译部分的代码会被清除。

10、.NET程序中间语言(IL)又称为托管代码,优点为平台无关性,JIT性能优化,语言互操作性。

11、using和命名空间

  using可用于引用命名空间,自动释放对象使用的资源,添加别名。

  引用命名空间:

  using System;

  自动释放对象使用资源

  using(SqlConnection con=new SqlConnection(conntsr)){

    con.Open();

  }

  添加别名

  using S=System;

  命名空间反映程序中的逻辑关系,且有效避免类名冲突。代表各种类的逻辑组织方式,与物理组织方式无关。

  用namespace关键字可以自定义命名空间。

12、值类型和引用类型

  值类型包含数据,引用类型只包含数据的内存地址。

  值类型只要离开其定义的作用域,就会从内存中被清除,引用类型引用对象一直存留在托管堆,.NET收集器将自动将其销毁。

13、结构和类

  结构类型是值类型的数据封装体,可用于封装较简单的数据结构,并且和类共享大多数语法。

  结构不支持继承,所有结构直接继承自System.ValueType。

  结构无法声明无参数的构造函数以及析构函数,因为编译器将提供一个默认的构造函数,并将成员进行初始化。可声明带参的构造函数。

  结构的静态字段可直接赋初值,实例成员则不允许。

  由于结构类型是值类型,所有实例化可以不使用new运算符。结构的new操作不执行分配内存操作,只执行初始化。

14、栈和堆

  栈指堆栈,堆指托管堆,堆栈可用于存储非实例成员的值类型数据,以及引用类型的变量;而托管堆可用于存储引用类型实例的数据和相关信息。

15、委托 delegate --

  可理解为指向一个函数的引用,事件是一种特殊的委托。

16、页面传值方法

  QueryString 使用简单,但缺乏安全性,值暴露于url,中文需转码。

  Session  使用简单,可传递简单数据类型和对象,数据大小无限制,消耗较多服务器资源。

  Cookie   使用简单,跨页面表单使用cookie保持用户状态,但易被人认为收集用户隐私。

  Server.Transfer 直接在服务器端重定向,使用简单,减少客户端对服务器请求,可传递数据类型和控件的值,但由于url地址不变,若源页面与目标页面不在同一目录或子目录下,使用相对路径的图片、超链接都会错误指向。

  Application  使用简单,消耗较少服务器资源,数据大小无限制,可传递数据和对象,但作为全局变量容易被误操作。  

  缓存    整页缓存,实现简单,消耗服务器内存;片段缓存,节省内存,但实现麻烦;应用程序缓存,不局限缓存网页,但实现复杂。

17、常用调用WebService方法

  WSDL.exe命令行工具生成代理类,然后在代码里引用这个类文件

  .net程序中添加引用、添加服务引用。

  Http协议的Get,Post

  HttpClient调用

18、string str=null,不分配内存空间,string str=“”,分配长度为空字符串的内存空间。

19、线程和进程

  Thread和Process都定义了某种边界。

  Thread定义的是代码执行堆栈和执行上下文的边界。

  Process定义的是应用程序的边界,不同进程之间不能共享代码和数据空间。

  一个进程可包含多个线程。

  单个进程能访问的最大内存量为最大虚拟内存的1/2。

20、Windows服务

  运行在后台指定用户(System)下的应用程序,无标准UI界面。在服务开始时创建,在服务结束时销毁。

21、GAC

  全局应用程序集缓存,解决了几个程序共享某一个程序集的问题,不必将被共享的程序集拷贝到应用程序目录下了。

  .NET程序加载时首先查看GAC,有则直接使用,没有就再去应用程序目录下查找。

22、ADO.NET五大对象

  Command

  Connection

  DataReader

  DataSet

  DataAdapter

23、TCP/IP端口能侦听多少进程

  可侦听多个进程(端口复用)。

  端口复用代码:

  1. Socket soc1=new Socket(AddressFamily.InterNetWork,SocketType.Stream,ProtocolType.Tcp);
  2. soc1.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),));
  3. soc1.listen();
  4. soc2.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReuseAddress,true);
  5. soc2.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),));
  6. soc2.listen();
  7. Console.Read();

24、 asmx的XML Web服务和SOAP的.Net Remoting

  web服务使用消息机制,Remoting采用RPC。Web Service能用于不同平台,Remoting只适用于.Net。

  Remoting效率高于XML Web Service。

----未完待续

  

  

  

.Net基础杂记的更多相关文章

  1. java复习(2)---java基础杂记

    java命名规范: 参考:http://www.cnblogs.com/maowang1991/archive/2013/06/29/3162366.html 1.项目名小写 2.包名小写 3.类名每 ...

  2. Webpack系列-第一篇基础杂记

    前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然只是一个工具,但内部涉及到非常多的知识,之前一直靠CV来解决问题,之知其然不知其所以然,希望这次能整理一下相关的知识点. ...

  3. python基础杂记

    一.编码 1.ACSII                        0000 0001           8位       一个字节 2. uncoide                     ...

  4. Webpack系列-第三篇流程杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 本文章个人理解, 只是为了理清webpack流程, 没有关注内部过多细节 ...

  5. webpack-插件机制杂记

    系列文章 Webpack系列-第一篇基础杂记 webpack系列-插件机制杂记 前言 webpack本身并不难,他所完成的各种复杂炫酷的功能都依赖于他的插件机制.或许我们在日常的开发需求中并不需要自己 ...

  6. 5天揭秘js高级技术-第一天

    一.基础杂记 1. document.write() <script type="text/javascript"> document.write('<h2> ...

  7. 面试基础知识集合(python、计算机网络、操作系统、数据结构、数据库等杂记)

    python python _.__.__xx__之间的差别 python中range.xrange和randrange的区别 python中 =.copy.deepcopy的差别 python 继承 ...

  8. java基础(杂记)

    java基础夯实(杂记):1:创建实例对象可以通过无参的构造函数然后调用成员变量去初始化属性,也可以自己定义有参构造方法直接初始化属性,当属性为private时我们可以通过getset方法间接访问:2 ...

  9. elasticsearch基础知识杂记

    日常工作中用到的ES相关基础知识和总结.不足之处请指正,会持续更新. 1.集群的健康状况为 yellow 则表示全部主分片都正常运行(集群可以正常服务所有请求),但是 副本 分片没有全部处在正常状态. ...

随机推荐

  1. BZOJ2440: [中山市选2011]完全平方数 容斥原理_莫比乌斯函数

    emmm....... 数学题都不友好QAQ...... Code: #include <cstdio> #include <algorithm> #include <c ...

  2. node——模块分类,require执行顺序,require注意事项,原理

    node.js模块 在node.js开发中一个文件就可以认为是一个模块. 一.node.js模块分类 核心模块Code Module.内置模块.原生模块 fs http path url ... 所有 ...

  3. SASS概览

    1.安装: sass需要使用ruby,首先安装ruby,之后: gem install sass 编译: sass input.scss output.css 2.快速入门: 变量: .scss 变量 ...

  4. js中的变量提升和函数提升

    从上周开始,我所在的学习小组正式开始了angular的学习,angular是全面支持es6的,所以语法上和以前的angular有了很大的不同,比如变量声明时就抛弃了var,而选择了let和const: ...

  5. 洛谷 P1029 最大公约数和最小公倍数问题

    有两种做法 一种是gcd与lcm相乘后就是两个数的乘积,枚举第一个数,算出第二数,看最大公约数是不是题目给的. 第二种就lcm/gcd的答案为两个互质的数相乘.然后就枚举有多少组互质的数相乘等于lcm ...

  6. unity 支持圆形、切倒角和虚化UGUI Shader

    // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt ...

  7. C# .net IDE Rider入门

    话说史上最强IDE Visual Studio 所向披靡数十载尚无敌手,现在Intellij带着统一IDE界的目标来挑战VS的霸主地位.了解Rider后发现,哎哟亮点多多,还不错哦! Rider是一款 ...

  8. [terry笔记]GoldenGate_迁移同步_主库零停机

    ogg根据scn同步数据,源库零停机时间 本次实验与上次的区别:更加注重细节,几乎包含所有步骤,把我越到的坑都作出了说明.并且同步是由10g向11g进行同步,更加符合升级迁移需求. 如下是主要步骤: ...

  9. POJ 2183

    模拟题 #include <iostream> #include <cstdio> #include <algorithm> using namespace std ...

  10. CxImage内存方式转换图像

    最近,处于项目需要,需要将Bmp转换为JPEG格式.以前做过,采用的是GDI+的方式,该方式有一个极大地缺陷为无法实现跨平台处理.闲话少说,进入正题. CxImage cxImageBmp(pRGBB ...