Java零基础入门 - 第四章:Java语言高级
分享给朋友:
1.多线程基础与JUC工具
理解线程的概念-JAVA多线程基础与JUC工具

时长:35分22秒

线程的创建与启动01-JAVA多线程基础与JUC工具

时长:25分44秒

线程的创建与启动02-JAVA多线程基础与JUC工具

时长:25分17秒

线程的生命周期-JAVA多线程基础与JUC工具

时长:15分48秒

线程的join方法-JAVA多线程基础与JUC工具

时长:25分26秒

后台线程-JAVA多线程基础与JUC工具

时长:21分32秒

sleep方法-JAVA多线程基础与JUC工具

时长:21分25秒

线程优先级和yield方法-JAVA多线程基础与JUC工具

时长:23分41秒

理解线程安全问题-JAVA多线程基础与JUC工具

时长:20分59秒

线程同步方式01-JAVA多线程基础与JUC工具

时长:22分55秒

线程同步方式02-JAVA多线程基础与JUC工具

时长:16分45秒

线程同步方式03-JAVA多线程基础与JUC工具

时长:15分19秒

线程同步方式04-JAVA多线程基础与JUC工具

时长:21分36秒

锁顺序死锁01-JAVA多线程基础与JUC工具

时长:15分19秒

锁顺序死锁02-JAVA多线程基础与JUC工具

时长:17分28秒

锁顺序的解决办法-JAVA多线程基础与JUC工具

时长:18分09秒

对象协作之间的死锁-JAVA多线程基础与JUC工具

时长:45分21秒

使用定时锁-JAVA多线程基础与JUC工具

时长:16分10秒

volatile关键字与内存可见性-JAVA多线程基础与JUC工具

时长:44分16秒

原子性操作问题的解决-JAVA多线程基础与JUC工具

时长:32分57秒

CAS算法的实现逻辑-JAVA多线程基础与JUC工具

时长:16分56秒

JUC里的同步容器类-JAVA多线程基础与JUC工具

时长:19分47秒

CountDownLatch类的使用-JAVA多线程基础与JUC工具

时长:19分55秒

Semaphore类的使用-JAVA多线程基础与JUC工具

时长:17分09秒

CyclicBarrier类的使用-JAVA多线程基础与JUC工具

时长:17分02秒

JUC线程交换器的用法-JAVA多线程基础与JUC工具

时长:17分48秒

线程八锁-JAVA多线程基础与JUC工具

时长:19分18秒

线程安全的单例模式01-JAVA多线程基础与JUC工具

时长:22分35秒

线程安全的单例模式02-JAVA多线程基础与JUC工具

时长:14分14秒

线程通信生产者与消费者模式-JAVA多线程基础与JUC工具

时长:12分58秒

使用Object方法实现线程通信-JAVA多线程基础与JUC工具

时长:29分02秒

使用Condition实现线程通信-JAVA多线程基础与JUC工具

时长:11分28秒

线程控制方法补充-JAVA多线程基础与JUC工具

时长:22分30秒

线程程序交替-JAVA多线程基础与JUC工具

时长:13分54秒

线程池的生命周期-JAVA多线程基础与JUC工具

时长:21分23秒

使用线程池01-JAVA多线程基础与JUC工具

时长:32分30秒

使用线程池02-JAVA多线程基础与JUC工具

时长:08分50秒

使用线程池03-JAVA多线程基础与JUC工具

时长:08分32秒

读写锁01-JAVA多线程基础与JUC工具

时长:22分58秒

读写锁02-JAVA多线程基础与JUC工具

时长:38分58秒

ForkJoin工具类的使用01-JAVA多线程基础与JUC工具

时长:30分04秒

ForkJoin工具类的使用02-JAVA多线程基础与JUC工具

时长:24分45秒

2.IO模型
File类01-JAVA之IO模型与NIO入门

时长:32分54秒

File类02-JAVA之IO模型与NIO入门

时长:19分23秒

File类03-JAVA之IO模型与NIO入门

时长:17分07秒

File类04-JAVA之IO模型与NIO入门

时长:30分29秒

