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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[石家庄校区] 常用api和具体案例!


第七天的api''
C:/Users/Lenovo/AppData/Local/YNote/data/qqED074021B53AD8CC09A97FED7DC743B9/af6bd6cd3e1142c68d884ba08913ec7d/6ce753a8ddbe40a18d9611b5151fd900.jpg
等待唤醒机制,wait/notify,就是线程之间的一种协作机制,用于实现线程间通信.
等待唤醒的方法:java.long.lang类
void  notify():随即唤醒的同一个所在对象上的某一个处于等待状态的线程
void  notifyAll():环形所在同一对象上处于等待状态的线程
void  wait():让当前线程处于无线等待的状态,同时释放锁
由同一个锁调用,通过notify()唤醒使用同一个锁对象调用的wait();
必须在同步代码块中使用这两个方法
线程池:一个容纳多个线程的容器
线程池可以解决的问题:线程可以重复使用,省去了频繁创建对象的造作骂我需反复创建线程而消耗过多的资源
提前创建好还多个线程对象,放在集合中,多个任务来了反复使用的这些线程的来执行''
lambda的好处,去除冗余的代码,多余的步骤,
标准格式是,参数()箭头->代码{}
(参数列表) -> {一些重写方法的代码}
定义测试类, 使用实现Runnable接口方式创建线程
        1. 创建Thread对象, 在构造方法参数中, 使用匿名内部类方式传入Runnable实现类对象
                重写 run() 方法, 打印 线程名字+"新线程创建了", 并启动线程
        2. 创建Thread对象, 在构造方法参数中, 使用Lambda表达式方式传入Runnable实现类对象
                重写 run() 方法, 打印 线程名字+"新线程创建了", 并启动线程
例如:new Thread(()->{sout(.....)}).start();

可以省略的部分,可推导的可以省略,
1,(参数类表):参数类型可以省略
2,(参数列表):如果参数只有一个,则类型小括号可以省略a->sout(a)
3,{一些代码}:如果有一条代码,大括号分号return可以省略




//第八日猴子摘桃子的案例:
代码很简单,只是难得是规律的总结


package Eveing;

public class Test5 {
    public static void main(String[] args) {
        int sum = sum(1);
        System.out.println(sum);


    }
    public static int sum(int tt){
        if (tt==10){
            return 1;
        }
        return tt = 2*sum(tt+1)+2;
    }
}
//第八天常用apijava.io.File类: 文件和目录的路径名的抽象表现形式, 主要用于文件和目录的创建, 查找和删除等操作
        // 静态成员变量
    static String pathSeparator: 路径分隔符的字符串形式
    static char pathSeparatorChar: 路径分隔符的char形式
            Windows系统是 分号;  
        Linux系统是 冒号:
    static String separator: 文件名称分隔符的字符串形式
    static char separatorChar: 文件名称分隔符的char形式
            Window系统是 反斜杠\
        Linux系统是 正斜杠/
    // 构造方法(创建了File对象, 并将其指向该路径. 不会真正在磁盘上创建这个文件)
        File File(String pathname): 根据 路径字符串 封装一个File对象
        File File(String parent, String child): 根据 父路径字符串 和 子路径字符串 封装File对象
        File File(File parent, String child): 根据 父路径的File对象 和 子路径 封装File对象
        // 常用获取方法
    String?getAbsolutePath(): 返回此File的绝对路径名字符串
    String?getPath(): 获取File对象的封装路径 (创建对象时传入的路径)
    String?getName(): 获取File对象的文件名或目录名
    long?length(): 获取File表示的文件大小的字节数 (不能获取目录的大小)
    // 常用判断方法
        boolean?exists(): 判断File对象代表的文件或目录是否实际存在
        boolean?isDirectory(): 判断File表示的是否为目录
        boolean?isFile(): 判断File表示的是否为文件
        // 常用创建删除方法
        boolean?createNewFile(): 当文件不存在时, 创建一个新的空文件
        boolean?delete(): 删除由此File表示的文件或目录. (删除目录时必须是空目录)
        boolean?mkdir(): 创建File表示的目录
        boolean?mkdirs(): 创建File表示的多级目录
        // 常用获取目录中内容的方法
        String[]?list(): 获取当前File目录下的所有子文件或目录的名字数组
        File[]?listFiles(): 获取当前File目录中的所有子文件或目录的File对象数组
        File[] listFiles(FileFilter filter): 通过File对象过滤, 返回文件过滤器过滤后的File对象数组
        File[] listFiles(FilenameFilter filter): 通过File对象的文件名过滤, 返回文件过滤器过滤后的File对象数组

java.io.FileFilter接口: 用于File对象的过滤器
        boolean accept(File pathName): true则会将参数的File对象加入返回的File[], false则不加入

java.io.FilenameFilter接口:
        boolean accept(File dir, String name): true则会将参数的File对象加入返回的File[], false则不加入

public File(String pathname):通过将给定的路径名字符串转换为抽向路径名字来创建新的File实例.
String pathname = "D:\\aaa.txt";   File file = new File(pathname);
Public File(String parent ,String child):从父路径名字符串和子路径字符串创建新的File实例
String parent = "d:\\aaa"
String child = "bbb.txt";
File file = new File(parent,child);

Public File (File parent , String child):从父抽象路径名和子路径名字符串创建新的File实例
File paeentDir = new File("d:\\aaa):
String child = "bbb.txt"
File file4 = new File (PaeentDir,child):



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马