4.9学习总结

一.File类

(一).概述:

File 类的对象代表操作系统的文件(文件、文件夹),File 类提供了诸如:创建文件对象代表文件,获取文件信息(大小、修改时间)、删除文件、创建文件(文件夹)等功能。

(二.)File类的创建

 实例操作:

public class file1 {
    public static void main(String[] args) {
        //1.根据字符串表示的路径,变成File对象
        String str="D:\\java\\Study1\\src\\JAVATEXT\\File";
        File f1=new File(str);
        System.out.println(f1);

        //2.父级路径:D:\java\Study1\src\JAVATEXT
        //子级路径:File
        String parent1="D:\\java\\Study1\\src\\JAVATEXT";
        String child1="File";
        File f2=new File(parent1,child1);
        System.out.println(f2);

        //3.把一个File表示的路径和String表示路径拼接
        File parent2=new File("D:\\java\\Study1\\src\\JAVATEXT");
        String child2="File";
        File f3=new File(parent2,child2);
        System.out.println(f3);
    }
}

(三).常用方法:判断文件类型、获取文件信息功能

 

(四).常用方法:创建文件、删除文件功能

实例操作:

        //1.创建一个新的空文件
        //如果当前文件不存在,创建成功,如果当前路径存在,创建失败
        File f1=new File("E:\\魏子轩\\B\\abc.text");
        boolean b=f1.createNewFile();
        System.out.println(b);
        System.out.println("------------------------");

        //2.创建一个文件夹(目录)
        //如果当前路径是存在的,则创建失败,返回false
        //mkdir方法只能创建单级文件夹
        File f2=new File("E:\\魏子轩\\B\\abc");
        boolean b2=f2.mkdir();
        System.out.println(b2);
        System.out.println("------------------------");

        //3.创建多级文件夹
        //既可以创建单级文件夹,也可以创建多级文件夹
        File f3=new File("E:\\魏子轩\\B\\aaa\\bbb");
        boolean b3=f3.mkdirs();
        System.out.println(b3);
        System.out.println("------------------------");

        //4.删除文件,文件夹
        //如果删除文件或者空文件夹,删除成功,不经过回收站
        //如果删除有内容的文件夹,删除失败
        File f4=new File("E:\\魏子轩\\B\\abc.text");
        boolean b4=f4.delete();
        System.out.println(b4);
        System.out.println("------------------------");

 

二.多线程(一)

(一).概述

线程(thread)进程可进一步细化为线程,是一个程序内部的执行路径。若一个进程同一时间并行执行多个线程,那么这个进程就是支持多线程的。一个进程中的多个线程共享相同的内存单元/内存地址空间。他们从同一堆中分配对象,可以访问相同的变量和对象

多线程的优点;

  • 提高应用程序的响应。可以增强用户体验。
  • 提高计算机系CPU的利用率
  • 改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改。

多线程的应用范围:

  • 程序需要同时执行两个或多个任务。
  • 程序需要实现一些需要等待的任务时,如用户输入、文件读写操作、网络操作、搜索等。
  • 需要一些后台运行的程序时。

 (二).多线程的创建

1.方法一:继承于Thread类

public class Duoxiancheng1 {
    public static void main(String[] args) {
        //多线程的第一种启动方法:继承Thread类的方式实现
        //1.自己定义一个类继承Thread
        //2.重写run方法
        //3.创建子类的对象,并启动多线程

        MyThread mt1=new MyThread();
        MyThread mt2=new MyThread();
        mt1.setName("线程一:");
        mt2.setName("线程二:");
        //开启多线程
        mt1.start();
        mt2.start();
    }
}

public class MyThread extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(getName()+"多线程");
        }
    }
}

2.方法二:实现Runnable接口

public class Duoxiancheng2 {
    public static void main(String[] args) {
        //多线程的第二种启动方法:实现Runnable接口的方法实现
        //1.自己定义一个类实现Runnable接口
        //2.重写里面的run方法
        //3.创建自己的类的对象
        //4.创建一个Thread类的对象,并开启线程

        //创建MyRun对象
        //表示多线程要执行的任务
        Myrunable mr = new Myrunable();

        //创建多线程对象
        Thread t1 = new Thread(mr);
        Thread t2 = new Thread(mr);
        t1.setName("线程1:");
        t2.setName("线程2:");
        //开启线程
        t1.start();
        t2.start();
    }
}

