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//子级路径:FileString 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{@Overridepublic 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{@Overridepublic 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 {@Overridepublic Integer call() throws Exception {int sum=0;for (int i = 0; i < 100; i++) {sum+=i;}return sum;}
}

三种创建方式的比较:

 

 

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

 

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS开发实例:【数字管家app】

一&#xff0e;概述 本应用是基于RK3399开发板&#xff0c;使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术&#xff0c;使多人能够一起画画。 1.应用运行效果图&#xff1a; 2.分布式画板使用示意图 如上图所示&#xff0c;用户1、用户2在各自本地端进行…

Stack_经典例题_最小栈

题目&#xff1a; 题目分析&#xff1a; 在满足栈的特点的同时&#xff0c;还需要设计一个接口&#xff0c;就是获取栈内的最小元素&#xff01; 解题思路&#xff1a; 因为是栈&#xff0c;所以不好遍历的&#xff01;所以这题的方式不能采用遍历的方式&#xff0c;如果采取…

分布式锁-redission可重入锁原理

5.3 分布式锁-redission可重入锁原理 在Lock锁中&#xff0c;他是借助于底层的一个voaltile的一个state变量来记录重入的状态的&#xff0c;比如当前没有人持有这把锁&#xff0c;那么state0&#xff0c;假如有人持有这把锁&#xff0c;那么state1&#xff0c;如果持有这把锁的…

DELL VMWare R730 R740 R750 iDRAC配置与ESXI安装部署

VMware vCenter Server与ESXI版本兼容对照表 ESXI下载 VMware vcenter7.0许可证 Esxi7.0许可证 VSAN 7.0许可证 DELL VMWare R730 R740 R750 iDRAC配置与ESXI安装部署 vmware vcenter server 7.0 安装教程 1. 进入BIOS界面配置iDRAC网络 开机按F10&#xff0c;开机点击F10选择…

国家统计局行政区划获取及入库ES实践

我们先看下最终效果&#xff1a; 1. ES索引新建 PUT administrative_division {"mappings": {"properties": {"province": {"type": "keyword"},"province_code": {"type": "keyword"},&q…

docker安装oracle

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

C++从入门到精通——类和对象(中篇)

1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中什么都没有吗&#xff1f;并不是的&#xff0c;任何一个类在我们不写的情况下&#xff0c;都会自动生成下面6个默认成员函数。 class Date {}; 2. 构造函数 2.1 概念 对于以下的日期类&am…

Linux下使用C语言实现高并发服务器

高并发服务器 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 使用多进程并发服务器时要考虑以下几点&#xff1a; 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)系统内创建进程个数(与内存大小相关)进程创建过多是否降低整体…

AI电商图制作解决方案助力企业高效营销

电商行业蓬勃发展&#xff0c;一张吸睛的电商海报或宣传视频往往能够成为企业吸引顾客、提升品牌形象的利器。然而&#xff0c;传统电商图制作流程繁琐&#xff0c;需要投入大量时间和人力资源&#xff0c;成为众多企业面临的难题。为了解决这一问题&#xff0c;美摄科技凭借其…

前端学习之路-项目实战(1)

每日吐槽&#xff1a;有一个奇怪的问题&#xff0c;怎么一眼看出一个求职者是否是培训班出来的&#xff0c;有的求职上写着&#xff0c;希望大家坦诚一点&#xff0c;but&#xff0c;你这艘诚实的泰坦尼克号终究还是撞上了社会阴暗面的冰山&#xff0c;OMG&#xff0c;不让包装…

Leetcode 239. 滑动窗口最大值和Leetcode 347. 前 K 个高频元素

目录标题 Leetcode 239. 滑动窗口最大值题目描述C语言代码和题解解题思路 Leetcode 347. 前 K 个高频元素题目描述C语言题解和思路解题思路 Leetcode 239. 滑动窗口最大值 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最…

Tensorflow(GPU版本配置)一步到位!!!

Tensorflow&#xff08;GPU版本配置&#xff09;一步到位&#xff01;&#xff01;&#xff01; CUDA安装CUDA配置Tensorflow配置常见的包 CUDA安装 配置了N次的Tensorflow–Gpu版本&#xff0c;完成了踩坑&#xff0c;这里以配置Tensorflow_gpu 2.6.0为例子进行安装 以下为ten…

数学之光照亮AI之路:探究数学背景在人工智能学习中的优势

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已成为引领未来发展的重要力量。然而&#xff0c;对于许多初涉此领域的学习者来说&#xff0c;AI的复杂性和深度常常让他们望而却步。有趣的是&#xff0c;那些数学基础扎实的人在学习AI时&#xff0c;往往…

【canvas】canvas基础使用(六):图形阴影

简言 学习使用canvas的阴影属性。 阴影 shadowBlur 阴影模糊 CanvasRenderingContext2D.shadowBlur 是 Canvas 2D API 描述模糊效果程度的属性&#xff1b;它既不对应像素值也不受当前转换矩阵的影响。默认值是 0。 语法&#xff1a; ctx.shadowBlur level; 选项值&#x…

Python中的错误处理 - 使用try、except、else和finally进行解释,并附带代码示例

最近&#xff0c;我的经理委派我创建一个自动报告。我设计的报告非常简单。它包括一些来自数据库的数字和一些基本的数学运算。我很兴奋最终可以向公司展示我的惊人的Python技能。 我完成并交付了产品。一切都很顺利。至少&#xff0c;直到大约两周后。我的报告由于除以零错误…

Linux使用C语言实现Socket编程

Socket编程 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 网络套接字 socket: &#xff08;电源&#xff09;插座&#xff08;电器上的&#xff09;插口&#xff0c;插孔&#xff0c;管座 在通信过程中, 套接字是成对存在的, 一个客户端的套接字, 一个…

PUBG绝地求生更新后无法启动/更新后卡顿?3个解决方法分享

在绝地求生中&#xff0c;团队协作也是非常重要的一点。咱们可以运用strong标签来着重“团队协作”。与队友紧密配合、彼此援助&#xff0c;一起拟定战术和战略&#xff0c;将会大大提高在游戏中获得成功的几率。在绝地求生中获得成功并不简单&#xff0c;但只需咱们把握了一些…

linux的io的知识大全

C语言的io操作 写文件 #include<stdio.h> #include<string.h>#define FILE_NAME "log.txt" int main() {FILE * fp fopen(FILE_NAME, "w");if(fpNULL){printf("fopen error!\n");}const char* msg "hello zk\n";int c…

北邮通报学生联名举报导师事件,导师PUA学生,学生只有压榨它

诸葛亮为激司马懿出战&#xff0c;派使者送给他女人的衣服&#xff0c;司马懿欣然接受后问使者&#xff1a;“你们家丞相都管些什么呀&#xff1f;” 使者回答道&#xff1a;“我们丞相从行军布阵到饮食起居&#xff0c;无一不亲自过问。” 司马懿听到心中大喜&#xff0c;心想…

【ARM Coresight SOC-600 -- ETF Flushin无法接收到 CTI 发出 triggerout 信号问题分析】

请阅读【嵌入式开发必备专栏 】 文章目录 问题背景波形分析问题背景 在做验证的时候,准备通过 CTI2 给 SOC 上的 ETF 触发一个 flushin 动作,然后stop住 formatter,结果一致发现没有成功,接下来就是分析的过程了。 首先检查了代码,没有发现代码有什么问题(一般自己写的代…