答:异常处理分为三块try、catch、fi
ally。1Try块是监视区,其内放置一些正常实现编程功能的代码、资源清除的代码、状态维护(状态改变和状态恢复)的代码等。2Catch块捕获区,当try块出现异常时,如果异常类型与该区域期望的类型一致,则执行此区域的代码,可以进行状态恢复,也可以重新抛出异常。一个try块可以个catch块,也可以无catch块。3Fi
ally块作最后清理工作,在一个trycatch结构中,无论try是否抛出异常,无论catch是否破获到异常,如果有fi
ally块,在最后都会执行,通常在这里放置资源清理的代码。一个try结构可有fi
ally块,也可以没有。5请列举出在接口中可以定义的成员?答:可以定义方法、属性、事件和索引符,不能定义构造函数、运算符重载,成员不能有修饰符(virtual、static)6GC进行垃圾回收时的主要流程是?答:1标记:先假设所有对象都是垃圾,根据应用程序根Root遍历堆上的每一个引用对象,生成可达对象图,对于还在使用的对象(可达对象)进行标记
f(其实就是在对象同步索引块中开启一个标示位)。2清除:针对所有不可达对象进行清除操作,针对普通对象直接回收内存,
而对于实现了终结器的对象(实现了析构函数的对象)需要单独回收处理。清除之后,内存就会变得不连续了,就是步骤3的工作了。
3压缩:把剩下的对象转移到一个连续的内存,因为这些对象地址变了,还需要把那些Root跟指针的地址修改为移动后的新地址。
7在继承的方法中使用override和
ew有什么区别?答:override:1override是派生类用来重写基类中方法的;2override不能重写非虚方法和静态方法;3override只能重写用virtual、abstract、override修饰的方法;4不能使用修饰符
ew、static、virtual或abstract来修改override方法。
ew:1
ew是派生类用来隐藏基类中的方法的;也就是说在派生类中“看不到”基类中的方法;2如果要在派生类中隐藏(不是重写)基类中的方法,而没有使用
ew关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用
ew关键字;3派生类可以隐藏基类中的虚方法,也可以隐藏基类中的普通方法。4如果在派生类中用private来修饰
ew方法,那么只在该派生类中隐藏了基类中的方法,在该派生类之外,相当于没有隐藏基类中的方法;5如果在派生类中隐藏了基类中的方法,在该派生类的派生类中,将延续对该派生类对基类方法的隐藏。8装箱与拆箱在内存中分别是如何执行的?如何避免它们所带来的性能影响?r