4.14~4.16学习总结

news2024/10/4 5:33:26

多线程:

同步代码块

格式:Synchronized(锁) {

操作共享数据的代码

}

  • 特点1:锁默认打开,有一个线程进去了,锁自动关闭。

  • 特点2:里面的代码全部执行完毕,线程处理,锁自动打开。

  • 小细节:锁一定是唯一的,一般使用字节码文件去实现。

同步方法

就是把 sychronized 关键字加到方法上

格式:修饰符 synchronized 返回值类型 方法名 (方法参数){……}

  • 特点1:同步方法是锁住方法里面所有的代码

  • 特点2:锁对象不能自己指定

  • 非静态:this,静态:当前类的字节码文件对象。

死锁:记住俩个锁不能嵌套,不然就会死锁。

等待唤醒机制

IO流

概述

IO流:存储和读取数据的解决方案

内存无法永久化存储,程序停止,数据丢失,因此需要文件来保存这些数据

IO流的分类

根据流的方向分为输入流和输出流。

输入流:读取

输出流:写出

这里参照物设置为程序,输入流即输入程序,也就是读取文件中的内容,输出流即输出程序,也就是把数据输出到文件中。

按操作文件类型分为字节流和字符流。

字节流:所有文件的类型

字符流:纯文本文件

小结:

  • 什么是IO流

存储和读取数据的解决方案

I:input O:output

流向水流一样传输数据

  • IO流的作用

用于读写数据(本地文件,网络)

  • IO流按照流向分类为:

输出流:程序-->文件

输入流:文件-->程序

  • IO流按照操作文件的欸写可以分类为

字节流:可以操作所有类型的文件

字符流:只能操作纯文本文件

  • 什么是纯文本文件?

md文件,xml文件,lrc文件等

FileOutStram

操作本地的文件的字节输出流,可以把程序中的数据写道本地文件中。

书写步骤:

  1. 创建字节输出流对象

  2. 写数据

  3. 释放资源、

书写细节

创建字节输出流对象书写细节

  1. 参数是字符串表示的路径或者是file对象都是可以的

  2. 如果文件不存在,会创建应该新的文件,但是要保证父级路径是存在的。

  3. 如果文件已经存在,则会清空文件。

写数据书写细节

  • write方法的参数是整数,但是实际上写到本地文件中是整数在ASCII上对应的字符

书房资源

  • 每次使用完之后都要释放资源

写数据的三种方式

FileInputStream

步骤同输出流一样

书写细节

  • 创建字节输入流对象

如果文件不存在,就直接报错

  • 读取数据

一次读一个字节,读出来的是数据在ASCII上对应的数字

读到文件末尾了,read方法返回-1

  • 释放资源

每次使用完之后必须要释放资源

一次读取多个字节

5M的数组——>1024 * 1024 * 5

字符集

GBK字符集完全兼容ASCII字符集

一个英文站一个字节,二进制第一位是0

一个中文占俩个字节,二进制高位字节的第一位是1

Unicode字符集的UTDF-8编码格式

一个英文占一个字节,二进制第一位是0

一个中文占3个字节,二进制第一位是1,第一个字节转成十进制是负数

为什么会有乱码

原因1:读取数据未读完整个汉字

原因2:编码和解码时的方式不统一

疑问:字节流读取中午时会乱码,但为什么拷贝不会乱码。

因为拷贝是一个字节一个字节的拷贝,存放之后数据不会丢失

如何不产生乱码

不要用字节流读取文本文件,

编码解码使用同一个码表,同一个编码方式

解码和编码代码实现

字符流

字符流的底层其实就是字节流

字符流=字节流+字符集

特点:

输入流:一次读一个字节,遇到中文,一次读取多个字节

输出流:底层会把数据按照之间的编码方式进行编码,变成字节再写到文件中。

使用场景:

对纯文本文件进行读写操作

FileReader

FileWriter

书写细节

  • 创建字符输出流对象

参数是字符串表示的路径或者是file对象都可以

如果文件不存在会创建一个文件,但要保证父级路径是存在的

如果文件已经存在,则会清空文件,如果不想清空,就打开续写开关

  • 写数据

如果write方法的参数是整数,但是实际写到本地文件中的是整数在字符集上对应的字符

  • 释放资源

每次使用完之后都要释放资源

高级流

缓冲流

字节缓冲流

缓冲流还可以搭配一次性读取多个字节一同使用

