summarize:
commons-Io 就是一个jar包: 导包:建个项目,在建个lib目录,然后复制jar包 ,在lib目录粘贴,Build Path→Add to Build Path 调出牛奶瓶
FilenameUtils 处理文件名,扩展名,判断是否为xxx后缀名
FileUtils 对文件和目录写、读、复制、移动等
多线程
进程:就是正在运行的程序,在内存中运行,一个程序进入内存,就是一个进程
线程:进程里的一个单元,一个进程至少一个线程,也可以多个线程,叫多线程程序
一个运行中的程序至少有一个进程,一个进程可以包含多个线程
单线程:依次执行 没运行的排队等候
多线程:同时执行
程序运行原理:
分时调度:轮流使用,平均分配;
抢占式调度:优先级高的使用,相同的随机选择!
原理图:
FilenameUtils
处理文件名(包含文件路径、后缀名)
方法:
getExtension(String path):获取文件的扩展名;
getName(String filename
):获取文件名;
isExtension(String fileName,String ext):判断fileName是否是ext后缀名
package com.oracle.demo01; //处理文件名 FilenameUtils import org.apache.commons.io.FilenameUtils; public class Demo01 { public static void main(String[] args) { // 获取文件扩展名 String ext=FilenameUtils.getExtension("f:\java\a.txt"); System.out.println("扩展名为"+ext); // 获取文件名 String fname=FilenameUtils.getName("f:\java\a.txt"); System.out.println("文件夹名为"+fname); // 判断扩展名 boolean flag=FilenameUtils.isExtension("f:\java\a.txt","txt"); System.out.println(flag); } }
FileUtils
文件操作(移动文件,读取文件,检查文件是否存在等等)
readFileToString(File file):读取文件内容,并返回一个String;
writeStringToFile(File file,String content):将内容content写入到file中;
copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
copyFile(File srcFile,File destFile);文件复制
package com.oracle.demo01; //文件工具 FileUtils 写 读 复制 import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class Demo02 { public static void main(String[] args) throws IOException { // copydir(); // read(); // write(); } public static void read() throws IOException{ // 明确数据源 File file=new File("f:\java\a.txt"); // 从文件中读取内容 String content=FileUtils.readFileToString(file); System.out.println(content); } public static void write() throws IOException{ // 明确目的地 File file=new File("f:\java\a.txt"); FileUtils.writeStringToFile(file, "你好吗",true);// } // 复制文件夹 public static void copydir() throws IOException{ // 明确数据源 File src=new File("f:\java"); // 明确目的地 File dest=new File("f:\java2"); // 开始复制 FileUtils.copyDirectoryToDirectory(src, dest); } }
多线程
360多线程原理图
进程:指正在运行的程序,一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。这个应用程序也可以称之为多线程程序。
总结:一个程序运行后至少有一个进程,一个进程中可以包含多个线程
程序运行原理
单线程:依次运行
分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间
抢占式调度:让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度
package com.oracle.demo02; public class Demo01 { public static void main(String[] args) { // 单线程程序原理 for(int i=0;i<100;i++){ System.out.println(i); } System.out.println("我在排队"); } }
抢占式调度
大部分操作系统都支持多进程并发运行,现在几乎都支持同时运行多个程序。这些程序是在同时运行,”感觉这些软件好像在同一时刻运行着“
实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。