Java的基础知识1.6

输入输出IO

IO
I : input 输入 ;O: output 输出
输入输出 都是针对内存来说的,内存是参照物
File file=new File("f:/ 你是最叼的人啊 ");这个只是一个提供路径 和路径名字的作用
boolean f =file1.mkdir(); 这个方法是创建文件夹返回一个布尔值
boolean b = file.exists(); 判断文件夹是否存在返回一个布尔值boolean c = file.delete();删除文件夹是否成功文件返回一个布尔值
File file=new File(“f:/66/32/c32/”);
boolean mkdirs = file.mkdirs(); 这俩行代码是说明可以创建嵌套的多级文件夹 注意是mkdirs
boolean c = file.isFile(); 判断是否是文件
boolean b = file.isDirectory(); 判断是否是文件夹
在这里插入图片描述

File file=new File(“f:/text.doc”);
boolean f = file.createNewFile(); 创建文件是否是成功
文件的读写

  1. 实例化一个 对象,构建输入流
    FileInputStream fis=new FileInputStream(file);
    int length = fis.available();获取可变字符的长度,返会一个整数
    int ch = fis.read();一个字节的读取返回这一个字节的ASCII值
    在这里插入图片描述

  2. 实例化一个 对象,构建建输出流
    FileOutputStream fos=new FileOutputStream(new File(“f:/b.txt”));
    String str ="wei ren min fu wu "; 创建字符串
    byte[] bytes = str.getBytes( ); 把字符串转换成每一个字节,并且保存到字符类型的数组中
    fos.write(bytes); 读取每一个字节

在这里插入图片描述

序列化:把对象保存到文本中(输出)把对象转换为字节序列的过程称为对象的序列化。
反序列化:反过来把字节序列恢复为对象的过程称为对象的反序列化。
反序列化步骤:
1.新建一个类
2.类要实现一个接口(Serlizable)
3.使用ObjectOutPutStream把对象输出到文本中

在这里插入图片描述

如何查看自己电脑的ip地址:
1.首先windows+R 输入cmd
2.输入ipconfig 查看自己的ip
关键字ping 后面加+空格+127.0.0.1 查看自己的网卡坏了没 有响应 没有坏掉

线程和进程

进程:一个程序,运行起来之后,就叫进程
程序:代码的堆积
集成:代码运行
代码不运行 称呼为程序 代码开始运行 我们称之为进程
静态 程序 动态 进程
一个运行起来的程序对应一个进程
线程:线程是进程的组成单位,一个进程可以有多个线程,至少有一个线程。
每个线程都有自己独立的内存空间。
单核单线程
在这里插入图片描述

创建线程的两种方法:
1.(1).创建线程类 继承 Thread 重写run()方法
(2).启动线程 实例化 调用start() 方法
2.实现Runnable接口
为什么调用start()方法,而不是run方法
start方法是告诉虚拟机我准备好了
虚拟机并不一定立即执行当前线程。(因为cpu可能被占用)
到底什么时候执行由虚拟机决定。到时机成熟时(cpu空闲)
jvm会调用run方法执行线程中的代码
不确定
任何一个程序至少有一个线程,此线程就是主线程。
如果主线程启动了一个线程a,那么a结束之后主线程才会结束
在这里插入图片描述
新生状态: new 的时候
可运行状态: start
阻塞状态:
死亡状态:
在这里插入图片描述

线程调度的方法:
1.join() 插队 就喜欢霸道的!
2.sleep() 使当前线程休眠
3.yield() 使当前线程暂停,并执行其他的线程
thread.join();// 阻塞一个线程,直到另一个线程执行完 阻塞主线程 插队 使用这个方法 就是让其他的线程全部暂停 知道这个线程销毁 其他的才能执行 有点霸道哦!
在这里插入图片描述

Thread.yield()方法的作用:暂停当前正在执行的线程,并执行其他线程。(可能没有效果)
yield()让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是,实际中无法保证yield()达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。
结论:大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。
在这里插入图片描述
死锁
在这里插入图片描述

同步:多个线程之间有先后执行顺序
优点: 数据安全 缺点:效率低
异步:多个线程之间互不干扰
优点:速度快,效率高 缺点: 数据安全问题
synchronized 修饰的代码在一个时间段内,只能被一个线程执行,其他线程处于被挂起状态,等到线程执行完毕,此线程就释放资源,其他线程过来竞争,只有一个线程可以竞争成功。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林尘

你的小心意是我的终生追求

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值