字符缓冲流

字符缓冲输入流

字符缓冲输出流

总结

  • 缓冲流有几种

字节缓冲输入流:BufferedInputStream

字节缓冲输出流:BufferedOutStream

字符缓冲输入流:BufferedReader 字符缓冲输出流:BufferedWriter

  • 缓冲流为什么可以提高性能

缓冲流自带长度未8192的缓冲区

可以显著提高字节流的读写性能

对于字符流提升不明显,对于字符缓冲流而言关键点是俩个

转化流:

作用 1:指定字符集读写//淘汰了

作用 2:字节流想要使用字符流中的方法

序列化流和反序列化流

序列化输出流写出一个对象

反序列化输入流读入对象

固定版本号

序列化流/反序列化流的细节汇总

  1. 使用序列化流将对象写到文件时,需要让javabean类实现Seralizable接口。

  2. 序列化流写到文件中的数据时不能修改的,一旦修改了就无法再次被读回来了

  3. 序列化对象后,修改了Javabean类,再次反序列化,会抛出InvalidClassException异常;解决方案:给javabe类添加版本号

  4. 如果一个对象中的某个成员变量不想被序列化;解决方案:给该成员变量加上transient关键字修饰,该关键字标记的成员变量不参与序列化过程。

打印流

分类:打印流一般是指。printfStream,PrintWriter俩个类

特点1:打印流之操作文件目的地,不操作数据源

特点2:特有的写出方法可以实现,数据原样写出

例如:打印:97 文件中:97

打印:true 文件中:true

特点3:特有的写出方法,可以实现自动刷新,自动换行,打印一次数据=写出+换行+刷新

字节打印流

字符打印流

总结

打印流有几种?各有什么特点?

  • 有字节打印流和字符打印流俩种

  • 打印流不操作数据源,只操作目的地

  • 字节打印流:默认自动刷新,特有的println自动换行

  • 字符打印流:自动刷新需要开启,特有的println自动换行

压缩流和解压缩流

解压缩

压缩文件

总结:学完IO流中的工具类,完成数据库连接的登录注册界面,然后学习网络编程。 

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

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

相关文章

SaleSmartly(ss客服)怎么玩转Instagram自动化?

这段时间接触了不少粉丝,一直在说ins营销,说谁谁谁通过这个引流,结果爆了,那我们今天就来简单说一下。Instagram (IG) 是全球最大的照片和视频共享平台,拥有超过10亿的月活跃用户和 5 亿的日活跃Story用户。借助IG的强…

LNMP和论坛的搭建

系列文章目录 文章目录系列文章目录一、LNMP搭建1.承接上文搭建nginx服务2.Mysql数据库搭建3.安装配置 PHP 解析环境4.、部署 Discuz!社区论坛 Web 应用总结一、LNMP搭建 1.承接上文搭建nginx服务 2.Mysql数据库搭建 1、安装Mysql环境依赖包 yum -y install \ n…

不限量免注册,极速体验AI助手

最近 ChatGPT 很火,火到每个人都想玩一把,由于受限,不是在搭梯子就是在搭梯子的路上,现在类 ChatGPT 产品,它终于来了。还是先简单秀一波操作:第一波:大数据记录中,涉及关键字快速检…

vue2路由(上)

路由的简介 什么是路由? 用生活上的例子,路由器上的接口对应一个主机。 而由key和values组成的映射关系就是路由 主要用于SPA单页面应用 就是根据你端口号后面的路径,看你有没有配置这个页面对应的组件,如果有,那么就…

批处理脚本用法总结

目录一、常用命令二、基本语法1. rem 和 ::2. echo 和 3. pause4. errorlevel5. title6. color7. goto 和 :三、常见用法1. 设置临时环境变量2. 启动CMD执行命令3. 打开环境变量窗口参考资料:批处理(Batch),也称为批处理脚本。顾名思义,批处理…

零入门kubernetes网络实战-29->在同一个宿主机上基于虚拟网桥bridge链接不同网段的不同网络命名空间的通信方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 上一篇文章,我们分享了使用虚拟网桥来连接同网段的不同网络命名空间下的通信情况。 那么,本篇文章, 我们想测试一下&…

用ChatGPT快速阅读论文:3个步骤让你轻松阅读论文文档

