首先简要说明一下进程和线程的关系。理解这两个概念对于学习计算机非常重要。
cpu执行的是进程中的线程。线程是并行执行的(异步)。一个进程包含多个线程,最少包含一个线程(主线程,UI线程)。进程中变量是不共享的,但线程是共享的。对于线程中的变量,哪个线程中的方法调用了这个变量,这个变量就属于哪个线程。
泛型是面向对象程序设计中的一个非常重要的概念。泛型程序设计是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
例如,ArrayList<E> E就是泛型。 这种不确定的数据类型需要在使用这个类的时候才能够确定出来。泛型可以省略,如果省略,默认泛型是Object类型。泛型的使用有两种好处:一是省略了强制类型转换的代码,二是可以在编译阶段发现程序的问题。
下面讲一下委托。委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。委托是一个引用类型,所以它具有引用类型所具有的通性。它保存的不是实际值,而是保存对存储在托管堆中的对象的引用。
C#中的委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为,委托方法的使用可以像其他任何方法一样具有参数和返回值。委托对象能被传递给调用该方法引用的代码而无须知道哪个方法将在编译时被调用。
最后说说异常。异常就是一种对象,表示阻止程序正常运行的错误或情况。
在程序运行的过程中,如果JVM检测到一个不可能执行的操作,就会出现运行时错误。在Java中,运行时错误会作为异常抛出。如果异常没有被处理,程序将会非正常终止。
异常处理-是程序能够继续运行或者优雅地终止。
方法抛出异常,调用者可以捕获及处理该异常:恢复正常的程序运行;进行日志处理;以某种方式提醒用户(错误提示,对话框等)。
我对异常及异常处理的理解就是:小病要治,不然就无法寿终正寝。