理解JAVAIO流-JAVA之IO模型与NIO入门

时长:25分47秒

认识输入输出流基类方法-JAVA之IO模型与NIO入门

时长:23分24秒

IO流体系和文件输入流-JAVA之IO模型与NIO入门

时长:34分05秒

文件输出流-JAVA之IO模型与NIO入门

时长:09分17秒

数组流01-JAVA之IO模型与NIO入门

时长:26分18秒

数组流02-JAVA之IO模型与NIO入门

时长:15分06秒

管道流的使用-JAVA之IO模型与NIO入门

时长:29分57秒

字符串流01-JAVA之IO模型与NIO入门

时长:22分30秒

字符串流02-JAVA之IO模型与NIO入门

时长:17分38秒

缓冲流-JAVA之IO模型与NIO入门

时长:15分15秒

转换流01-JAVA之IO模型与NIO入门

时长:15分39秒

转换流02-JAVA之IO模型与NIO入门

时长:11分22秒

对象流-JAVA之IO模型与NIO入门

时长:22分46秒

第二组抽象基类01-JAVA之IO模型与NIO入门

时长:22分37秒

第二组抽象基类02-JAVA之IO模型与NIO入门

时长:05分42秒

打印流-JAVA之IO模型与NIO入门

时长:10分27秒

推回输入流-JAVA之IO模型与NIO入门

时长:24分19秒

数据流-JAVA之IO模型与NIO入门

时长:08分25秒

重定向标准输入和输出-JAVA之IO模型与NIO入门

时长:15分36秒

Java程序对子进程的读写01-JAVA之IO模型与NIO入门

时长:10分57秒

Java程序对子进程的读写02-JAVA之IO模型与NIO入门

时长:19分38秒

RandomAccessFile类-JAVA之IO模型与NIO入门

时长:34分37秒

对象序列化01-JAVA之IO模型与NIO入门

时长:28分02秒

对象序列化02-JAVA之IO模型与NIO入门

时长:23分01秒

单例模式的对象序列化问题-JAVA之IO模型与NIO入门

时长:18分03秒

对象序列化的版本号-JAVA之IO模型与NIO入门

时长:14分17秒

序列化的安全问题01-JAVA之IO模型与NIO入门

时长:18分45秒

序列化的安全问题02-JAVA之IO模型与NIO入门

时长:23分34秒

序列化的安全问题03-JAVA之IO模型与NIO入门

时长:23分46秒

3.NIO入门
BIO和NIO的工作模式对比-JAVA之IO模型与NIO入门

时长:22分31秒

NIO的基本介绍-JAVA之IO模型与NIO入门

时长:18分20秒

使用文件通道读取文件-JAVA之IO模型与NIO入门

时长:24分30秒

文件通道的写操作-JAVA之IO模型与NIO入门

时长:24分34秒

缓冲区的基本属性和方法介绍-JAVA之IO模型与NIO入门

时长:23分53秒

缓冲区的基本方法演示-JAVA之IO模型与NIO入门

时长:18分59秒

缓冲区方法加强01-JAVA之IO模型与NIO入门

时长:22分17秒

缓冲区方法加强02-JAVA之IO模型与NIO入门

时长:21分01秒

缓冲区方法加强03-JAVA之IO模型与NIO入门

时长:09分52秒

缓冲区的创建方式-JAVA之IO模型与NIO入门

时长:17分10秒

视图缓冲区-JAVA之IO模型与NIO入门

时长:28分32秒

字节缓冲区独特之处-JAVA之IO模型与NIO入门

时长:24分03秒

直接缓冲区01-JAVA之IO模型与NIO入门

时长:33分26秒

直接缓冲区02-JAVA之IO模型与NIO入门

时长:22分43秒

直接缓冲区03-JAVA之IO模型与NIO入门

时长:17分04秒

内存管理机制-JAVA之IO模型与NIO入门

时长:34分39秒

深入梳理直接缓冲区的实现逻辑-JAVA之IO模型与NIO入门

时长:20分42秒

FileChanel的map方法01-JAVA之IO模型与NIO入门

时长:20分18秒