public class Myrunable implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName()+"多线程");
        }
    }
}

 

3.方式三:实现Callable接口

 

public class Duoxiancheng3 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //多线程的第三种创建方式:利用Callable接口和Future接口方式实现
        //特点:可以获取到多线程运行时的结果
        /*
        * 1.创建一个类MyCollable实现Collable接口
        * 2.重写run方法
        * 3.创建MyCollable对象(表示多线程要执行的任务)
        * 4.创建FutureTast的对象(作用管理多线程运行的结果)
        * 5.创建Thread类的对象,并启动(表示线程)
        * */

        MyCallable mc=new MyCallable();
        //作用管理多线程运行的结果
        FutureTask<Integer> ft=new FutureTask<>(mc);
        Thread t1=new Thread(ft);
        t1.start();
        Integer f = ft.get();
        System.out.println(f);
    }
}

public class MyCallable implements Callable {
    @Override
    public Integer call() throws Exception {
        int sum=0;
        for (int i = 0; i < 100; i++) {
            sum+=i;
        }
        return sum;
    }
}

三种创建方式的比较:

 

 

(三).Thread类的常用方法:

 

(四).线程的生命周期:

想要实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在他的一个完整的生命周期中通常要经历如下的五种状态

新建-->就绪-->运行-->阻塞-->死亡.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/529576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安卓四大组件——Service篇

1.作用 长时间位于后台&#xff08;无界面&#xff09;完成用户指定操作 1.1两类状态 &#xff08;a&#xff09;started&#xff08;启动&#xff09;&#xff1a;当应用程序组件&#xff08;如activity&#xff09;调用startService()方法启动服务时&#xff0c;服务处于sta…

7-15 计算圆周率

题目链接&#xff1a;7-15 计算圆周率 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码 1. 代码实现 #include <stdio.h>// 分子&#xff1a;阶乘 static unsigned long long int JieCheng (unsigned int n) {if (n 1) {return 1;} else {return n * JieCheng(n…

spring-cloud微服务负载均衡器ribbon

注意&#xff1a;2020年前SpringCloud是采用Ribbon作为负载均衡实现&#xff0c;但是在2020后采用了LoadBalancer替代&#xff0c;所以要查看springboot&#xff0c;springcloud&#xff0c;sprincloudalibaba的版本链接对应&#xff0c;Ribbon负载均衡都是在springboot版本2.4…

[从0开始AIGC][Transformer相关]:算法的时间和空间复杂度

一、算法的时间和空间复杂度 文章目录 一、算法的时间和空间复杂度1、时间复杂度2、空间复杂度 二、Transformer的时间复杂度分析1、 self-attention 的时间复杂度2、 多头注意力机制的时间复杂度 三、transformer的空间复杂度 算法是指用来操作数据、解决程序问题的一组方法。…

前端二维码工具小程序使用说明书

一、产品概述 前端二维码工具小程序是一款便捷、高效、易用的二维码生成与识别工具。本产品支持根据用户输入的文本或链接生成二维码&#xff0c;同时提供扫一扫功能以识别二维码内容&#xff0c;并支持将识别到的内容复制到剪贴板。此外&#xff0c;产品还提供了美化功能&…

树状数组基础(未完结)

在学习树状数组之前&#xff0c;我们需要了解lowbit操作&#xff0c;这是一种位运算操作&#xff0c;用于计算出数学的二进制表达的最低位的1以及后面所有的0 写法&#xff1a; int lowbit(int x){return x&-x;} 这是利用了计算机存储整数的特征来写的&#xff0c;在计算…

第6章 6.1.2 格式化文本 compose函数(MATLAB入门课程)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 在MATLAB中&#xff0c;存在两个不同版本的compose函数&#xf…

Spring Cloud微服务入门(五)

Sentinel的安装与使用 安装部署Sentinel 下载Sentinel&#xff1a; https://github.com/alibaba/Sentinel/releases Sentinel控制台 https://localhost:8080 用户和密码为sentinel 使用Sentinel 加依赖&#xff1a; 写配置&#xff1a; 输入&#xff1a; java -Dserver.po…

OpenHarmony南向开发实例:【智能甲醛检测机】

