《C#与.NET程序员面试宝典》学习札记
第2章 .NET概述
2.1-6~ .Net Framework / CLR / IL / Assembly
- IL:中间语言代码,不同语言(如C#,VB)的基于CLR的编译器编译生成的中间语言字节码,不是计算机直接运行的机器码
- CLR:公共/通用语言运行库,运行中间语言代码,为不同语言提供统一运行的平台,集成服务(如内存管理,程序集加载,安全性,异常处理,线程同步等等)
- 程序集(Assembly):由中间语言代码封装而成的元数据集合,由CLR加载
- .Net Framework:支持多种语言的开发平台,包含CLR(支持多语言的核心运行环境)和.Net Framework类库
- 托管代码:即IL,Managed Code
- 非托管代码:该代码无法使用CLR提供的服务(如内存管理),只能直接编译成计算机直接运行的机器码;需要显式使用Windows SDK来完成内存管理等;C#可以创建托管或非托管程序
- JIT:实时编译,在第一次运行时才将程序集编译转换为本地机器码,具有跨平台特性
第3章 程序设计基础
22. 通过泛型可以解决装箱和拆箱的性能问题
- 装箱:将值类型转换为
object类型或由此值类型实现的任何接口类型的过程 - 拆箱:装箱的逆过程
23. 值类型与引用类型的区别
- 赋值区别:值类型赋值是创建一个新的同值对象,引用赋值是创建新的引用变量指向同一个值
- 内存分配:值类型在栈中创建,而引用类型在托管堆中创建
- 继承结构:值类型不能被继承,同时都继承于System.ValueType;引用类型则可以被继承,不继承于System.ValueType
28. C#的指针类型
- CLR支持三种指针类型:托管指针,非托管指针,非托管函数指针
- C#中需要放在unsafe代码块中使用指针
31. StringBuilder和String的差别
- String创建的对象实例是不可更改的,因此每次调用String方法的时候都会创建新的字符串(哪怕该字符串的值一直没有变过);但String是引用类型,不是值类型
- StringBuilder创建的对象则可以被更改,初始化的时候会创建初始大小以容纳字符串需要的内存,每次更新对象时会在相同的内存空间中修改或扩充,不会反复创建新的字符串对象
36. C#中String和string的区别:String是CLR中的类型关键字,而string是C#的类型关键字,在C#编译时会增加代码:using string = System.String
39. Array和ArrayList的区别:前者相当于数组,后者相当于链表
42. C#中is和as运算符的区别:is用于检查给定对象是否为与某个类型兼容,兼容则返回true;as则用于兼容引用类型之间的强制转换,如果无法转换则返回null
第4章 面向对象设计
46. C#中类和结构的区别:
- 类为引用类型,结构和值类型
- 类可以被其他类继承,结构不能被其他类或结构继承(但结构可以继承接口)
- 类有构造和析构函数,可以用protected修饰符;结构则没有,也不能用protected
49. 静态构造方法的特点:
- 每个类只能有一个静态构造方法,类构造函数前用static修饰(注意没有public)
- 静态构造方法不能有入参
- 静态构造方法不会被继承
- 静态构造方法是最先被执行的构造方法,且在静态成员初始化前执行
53. 委托与事件???
4.3-54~ 委托
待续。。。
《C#与.NET程序员面试宝典》学习札记的更多相关文章
- ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
更多参考:博客园笔记 :ASP.NET是什么 ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft.NET Framework中一套用于生成Web应用程序和 ...
- Android高薪之路-Android程序员面试宝典
Android高薪之路-Android程序员面试宝典
- 《JAVA 程序员面试宝典(第四版)》读书笔记之前言
工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过 ...
- 黑马程序员面试宝典(Java)Beta6.0免费下载
场景 JavaSE基础 面向对象特征以及理解 访问权限修饰符区别 理解clone对象 JavaSE语法 java有没有goto语句 &和&&的区别 如何跳出当前的多重嵌套循环? ...
- JAVA程序员面试宝典
程序员面试之葵花宝典 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面.抽象并不5. 打算了解全部问题 ...
- [Java程序员面试宝典]读书笔记
ClassLoader具备层次关系,且不止一种.不同的类装载器分布创建的同一个类的字节码数据属于完全不同的对象,没有任何关联 通过Class.forName(String className),能够动 ...
- 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念
1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...
- net 程序员面试宝典
第1部分 求职过程 ------------------------------------------------------------------------------------------ ...
- java程序员面试宝典之——Java 基础部分(1~10)
基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java"源文件中是否可以包 ...
随机推荐
- Ubuntu如何安装vncserver
Ubuntu上安装和配置vncserver,然后通过客户端进行连接,就能够使用图像界面的方式来运行上面的软件了. 1.使用apt-cache search vncserver命令搜索可以用来安装vnc ...
- SignalR在Asp.NetCore中的使用
SignalR简介 ASP.NET SignalR是为ASP.NET 开发人员提供的一个库,旨在为你的Web应用迅速简便的添加实时通信功能.这个Web通信功能是指:客户端可以实时从服务端代码拉取数据, ...
- wx:for获取 data-xxx 自定义的属性
今天在写wx:for循环时,在事件对象上e.target.dataset上一直拿不到自定义属性 data-id. 示例: <view wx:for='{{list}}' wx:key='{{it ...
- Python判断输入字符类型
"""从键盘上输入 一个字符,判断其字符类型.""" while True: char = input("请输入需要判断的字符:& ...
- java中文和unicode编码相互转换(转)
工具类代码如下: package aa.com; import java.io.UnsupportedEncodingException; public class UnicodeUtil { pub ...
- Java Trie字典树,前缀树
Trie查询每个条目的时间复杂度,和字典中一共有多少条无关. 时间复杂度为O(W) w为查询单词的长度 import java.util.TreeMap; public class Trie { pr ...
- Docker 的点点滴滴
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...
- 浏览器音频兼容和ffmpeg的音频转码使用
浏览器对各音/视频格式的支持问题 浏览器测试效果图 ffmpeg在音频格式转换,和从视频中提取音频的简单实用 1.百度搜索浏览器对于音频文件的兼容,排在前面的文章大部分是复制粘贴很久以前的文章,容易误 ...
- python_web框架
一.web框架 web框架: 自己完成socket的web框架:如,Tornado等 由WSGI完成socket的web框架:如,Django.flash等 两种实现过程: 第二种WSGI方式的,由于 ...
- 本机是wifi,虚拟机无法连接外网问题
1.首先看自己本机的各网口是否都启动. 2.在虚拟机中的虚拟网络编辑器中,选择桥接模式,并选择对应第一步的WLAN端口. 3.在虚拟机设置中选择自定义,选择第二部中选的VMnet2即可上网了.