FileChanel的map方法02-JAVA之IO模型与NIO入门

时长:28分56秒

选择器01-JAVA之IO模型与NIO入门

时长:19分58秒

选择器02-JAVA之IO模型与NIO入门

时长:12分29秒

选择器03-JAVA之IO模型与NIO入门

时长:11分38秒

选择器04-JAVA之IO模型与NIO入门

时长:15分27秒

选择器05-JAVA之IO模型与NIO入门

时长:41分38秒

分数、聚集和通道间的数据传输-JAVA之IO模型与NIO入门

时长:15分29秒

字符集编码和Charset工具-JAVA之IO模型与NIO入门

时长:31分37秒

NIO的Pipe工具-JAVA之IO模型与NIO入门

时长:11分36秒

AIO的Path接口-JAVA之IO模型与NIO入门

时长:12分17秒

Files对象01-JAVA之IO模型与NIO入门

时长:19分42秒

Files对象02-JAVA之IO模型与NIO入门

时长:13分15秒

Files对象03-JAVA之IO模型与NIO入门

时长:10分22秒

Files对象04-JAVA之IO模型与NIO入门

时长:08分45秒

异步通道文件01-JAVA之IO模型与NIO入门

时长:23分48秒

异步通道文件02-JAVA之IO模型与NIO入门

时长:12分14秒

4.网络编程
计算机网络的基本概念-JAVA之网络编程与NIO、AIO进阶

时长:21分54秒

IP协议-JAVA之网络编程与NIO、AIO进阶

时长:25分47秒

TCP协议--JAVA之网络编程与NIO、AIO进阶

时长:24分35秒

UDP协议-JAVA之网络编程与NIO、AIO进阶

时长:10分53秒

HTTP协议01-JAVA之网络编程与NIO、AIO进阶

时长:16分26秒

HTTP协议02-JAVA之网络编程与NIO、AIO进阶

时长:28分54秒

HTTP协议03-JAVA之网络编程与NIO、AIO进阶

时长:25分44秒

HTTP协议04-JAVA之网络编程与NIO、AIO进阶

时长:24分08秒

InetAddress-JAVA之网络编程与NIO、AIO进阶

时长:14分08秒

非法URL字符的编码和解码-JAVA之网络编程与NIO、AIO进阶

时长:15分48秒

URL和URL链接类-JAVA之网络编程与NIO、AIO进阶

时长:20分59秒

多线程下载文件01-JAVA之网络编程与NIO、AIO进阶

时长:38分20秒

多线程下载文件02-JAVA之网络编程与NIO、AIO进阶

时长:23分01秒

编程的形式发送POST请求的案例-JAVA之网络编程与NIO、AIO进阶

时长:27分20秒

对第二单元的总结-JAVA之网络编程与NIO、AIO进阶

时长:12分45秒

基于TCP的网络编程的流程-JAVA之网络编程与NIO、AIO进阶

时长:08分05秒

套接字类的方法-JAVA之网络编程与NIO、AIO进阶

时长:22分55秒

基于TCP协议的通信例子-JAVA之网络编程与NIO、AIO进阶

时长:18分30秒

基于BIO实现聊天室01-JAVA之网络编程与NIO、AIO进阶

时长:29分49秒

基于BIO实现聊天室02-JAVA之网络编程与NIO、AIO进阶

时长:20分16秒

基于BIO实现聊天室03-JAVA之网络编程与NIO、AIO进阶

时长:34分45秒

基于BIO实现聊天室04-JAVA之网络编程与NIO、AIO进阶

时长:40分04秒

基于BIO实现聊天室05-JAVA之网络编程与NIO、AIO进阶

时长:23分19秒

基于BIO实现聊天室06-JAVA之网络编程与NIO、AIO进阶

时长:14分55秒

基于BIO实现聊天室07-JAVA之网络编程与NIO、AIO进阶

时长:23分29秒

基于NIO实现聊天室01-JAVA之网络编程与NIO、AIO进阶

时长:26分04秒

基于NIO实现聊天室02-JAVA之网络编程与NIO、AIO进阶

时长:24分23秒

