概述
学习心得:
本周学习了异常和多线程,在学习过程中更多的是体会其中的思想,并在一些可能比较有限的例子中加以运用,当然更大的挑战还在后面,目前理解的内容还不算深,不过今天也是为以后打下基础。
程序中的问题可以分为我们无法处理的错误,和可以进行处理的异常,我们本周主要讨论的是可以处理的Exception,当然其中又包含了可处理可不处理的运行时异常和必须处理的受查异常,翻看API文档就会发现这两种异常下又会分为很多子类,感觉以后的学习任重道远啊。受查异常既然必须处理,他的处理方式实际上可以分为两种,一种是消极的,就是通过throws Exception向上传递异常,最终由JVM通过默认方式处理,当然更好的方式就是积极处理,即通过try{}catch(){}来捕获异常并处理,分情况进行使用即可。
另外我们还学习了非常重要多线程,也是围绕着线程安全的问题进行讨论,为了解决线程并发访问临界资源可能会导致原子结构被破坏,数据出现异常的问题,从而学习了同步锁synchronized的应用,在我看来,同步锁类似于卵细胞受精过程,一旦一个精子进入卵细胞,她就会释放一种抑制其他精子进入的物质,这里可以把同步代码块或者同步方法看成卵细胞,线程看成精子,一旦一个线程进入同步代码块,其他线程就必须在外面等着,直到这个线程执行完原子操作,其他线程才可以进入。
除了synchronized这种隐式存在的同步锁,我们还学习了显示存在的Lock接口,这种锁的除了显示出加锁以及释放锁的优点外,还有更加灵活的优点,同时还学习了它的实现类,ReentrantLock,ReentrantReadWriteLock.
学习了多线程以后呢,发现还是存在了一个现实问题:线程是宝贵资源,一个占用1M内存,反复创建和销毁会增加资源开销,造成程序性能下降,解决方案就是创建线程池,这就引入了我们的高级多线程,它可以可设定线程分配数量上限,将预先创建的线程对象存入池中,并重用线程池中的线程对象,避免频繁的创建和销毁。
学到现在,只想感叹一句,只有想不到,没有java做不到。
总结:
本周学习掌握85%的内容,对于重入锁,读写锁还有线程安全集合底层是如何实现线程安全,以及和不安全线程对比那一刻块内容掌握尚有欠缺,通过观看视频已经大体理解,当然还是需要时间沉淀的,另外最近确实学习会有点疲倦的感觉了,目前会通过指定比较小,而且易于实现的学习目标,并留出时间放松(玩游戏)的方式解决,放缓一点学习节奏,然后会慢慢重回状态。
最后
以上就是勤劳书包为你收集整理的java学习第六周--心得+总结的全部内容,希望文章能够帮你解决java学习第六周--心得+总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复