样例简介 本项目是基于BearPi套件开发的智能甲醛检测系统Demo&#xff0c;该设备硬件部分主要由小熊派单板套件和和甲醛检测传感器组成。智能甲醛检测系统可以通过云和手机建立连接&#xff0c;可以在手机上设置甲醛浓度阈值&#xff0c;传感器感知到的甲醛浓度超过阈值之后&a…

阿赵UE学习笔记——25、动画状态机播放

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。之前学习了用蓝图直接控制骨骼动画或者蒙太奇动画的播放。这次学习一下通过状态机来控制动画播放。如果熟悉Unity引擎使用的朋友&#xff0c;看到这个状态机应该会觉得很熟悉&#xff0c;因为…

全球变暖蓝桥杯2018省赛真题

全球变暖蓝桥杯2018省赛真题 DFS大法 全球变暖 #include <bits/stdc.h> using namespace std; #define int long long bool flag; char a[1010][1010]; int cnt,n,ans0,pre_ans0,d[4][2] {1,0,-1,0,0,1,0,-1}; void dfs(int x,int y){if(x>n||x<0||y>n||y<…

科研学习|研究方法——定性数据的定量编码方法

一、关于数据的分类 数据可以根据不同的属性和特征进行分类。以下是数据常见的分类方式&#xff1a; 1. 数值型数据&#xff1a;表示为具体的数值&#xff0c;可以进行数学运算和统计分析。例如年龄、身高、体重等。2. 分类型数据&#xff1a;表示为不同的类别或标签&#xff0…

019——IIC模块驱动开发(基于EEPROM【AT24C02】和I.MX6uLL)

目录 一、 IIC基础知识 二、Linux中的IIC&#xff08;韦东山老师的学习笔记&#xff09; 1. I2C驱动程序的层次 2. I2C总线-设备-驱动模型 2.1 i2c_driver 2.2 i2c_client 三、 AT24C02 介绍 四、 AT24C02驱动开发 实验 驱动程序 应用程序 一、 IIC基础知识 总线类…

【数字图像处理】二值图和灰度图的形态学处理

文章目录 形态学处理二值图形态学处理二值图形态学基本算子二值图连通分量提取、区域标记二值图细化算法 灰度图形态学处理灰度图形态学基本算子灰度图形态学梯度灰度图 tophat 算法 形态学处理 二值图形态学处理 二值图形态学基本算子 二值图形态学图像处理通常在目标图像中…

【数据处理包Pandas】多级索引的创建及使用

目录 一、元组作为一级索引&#xff08;一&#xff09;示例1&#xff08;二&#xff09;示例2 二、引入多级索引&#xff08;一&#xff09;多级索引的创建&#xff08;二&#xff09;多级索引中的数学选取 首先&#xff0c;导入 NumPy 库和 Pandas 库。 import numpy as np i…

javaWeb影视创作论坛的设计与实现

摘要 随着时代的发展&#xff0c;互联网的出现&#xff0c;给传统影视行业带来的最大便利就是&#xff0c;方便了影视从业人员以及爱好者的交流和互动&#xff0c;而为用户提供一个书写影评&#xff0c;阅读影评以及回复影评的平台&#xff0c;以影评为载体来使用户感受影评、…

openharmony launcher 调研笔记(03)UI 数据装配

最近在看launcher&#xff0c;把自己调研的点做个笔记&#xff0c;持续修改更新中&#xff0c;个人笔记酌情参考。 桌面上半部分包含父子逻辑&#xff1a; Column() { PageDesktopLayout(); } PageDesktopLayout->GridSwiper->Swiper->SwiperPage 1.PageDe…

无重复的最长字串

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 问题 给定一个字符串&#xff0c;我们需要找到该字符串中的最长无重复子串的长度。 示例 让我们以一个具体的示例来说明这个问题&#…

数据结构---线性表

1&#xff0c;顺序表实现---动态分配 #include<stdlib.h> #define InitSize 10 typedef struct {int *data;//静态分配int length;int MaxSize; }SqList; void InitList(SqList& L) {L.data (int*)malloc(InitSize * sizeof(int));//分配空间L.length 0;L.MaxSize…

企业如何管理员工技能,提升人员管理质效?

最近总有客户来抱怨&#xff0c;传统集团由于企业规模庞大、员工分散及线下管理模式局限&#xff0c;导致HR部门工作效率不高&#xff0c;无法及时解决一线员工的岗位排班、员工技能水平变更等问题。 正好&#xff0c;最近我们有类似成功案例和大家分享一下。 我们特意邀请到…