基于NIO实现聊天室03-JAVA之网络编程与NIO、AIO进阶

时长:36分27秒

基于NIO实现聊天室04-JAVA之网络编程与NIO、AIO进阶

时长:11分32秒

基于NIO实现聊天室05-JAVA之网络编程与NIO、AIO进阶

时长:14分56秒

基于NIO实现聊天室6-JAVA之网络编程与NIO、AIO进阶

时长:23分43秒

基于NIO实现聊天室7-JAVA之网络编程与NIO、AIO进阶

时长:07分41秒

基于NIO实现聊天室8-JAVA之网络编程与NIO、AIO进阶

时长:16分23秒

基于AIO实现聊天室1-JAVA之网络编程与NIO、AIO进阶

时长:26分51秒

基于AIO实现聊天室2-JAVA之网络编程与NIO、AIO进阶

时长:24分32秒

基于AIO实现聊天室3-JAVA之网络编程与NIO、AIO进阶

时长:40分22秒

基于AIO实现聊天室4-JAVA之网络编程与NIO、AIO进阶

时长:16分48秒

基于AIO实现聊天室5-JAVA之网络编程与NIO、AIO进阶

时长:17分03秒

基于AIO实现聊天室6-JAVA之网络编程与NIO、AIO进阶

时长:15分47秒

基于AIO实现聊天室7-JAVA之网络编程与NIO、AIO进阶

时长:16分09秒

基于AIO实现聊天室8-JAVA之网络编程与NIO、AIO进阶

时长:20分27秒

基于UDP协议的网络编程-JAVA之网络编程与NIO、AIO进阶

时长:18分08秒

基于UDP协议的简单实例-JAVA之网络编程与NIO、AIO进阶

时长:24分01秒

基于UDP协议的NIO编程-JAVA之网络编程与NIO、AIO进阶

时长:23分48秒

多点广播实现原理-JAVA之网络编程与NIO、AIO进阶

时长:12分12秒

多点广播和UDP的综合实例1-JAVA之网络编程与NIO、AIO进阶

时长:36分23秒

多点广播和UDP的综合实例2-JAVA之网络编程与NIO、AIO进阶

时长:36分09秒

多点广播和UDP的综合实例3-JAVA之网络编程与NIO、AIO进阶

时长:24分18秒

多点广播和UDP的综合例子4-JAVA之网络编程与NIO、AIO进阶

时长:19分55秒

多点广播和UDP的综合例子5-JAVA之网络编程与NIO、AIO进阶

时长:23分32秒

多点广播和UDP的综合例子6-JAVA之网络编程与NIO、AIO进阶

时长:16分10秒

多点广播和UDP的综合例子7-JAVA之网络编程与NIO、AIO进阶

时长:12分41秒

使用代理服务器-JAVA之网络编程与NIO、AIO进阶

时长:26分30秒

按住画面移动小窗

下载
多线程下载文件02-JAVA之网络编程与NIO、AIO进阶
虎课APP支持视频下载
扫码下载/打开虎课APP
支持视频下载,随时随地学
手机观看
扫一扫,手机继续学
扫码下载/打开虎课APP
支持视频下载,随时随地学
多线程下载文件02-JAVA之网络编程与NIO、AIO进阶_虎课网
记笔记

全新AI视频总结上线

一键节省你80%学习时间

视频暂不支持AI视频总结
AI视频总结
编辑完成后,记得点我~

2393

已学

101小时

时长

266

配套素材

完课证书

¥199(¥299)

全站通VIP免费畅学

立即购买
学员评价 (0条评论)视频字幕
您需要学习后才可以评价, 立即学习
评论列表
仅显示有内容的评论
仅显示带图评论
排序方式:

