4.12~4.13学习总结

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)//把父级和子级拼接

常见成员方法:

4.12~4.13学习总结_第1张图片

File中最重要的内容:

获取并遍历:

public File [] listFiles();//获取当前路径下的所有内容//返回类型是一个File类型的数组

代码实战:

重点:

  1. 当调用者File表示的路径不存在时,返回Null

  2. 当调用者File表示的路径时文件的时候,返回Null

  3. 当调用者File表示的路径是一个空文件夹的时候返回一个长度为0的数组

  4. 当调用者File表示的路径有内容的文件夹的时候,讲里面所有的文件和文件夹的路径放在File数组中返回

  5. 当调用者File表示的路径是一个隐藏文件的文件夹时,讲里面所有的文件和文件夹的路径放在File数组中返回,包含隐藏文件

  6. 当调用者File表示的路径是需要权限才可以访问的文件夹时,返回Null

多线程

概念

线程:

线程时操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位

进程:

进程是程序的级别执行实体,每个在运行的软件都是一个进程,而软件中的各个在运行的功能为线程

线程简单理解:

应用软件中相互独立,可以同时运行的功能。

多线程的作用:

提高效率。

并发和并行

并发:在同一时刻,有多个指令在单个CPU上交替执行

并行:在同一时刻,有多个指令在多个CPU上同时执行

4.12~4.13学习总结_第2张图片

多线程的实现方式

  • 继承Thread类的方式进行实现
  • 实现Runnable接口的方式进行实现
  • 利用Callable接口和Future接口的反式实现

线程的第一种启动方式

  1. 自己定义一个类继承Thread

  2. 重写run方法

  3. 创建子类的对象,并启动线程

线程的第二种启动方式:

  1. 自己定义一个类实现Runnable接口

  2. 重写里面的run方法

  3. 创建自己类的对象

  4. 创建一个Thread类的对象,并开启线程

线程的第三种启动方式

特点:可以获取导多线程运行的结果

  1. 创建一个类MyCallable实现Callbale接口

  2. 重写call(有返回值,表示多线程运行的结果)

  3. 创建MyCallable的对象(表示多线程要执行的任务)

  4. 创建FutureTask的对象(作用管理多线程运行的结果)

  5. 创建Thread类的对象,并启动(表示线程)

三种实现方式的比较

4.12~4.13学习总结_第3张图片

常见的成员方法

4.12~4.13学习总结_第4张图片

守护线程

简单来说守护线程是为了非守护线程而存在的,守护线程回陆续结束。

通俗说:当女神线程结束了,那么备胎也没有存在的必要了。

应用场景:

聊天的过程中传输文件,假如聊天结束了,传输文件也没有必要存在了,传输文件作为守护线程。

礼让线程和插入线程用的不多

线程的生命周期

4.12~4.13学习总结_第5张图片

这里有个小细节:sleep结束之后,不一定直接执行该线程,该线程仍然需要抢执行权。

线程的安全问题

多个线程进行的时候,可能会产生错误;

举个列子当三个窗口卖票的情况,总计100张票,3个线程进行的过程中,最终的结果可能会大于100,而且卖同一张票的情况出现。

解决方案:同步代码块;

总结:学习完多线程的知识然后学习导IO流和网络编程。

你可能感兴趣的:(Java学习总结,学习)