首页 技术 正文
技术 2022年11月15日
0 收藏 859 点赞 3,412 浏览 1937 个字

最近在准备面试,自己也顺带巩固了下基础,加上自己对码农的一些理解都写在这里了,水平不行,欢迎吐槽

//.NET基础

1.Class 和struct 区别

类是一种“引用类型”。创建类的对象时,对象赋值到的变量只保存对该内存的引用。将对象引用赋给新变量时,新变量引用的是原始对象。通过一个变量做出的更改将反映在另一个变量中,因为两者引用同一数据。

结构是一种值类型。创建结构时,结构赋值到的变量保存该结构的实际数据。将结构赋给新变量时,将复制该结构。因此,新变量和原始变量包含同一数据的两个不同的副本。对一个副本的更改不影响另一个副本。

2.值类型和引用类型:

常见的值类型: int, 在定义是必须初始化,分配在栈(Stack)上

常见的引用类型:string, 在定义时可以初始化为null, 分配在堆(Heap)上

3.装箱和拆箱

装箱:从值类型转为引用类型。装箱列子: int i=0; String s= (string)i;

拆箱:引用类型转化为值类型。拆箱例子: int i=0; Object obj=i; int j =(int)obj;

4. 异常的作用是什么?.NET BCL中有哪些常见的异常?在代码中您是如何捕获/处理异常的?在“catch (ex)”中,“throw”和“throw ex”有什么区别?您会如何设计异常的结构,什么情况下您会抛出异常?

Throw 和 Throw ex 差别

Throw 和 Throw ex 差别 http://www.cnblogs.com/JerryTian/archive/2012/09/24/2699459.html

5. Dispose ,Close, set object= null 区别?

从内存角度来看, 举个例子:

var frm1 = New Form(); //在内存 0x000022~0x0000088 开辟了一块内存放置frm1, 如果调用 frm.Close(); 则该内存区域扔被frm1占用,下次再frm.Open()就会很快。如果调用frm.Dispose() 方法则从释放这段内存,并立即调用GC回收这段内存。

frm =null; 则只是释放这段内存,等待GC回收。

这里顺便说下.NET提供的using语法, 它可确保在实现了IDisposeable接口的对象的引用超出作用域时,在该对象上自动调用Dispose方法。

Or just a general statement. With the connection object calling Close() will release the connection back into the pool. Calling Dispose() will call Close() and then set the connection string to null.

6.什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式?

.NET是一个微软的开发应用层程序的框架.CLI 是公共语言接口,CLR是公共语言运行时,IL是中间语言,JIT 即时编译? GC垃圾回收器,定是运行,回收没有被用的内存资源

7. 什么是扩展方法,能带来哪些好处?

扩展方法就是在不改变原有代码的情况下,给一个已经存在的类扩展一些方法。

8.List<int> 和 int[] 区别?

9.关于并行编程:

1.异步委托: 定义一个委托,将要异步之行的方法指向该委托,委托调用BeginInvoke来异步之行该方法(返回一个IAsyncResult的对象到主线程),可以判断IAsynResult的行为,或者直接之行一个回调方法来使用异步方法返回的IAsyncResult的结果。

2.Thread类:

前台线程和后台线程:

Thread类创建的线程总是前台线程(除非指定IsBackgroundThread = true),线程池创建的线程总是后台线程, 有时程序已经关掉,进程没有被杀掉就是因为UI线程结束了,但是创建的其他前台线程还没有结束,所以。。。。但是如果创建的是后台线程,则后台线程会随着前台线程的结束而结束。

3.ThreaPool

ThreadPool总是创建的后台线程,而且不能指定优先级,一般用于之行耗时比较小的任务。如果是耗时比较久,则创建Thread类的实例比较好。

10.关于性能优化:

自己总结的一点工作经验:

1.避免在迭代里查询数据库,这样会增加I/O

2.不用的非托管资源及时回收

//数据库

聚集索引和非聚集索引区别

聚集索引类似电话簿,数据按照聚集索引顺序排列,一个表只能有一个聚集索引,但该索引可包含多个列。

非聚集索引类

//Web

1.Authentication 与Authorization 区别

Authentication, “你是谁”的问题,Authorization “你能做什么“的问题。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,498
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,911
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,745
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,502
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,141
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,304