File
相对路径和绝对路径的区别:
相对路径不带盘符,绝对路径带盘符
小知识点:1KB=1024字节,1MB=1024KB,1GB=1024MB;
File对象就表示一个路径,可也是文件的路径,也可以是文件夹的路径
这个路径可以是存在的也可以是不存在的。
三种构造方法:
public File(String path)//把字符串表示的路径变成FIie对象
public File (String parent,String child)//把父级和子级进行拼接
public File (File parent String child)//把父级和子级拼接
常见成员方法:
File中最重要的内容:
获取并遍历:
public File [] listFiles();//获取当前路径下的所有内容//返回类型是一个File类型的数组
代码实战:
重点:
当调用者File表示的路径不存在时,返回Null
当调用者File表示的路径时文件的时候,返回Null
当调用者File表示的路径是一个空文件夹的时候返回一个长度为0的数组
当调用者File表示的路径有内容的文件夹的时候,讲里面所有的文件和文件夹的路径放在File数组中返回
当调用者File表示的路径是一个隐藏文件的文件夹时,讲里面所有的文件和文件夹的路径放在File数组中返回,包含隐藏文件
当调用者File表示的路径是需要权限才可以访问的文件夹时,返回Null
多线程
概念
线程:
线程时操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位
进程:
进程是程序的级别执行实体,每个在运行的软件都是一个进程,而软件中的各个在运行的功能为线程
线程简单理解:
应用软件中相互独立,可以同时运行的功能。
多线程的作用:
提高效率。
并发和并行
并发:在同一时刻,有多个指令在单个CPU上交替执行
并行:在同一时刻,有多个指令在多个CPU上同时执行
多线程的实现方式
- 继承Thread类的方式进行实现
- 实现Runnable接口的方式进行实现
- 利用Callable接口和Future接口的反式实现
线程的第一种启动方式
-
自己定义一个类继承Thread
-
重写run方法
-
创建子类的对象,并启动线程
线程的第二种启动方式:
-
自己定义一个类实现Runnable接口
-
重写里面的run方法
-
创建自己类的对象
-
创建一个Thread类的对象,并开启线程
线程的第三种启动方式
特点:可以获取导多线程运行的结果
-
创建一个类MyCallable实现Callbale接口
-
重写call(有返回值,表示多线程运行的结果)
-
创建MyCallable的对象(表示多线程要执行的任务)
-
创建FutureTask的对象(作用管理多线程运行的结果)
-
创建Thread类的对象,并启动(表示线程)
三种实现方式的比较
常见的成员方法
守护线程
简单来说守护线程是为了非守护线程而存在的,守护线程回陆续结束。
通俗说:当女神线程结束了,那么备胎也没有存在的必要了。
应用场景:
聊天的过程中传输文件,假如聊天结束了,传输文件也没有必要存在了,传输文件作为守护线程。
礼让线程和插入线程用的不多
线程的生命周期
这里有个小细节:sleep结束之后,不一定直接执行该线程,该线程仍然需要抢执行权。
线程的安全问题
多个线程进行的时候,可能会产生错误;
举个列子当三个窗口卖票的情况,总计100张票,3个线程进行的过程中,最终的结果可能会大于100,而且卖同一张票的情况出现。
解决方案:同步代码块;
总结:学习完多线程的知识然后学习导IO流和网络编程。