引言 您是否曾经因为阅读论文而感到困难和无从下手?ChatDOC是一款专为您设计的人工智能工具,帮助您快速理解论文内容。通过上传文档,利用ChatGPT技术,您只需3个简单步骤,即可快速阅读论文,提高阅读效率。立…

[架构之路-162]-《软考-系统分析师》-3-作系统基本原理-进程管理

目录 前言: 3 . 1 操作系统概述 3.1.1 操作系统的类型 2 . 批处理系统 3 . 分时操作系统 4 . 网络操作系统 5 . 分布式操作系统 6 . 嵌入式操作系统 3.1.2 操作系统的软件结构 1 . 整体结构 2 . 层次结构 3 . 客户/服务器结构 4 . 面向对象结构 3 . 2…

一文总结 Shiro 实战教程

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

InstructGLM:基于ChatGLM-6B在指令数据集上进行微调

InstructGLM 基于ChatGLM-6BLoRA在指令数据集上进行微调 https://github.com/yanqiangmiffy/InstructGLM 本项目主要内容: 🚀 2023/4/9 发布了基于100万条由BELLE项目生成的中文指令数据的Lora权重,具体可见output/belle/chatglm-lora.pt&a…

【Spring Boot】SpringBoot设计了哪些可拓展的机制?

文章目录前言SpringBoot核心源码拓展Initializer拓展监听器ApplicationListenerBeanFactory的后置处理器 & Bean的后置处理器AOP其他的拓展点前言 当我们引入注册中心的依赖,比如nacos的时候,当我们启动springboot,这个服务就会根据配置文…

【UE Sequencer系列】05-解决角色动画造成的位移问题

步骤 在上一篇博客制作的动画中,角色反击的动画部分会造成角色瞬移的问题,如下所示: 为了解决这个问题,我们可以做如下操作: 1.首先我的瞬移现象发生在第698帧到699帧的时候,我对第698帧的角色的transfor…

小朋友台灯什么品牌好?盘点儿童护眼台灯排行榜

小朋友自晚上学习时,有台灯肯定比没有台灯好,只要是合格的、能用的台灯,能有一个稳定又亮堂的环境,也不会给眼睛带来伤害。 这几年在台灯品类中出现“护眼灯”,主打是预防或缓解眼疲劳的,在普通台灯的基础是…

电子模块|外控集成 LED 光源 WS2812模块---硬件介绍

电子模块|外控集成 LED 光源 WS2812模块模块简介模块特点机械尺寸模块简介 WS2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路&#xff…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的直方图算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的直方图算法增强(C#)Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像回调中…

如何能基于prompt tuning v2训练好一个垂直领域的chatglm-6b

如何能基于prompt tuning v2训练好一个垂直领域的chatglm-6b 首先先抛出一个问题,是不是所有的文本生成数据集都适合用chatglm 6B的模型进行微调。那我们今天找到了三个数据集,分别为百科数据集、法律问答数据集、论文题目与摘要数据集、专利名称与专利…

stable-diffusion-webui-colab部署记录

stable-diffusion-webui-colab 该模型可以在网上云端部署stable-diffusion,减少本地部署的繁琐步骤降低配置要求的依赖。 一、进入stable-diffusion-webui-colab 1.网址:https://github.com/camenduru/stable-diffusion-webui-colab 在分支中选择driv…

java 坐标体系与绘图

目录 一、坐标体系 1.像素 : 2.坐标系 : 二、绘图 1.机制 : 2.实例 : 3.原理 : 4.常用绘图方法 : 1 setColor(Color c) : 设置画笔颜色 2 drawLine(int x1, int y1, int x2, int y2) : 画直线 3 drawRect(int x, int y, int width, int height) : 画矩形边框 4 fillRec…

【密码学复习】第六讲 HASH函数和MAC(三)

H是一个Hash函数 K表示密钥 B表示计算消息摘要时消息分块的字节长度(对MD5和SHA-1是512比特,64字节) L表示消息摘要按字节计算的长度(对MD5是16字节) ipad表示0x36重复B次,opad表示0x5c重复B次。 K可以…

腾讯云轻量服务器价格表(2023版)

2023腾讯云轻量应用服务器2核2G4M带宽88元一年、2核4G6M带宽159元/年、4核8G10M优惠价425元、8核16G14M价格1249、16核32G20M服务器2499元一年,今天分享2023腾讯云服务器配置及精准报价。 腾讯云轻量应用服务器优惠价格表 腾讯云服务器分为轻量应用服务器和云服务器…