Java学习心得(六)

本周主要学习了异常与线程。
前期的学习过程中,一直以为,程序报错的红色字符是一个独立的监测机制产生的,通过对异常的学习才恍然大悟,原来也是JDK中所定义类的一部分。
异常时运行程序中出现的特殊情况,任何的程序都可能存在未知的问题、错误。不进行正确的处理,会造成不必要的损失。异常可以分为受查异常,运行异常。受查异常:throws声明异常,声明位置:修饰在方法参数列表的后端。运行时异常:因其可处理,可不处理,无需声明。异常可以自动抛出,交给虚拟机处理,也可手动抛出,throw new异常类型(“实际参数”)。
第二部分是线程,单核CPU在任何时间点上,只能运行一个进程;宏观并行,微观串行。控制计算机在不同的时间节点对进程的调度,是非常有意义的一件事。线程是由CPU时间片、运行数据和逻辑代码组成。线程可以通过,继承extends Thread和实现Runnable接口来实现。为了对线程进行调度,引入了一些方法,如:休眠、放弃、结合等。有些代码块是不能够分开执行的,这就需要用到锁,synchronized 和 lock,当一个线程获得锁之后,需要执行完同步代码块中的内容,才允许它被下一次竞争。Lock 的应用比synchronized更加的广泛。在锁中,又引入了通信线程,灵活的释放线程。
在高级多线程中,首先是线程池的概念,它是线程容器,可设定线程分配的数量上限。还有一个Callable接口,与Runnable接口类似,JDK5加入,具有泛型返回值。除此之外,还学习了线程安全版的ArrayList 、Set、Map,通过对底层代码的加锁,替换,达到线程上更加安全,使用上无差异的效果。最后是Queue接口,Collection的子接口,表示队列FIFO。
这一周学习了好多接口和类,需要加强练习,达到熟练使用。此外还需要知道加强版线程版的类是怎样实现的。

发布了33 篇原创文章 · 获赞 3 · 访问量 904

猜你喜欢

转载自blog.csdn.net/qq_44952731/article/details/104868852
今日推荐