A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本人看了 IO流,多线程和反射的视频,总是弄不太清楚,看了几遍也没什么效果,编程序一堆错误不能运行,谁能给我形象的解释下。弄个程序加上注释就最好了

2 个回复

倒序浏览
IO流?我还没看到哪个视频,但是以前搞过类似的功能,多少有点理解概念,
I 就是   IN
O 就是  OUT
中文来说IO,就是"输入输出",流的意思怎么解释呢,数据的传输过程如果用中文形象的比喻就是像在流动一样,所以用流来说数据的传输,所以有个词叫“数据流”
结合起来就是“输入输出流”
这里输入可以从键盘输入,从扫描仪输入,可以从鼠标输入,文件输入,网络上文件输入,话筒输入,这些都是输入数据的接口。
输出也很多,显示器,喇叭,打印机,3D打印机,文件。

这些设备输入的信息都会变成2进制的数据,被系统读取。就成为了IN数据流。
而显示在屏幕上或者打印出来,或者写出到文件的数据都形成了OUT数据流。

这么说就好理解了,
IO流有针对文件的,有针对设备的,有针对TCP,UDP这些网络协议的。是拿来控制你的程序的数据的写入写出方向的,也就是你的数据是要显示在屏幕上还是写到文件里还是打印到纸上,都是由你的IO流来控制。而Java我们通常使用的.System.out.pringln();是用的系统输出流,把输出定向到控制台,所以就打印显示在那个黑底白字的窗口内了。

多线程就更有用了,理解也很好理解,比如你做事情,你可能左手在插U盘,右手在拿鼠标刷新 “我的电脑 文件夹”
当这两件事同时做时你就实现了 多线程 工作。
你左手是一个线程,右手是一个线程。
左手做的事情是插U盘,右手做的是点鼠标。
你不可能左手同时插U盘又点鼠标,即使能做到,也是很麻烦的。

这时候就需要多线程了,每个线程在同一时间内完成不同的任务,而互不影响。

最主要的是不影响主线程,就是你的大脑,你的大脑或许这会儿在思考U盘里的宝贝数据该放到哪个文件夹里藏起来呢。。。

你的大脑是主线程,它创建了两个子线程,左手的任务和右手的任务。分别做不同的事情,这时大脑还能继续做别的事情。

你还能同时再创建两个子线程,左脚踢下机箱。右脚跺一下。

这4件事情你能同时做到而不影响你大脑继续思考哪个U盘里放的数据的问题。

当然CPU可以创建更多的线程,而人能同时做的事情是有限的。
CPU的线程同时执行是一种假象!!!

线程在执行时是以极小的单位时间完成的,是分时操作的,系统会按照优先级先执行优先级高的任务,后执行优先级低的任务,而每个线程的执行时间都是很短暂的,一直在不停的切换,
由于CPU的指令处理速度极快,所以分时处理多个线程在人类看来也是同时处理的多个线程。
关于分时操作系统这方面你可以百度了解,我也没那么深奥的知识,我只是了解,这里给你简单说一下。

反射,这个东西我还没学过,学会了再说了。。。
回复 使用道具 举报
学IO就要多动用自己的形象思维:在脑袋里想象两个管道(输入,输出),从哪输入?输出到哪?反射的话:用方立勋老师的话解释就是:去解剖类,然后把一个类的各个成分(成员)变成相对应的Java对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马