接着上节课的内容 ,我们接下来继续 ,继续实现我们的这个例子 ,那么接下来我们应该去实现我们这个内部的 ,线程类 ,那么内部线程类里边 我们属性这一块 ,我们这里边已经定义好了三个属性 ,每条线程它开始下载的那个文件块的起始位置 ,和它负责的下载的文件的大小 ,以及它下载下来的数据存放的这个 ,文件对应的文件块 ,那么这里边 我们还要定义一个属性 ,定义一个什么属性 ,我们要记录 ,记录我们每条线程 ,已经下载下来的这个文件的字节数 ,然后我们这边private ,int length ,这是每条线程已经下载下来的字节数 ,我要做一个累计做一个记录 ,好吧 ,然后接下来我就Alt+Enter ,我们要覆盖 ,覆盖我们的父类当中的run方法 ,覆盖我们的线程方法 ,好 ,在线程方法当中来这个真正实现下载 ,那么真正在这里边实现下载 ,首先第一步做什么 ,第一步当然是连接上目标文件 ,连接上目标文件 ,连接上目标文件跟我们获取文件大小的这一块 ,是一样的 ,所以说我们直接把这一块 ,直接把这一块 干什么 ,把它拿下来就可以了 ,所以这边 来 直接把这一块拿下来 ,Ctrl+C 好 ,然后在这里边复制 ,

当然这个需要tryCatch ,所以说我们把这一块的代码全部的放到try ,这个你就不认真了 ,因为是在线程的执行体里边 ,线程的执行体里面 ,所以说我们把这个try 然后 catch ,然后这边Exception ,这边e.print ,e.print ,好吧 ,那么这边把这个代码全部放在这里头 ,Ctrl+Shift+F 格式化一下 ,来 这个 把它拿过来 ,看到没有 ,这样子写 ,这样子写的话 ,这样子就连接上了 ,但这个可以省略 ,可以省略 我在这边还是把它写出来 ,你们 ,实际上我们真正的项目当中这块我一般是不写的 ,如果是讲课 ,我这边还是把它写完整点 ,只不过说我告诉你这句话可以省略 ,那么这里边连接上了目标文件以后 ,我们就可以从目标文件当中拉我的数据 ,怎么拉 conn.getInputStream ,这就把目标文件的数据拿下来 ,拿下来以后 放到了我的输入流里边 ,这个Input ,InputStream in 就放到了这里边了 ,就拿到了这个 ,拿到了这个远程的这个文件对应的这个输入流 ,那么接下来我们就可以去从输入流里边去拿数据 ,那么输入流里面去拿数据 ,因为每条线程它负责的是一个文件块 ,所以说我们要把这个指针 把这个输入流的指针 ,把指针要跳到该线程 ,该线程负责下载的那个位置 ,所以这边我们in ,in. ,输入流跳转这个指针 ,

我们是用in.skip方法 ,然后这边跳到this.startPos ,开始下载的这个位置 ,看到没有 ,跳到这个位置 ,跳到这个位置以后 ,我们就可以从输入流里边去获取数据了 ,来 byte ,来一个缓冲区 buffer ,等于new byte ,new一个byte ,然后1024 ,好 来一个缓冲区 ,然后这个 int hasRead ,Read 等于0 ,然后这个while 注意这个while这个条件 ,就跟我们普通的从输入流里面读数据 有一点小区别 ,怎么样的小区别 ,来 ,我们还是画一下图 ,我们的这个文件 目标文件 ,比如说500K 500个字节 ,那么5条线程去下载的话 ,那么我们每条线程下载的这个数据 ,大概是这样子的 ,第一条线程这个下标是0 ,那么它开始下载的位置 是什么 ,是 首先这个块是500除以5条线程 ,再加1 ,所以说是101 ,那么第一条线程它下载的这个 ,文件块的开始位置是0 ,然后这个是0×101 ,所以说是0 ,然后下载的最后的这个位置是100 ,因为我第二条线程它下载的开始位置是101 ,101 ,那么第三条线程对应的就是202 ,第四条线程对应的就是303 ,然后第5条线程 ,第5条线程 01234 对应的就是404 ,但是我总共的这个文件的大小只有500k ,

