java学习笔记--黑马徐老师二--200

https://www.bilibili.com/video/BV1Cv411372m?p=199&spm_id_from=pageDriver&vd_source=8cee89dfe67fe633aa0d8c09481a9d9f
146 日志概述‘
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

153 file文件
在这里插入图片描述
在这里插入图片描述

package File;

import java.io.File;

/**
 * 学会创建file对象,定位操做系统的文件
 */
public class FileDemo {
    public static void main(String[] args) {
        //创建file对象
        File f = new File("C:\\D\\EXE\\JDK\\lib\\tools.jar");
        File f22 = new File("C:/D/EXE/JDK/lib/tools.jar");
        File f33 = new File("C:"+File.separator+"D"+File.separator+"EXE"
                +File.separator+"JDK"+File.separator+"lib"+File.separator+"tools.jar");
        long size = f.length();  //文件的字节
        long size2 = f22.length();  //文件的字节
        long size3 = f33.length();  //文件的字节
        System.out.println(size);
        System.out.println(size2);
        System.out.println(size3);

        //相对路径,一般定位模块中的文件,相对到工程下
        File f2 = new File("untitled1/src/File/pic.PNG");
        System.out.println(f2.length());

        //也可以是文件夹的大小
        File f3 = new File("C:\\D");
        System.out.println(f3.exists());

    }
}

154 file类常用方法
在这里插入图片描述

package File;

import java.io.File;
import java.text.SimpleDateFormat;

public class FileDemo2 {
    public static void main(String[] args) {
        File f = new File("untitled1/src/File/pic.PNG");
        System.out.println(f.getName());
        System.out.println(f.length());
        System.out.println(f.getAbsolutePath());   //C:\D\IdeaProjects\java-code\untitled1\src\File\pic.PNG
        System.out.println(f.getPath());  //untitled1\src\File\pic.PNG
        //获取文件最后修改时间
        long time = f.lastModified();
        System.out.println("最后的修改时间:"+new SimpleDateFormat("yyyy/MM/dd  HH:mm:ss").format(time));
        //判断是否为文件
        System.out.println(f.isFile());
        System.out.println(f.isDirectory());

    }
}

package File;

import java.io.File;

public class FileDemo3 {
    public static void main(String[] args) {
        File file = new File("C:\\D\\EXE");
        String[] files = file.list();
        for (String s : files) {
            System.out.println(s);  //输出文件的名称
        }

        //listFiles方法注意事项
        //当调用者不存在时,返回null
        //当调用者是一个文件时,返回null
        //当调用者时一个空文件夹时,返回一个长度为0的数组
        //当调用者是一个有内容的文件夹时,将所有文件和文件夹的路径放在数组中返回
        //当包含隐藏文件时,将所有文件和文件夹的路径放在数组中返回
        File f2 = new File("C:\\D\\EXE");
        File[] files2 = f2.listFiles();  //只能遍历一级文件夹
        for (File f : files2) {
            System.out.println(f.getAbsolutePath());

        }
    }
}

155 递归
在这里插入图片描述

递归:就是方法直接或间接调用自己
递归死循环:递归方法无限调用自己,出现栈内存溢出
在这里插入图片描述

package File;

package File;

/**
 * 体验递归,求5的阶乘  和1--n的和
 */
public class DiguiDemo {
    public static void main(String[] args) {
        int result =f(5);
        System.out.println(result);

        int res2=f2(5);
        System.out.println(res2);

        System.out.println(f3(1));
    }
    public static int f(int n){
        if (n==1){
            return 1;
        }else{
            return n*f(n-1);
        }
    }

    public static int f2(int n){
        if (n==1){
            return 1;
        }else{
            return f2(n-1)+n;
        }
    }
    //f(x)-f(x)/2-1=f(x+1)
    public static int f3(int n){
        if(n==10){
            return 1;
        }else{
            return 2*f3(n+1)+2;
        }
    }
}


package File;

import java.io.File;
import java.io.IOException;

public class DiguiDemo2 {
    public static void main(String[] args) throws IOException {
        searchFile(new File("C:\\d"),"Code.exe");
    }

    /**
     * 搜索某个目录下的全部文件,找到要找的文件
     * @param dir  被搜索的目录
     * @param fileName  被搜索的文件名称
     */
    public  static void searchFile(File dir, String fileName) throws IOException {
        //3判断dir是否时目录
        if (dir!=null&&dir.isDirectory()){
            //4提取当前目录下的一级文件对象
            File[] files = dir.listFiles();
            //5判断是否存在一级文件对象,存在才可以遍历
            if (files!=null&&files.length>0){
                for (File file : files) {
                    //6判断是对象还是目录
                    if (file.isFile()){
                        //7判断是不是要找的,把路径输出
                        if (file.getName().contains(fileName)){
                            System.out.println("找到了"+file.getAbsolutePath());
                            //启动他
                            Runtime r = Runtime.getRuntime();
                            r.exec(file.getAbsolutePath());
                        }
                    }else {
                        //8是文件夹,继续遍历
                        searchFile(file,fileName);
                    }
                }
            }

        }else {
            System.out.println("对不起,当前搜索的不是文件夹");
        }
    }
}

package File;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileInputStreamDemo {
    public static void main(String[] args) throws IOException {
        //1创建一个文件字节输入管道与源文件接通
//        InputStream is = new FileInputStream(new File("untitled1\\src\\File\\pic.PNG"));
        //简化写法
        InputStream is = new FileInputStream("untitled1\\src\\File\\pic.PNG");
//        //2读取一个字节并返回,每次读一个字节,读取结束返回-1
//        int b1 = is.read();
//        System.out.println(b1);

//        //定义一个变量记录每次读到的字符
//        int b;
//        while((b=is.read())!=-1){
//            System.out.println((char) b);
//        }

//        //定义一个字符数组,用于读取字节数组
//        byte[] buffer = new byte[3];
//        int len = is.read(buffer);
//        System.out.println("读取了几个字节"+len);
//        //读取多少倒出多少
//        String rs = new String(buffer,0,len);
//        System.out.println(rs);

        //改善使用循环,每次读一个字节数组
        byte[] buffer = new byte[1024];
        int len;  //记录每次读取的字节数
        while ((len= is.read(buffer))!=-1){
            System.out.println(new String(buffer,0,len));
        }
    }
}

package File;

import java.io.*;

public class FileInputStreamDemo3 {
    public static void main(String[] args) throws IOException {
        File f = new File("C:\\d\\车位出租协议.docx");
        InputStream is = new FileInputStream(f);
        //定义一个数组,与文件的大小一样大

        byte[] buffer = new byte[(int) f.length()];
        int len = is.read(buffer);
        System.out.println("读取了多少个"+len);
        System.out.println("文件大小"+f.length());
        System.out.println(new String(buffer));
    }
}

try–catch–finally
finally,在异常处理时,提供finally模块来执行所有清除操作,比如io流的资源释放
特点:被finally控制的语句一定会被执行,除非jvm退出

152 io流
在这里插入图片描述

在这里插入图片描述

191 junit单元测试框架
在这里插入图片描述
在这里插入图片描述
其他注解
在这里插入图片描述

192反射
在这里插入图片描述
在这里插入图片描述
获取class对象的三种方式
在这里插入图片描述

193 获取类的构造器
在这里插入图片描述

只能拿到public的构造器
在这里插入图片描述
能拿到所有的构造器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
194获取类的成员变量,成员方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获取类的成员方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
195 反射的作用、应用场景
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
196注解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
197解析注解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
198动态代理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
199代理的使用
重复的代码太多,使用台历简化
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值