我是靠谱客的博主 任性热狗,最近开发中收集的这篇文章主要介绍【博学谷学习记录】超强总结,用心分享 | 第3周:Java基础学习中初学者常见错误(3)1.多态的理解2.IO流3.多线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本周进行了JavaSE进阶部分的学习,其中一些常见的错误和误区整理如下。

1.多态的理解

Cat是Animal的子类,当把Cat对象赋给Animal类的变量时,就会出现多态的表现形式。

Animal a = Cat c;

对于这种情况,其实可以按照“容器”和“内容物”来类比。把变量看成是装在数据的“容器”,而相应的对象是包装好数据的“内容物”。

在没有多态之前,容器和内容物是一一匹配的,可以看成是大小刚好,形状也一致的。但在出现继承之后,子类就会从父类继承一部分内容,进而形成自己的独有的内容物。

通常父类的容器要比子类的容器要大,所以子类的内容物放到父类的容器里是没有问题的。如果想要把装在父类容器里的内容物,重新放到和自己大小相称的子类容器中(向下转型),就需要给出特定的指令才可以。

Animal a = Cat c;
Cat c1 = (Cat) a;

按照“容器”和“内容物”来理解多态,能更加形象的知道里面的区别。

2.IO流

IO流当中,涉及到字节流和字符流,并且每个流当中,还有对应的缓冲流,记起来不太容易。

首先要区分,字符流是读写文字的,所以结尾都是Reader和Writer,字节流是读取纯数据的,就是正常的“流”,结尾都是Stream。

其次,缓冲流只是一种优化手段,并不是必须的。相当于在每种流外面,又包裹了一层,所以就需要内外层的结尾要一样(Stream 包裹 Stream, Reader包裹Reader)

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("test.txt"));

至于转换流,就是Stream和Reader同时存在的流,可以实现字符流和字节流的相互转换,方便后续的操作。

所以只要知道他们之间的关系,就不需要死记硬背里面的关键词了。

3.多线程

创造多线程的方式有三种:Thread,Runnable,Callable。

前两种用的比较多,而且理解起来也相对更简单,因为有对应的比喻。Thread可以看成是一条条公路,而Runnable可以看成是跑在上面的车(具体代码)。

如果某个类想要成为多线程,可以继承Thread,然后每创建一个对象,相当于新建了一个公路,每条公路上的代码就能同时运行了。但这有一个弊端,就是代码和公路是绑定的,每条公路只能跑自己的代码。

如果是实现了Runnable接口的类,可以单独定义其中运行的代码,相当于把车和公路分离了。如果想要这辆车在不同的公路上运行,就可以新建一条条空白的公路,然后把车放进去,就可以并行的跑了。

利用公路和车的比喻,可以更好的理解多线程的意义。

最后

以上就是任性热狗为你收集整理的【博学谷学习记录】超强总结,用心分享 | 第3周:Java基础学习中初学者常见错误(3)1.多态的理解2.IO流3.多线程的全部内容,希望文章能够帮你解决【博学谷学习记录】超强总结,用心分享 | 第3周:Java基础学习中初学者常见错误(3)1.多态的理解2.IO流3.多线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部