500个字节 ,所以说第一条线程下载是0-100 ,第二条线程是101到201 ,那第三条线程是202-302 ,看到没有 ,第四条线程是303-403 ,然后最后一条线程是404开始到500 ,这个总共字节大小是500 ,那么最后一个字节对应的这个下标应该是499 ,所以说这里边是这样子 ,那么前面的0123 ,前面4条线程下载的量都是101个字节 ,101个字节 ,那么最后一个线程有没有101个字节 没有 ,没有 所以说我们在这里边 你读取数据的时候 ,你要考虑到这种情况 ,同学们 既要考虑到这种情况 ,又要考虑到我线程下载的字节数量 ,是101这个上限 ,你不能下多了 ,当然你也不能够无中生有 ,所以两种情况都要考虑到 ,那么这两种情况对应的这个下载的 ,这个从输入流里面去取数据的条件就是两个 ,一个是什么 ,一个是我们下载的这个长度 ,这个length ,下载的这个文件的 已下载的这个文件的长度 ,它要小于我们当前线程 ,负责下载的长度 ,要小于它 ,看见没有 要小于当前线程负责下载的这个长度 ,你不能够比你当前线程负责下载的长度还要大 ,其次 & 我们如果说就像我刚才例子当中 ,第5条线程 ,它已经把这个文件全部都读完了 ,虽然说它不足 ,我这边负责下载的这个长度 ,但是它已经把这个文件全读完了 ,我也要终止这个读取 ,

所以说这里边还是有这么一个不等于-1 ,等于-1就表示整个文件都读完了 ,那就没必要再读了 ,所以这边hasRead ,hasRead等于什么 ,等于我们的输入流Read ,然后buffer ,所以说这里边 我们这个循环条件是两个条件 ,一个是我当前线程下载的长度 ,你不能够比 ,这条线程负责下载的这个总长度还要长 ,其次就是如果说 ,如果哪怕是我这里边这个 ,哪怕是我的长度不足 ,我这边 ,不足我的这个负责的这个线程 ,但是这个线程负责下载的大小 ,但是我这边文件已经读完了 ,我也要终止 ,所以说这边是两个条件 ,你要理解 ,要理解 ,好吧 ,那么这里边 循环体里边就简单了 ,我把读出来的数据 ,往我的当前线程负责下载的文件块里边送 就完了 ,写到我当前文件块 ,写到我的currentPart里边 ,写进去write ,然后buffer ,那么这边是0到hasRead ,0到hasRead ,看到没有 ,是把我这个读到的这个数据 ,

登录后查看更多
PHP开发入门
共 249 节课
Python爬虫学习
共 113 节课
计算机二级-C语言
共 151 节课
Tableau数据分析师
共 39 节课
前端开发框架及工具
共 190 节课
已是第一张图了
已是最后一张图了
记笔记

导出笔记

笔记导出历史

00:00

0/12
确定保存
笔记导出历史导出完成的笔记将保留1天,如有需求请及时下载
课程名称
导出时间
文件大小
状态
操作
AI视频总结
AI正在分析视频,请稍等…
AI总结遇到了一些问题 点击重新获取
点击重新获取
成为全站通VIP 查看完整AI总结
复制

职业路径建议意见

请选择你对职业路径课程的满意程度

请选择你对职业路径课程的满意程度

请填写关于职业路径的建议意见:

同学,小虎知道你非常努力的想学习!

老师录制课程真的也很辛苦

赞助一下吧

确定学习吗?

您每天可免费学习一个教程。

成为VIP可无限学习 !

成为VIP吧!

成为VIP吧!

您已经免费学习 1 个教程 !

我们录制教程很努力的,赞助下吧 !

升级VIP吧!

您已经学习 5 个教程啦!

我们录制教程很努力的,赞助升级下吧 !

您已经累计下载5个源文件


您在当前分类下不是VIP,赞助VIP享受无限下载


您已经累计下载5个素材文件


您在当前分类下不是VIP,赞助VIP享受无限下载


您已经累计下载5个源文件


您在当前分类下不是VIP,赞助VIP享受无限下载


您已经累计观看5个图文教程


您在当前分类下不是VIP,赞助VIP享受无限观看


学习后才能评价哦!

获得30虎课币

评论提交成功,将在审核通过后显示

×

下载素材/源文件:

收藏成功
取消成功
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习90000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了26,258
并提交了203份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 90000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证