【Java文件流】你的“转换流、对象流、打印流、Properites”学习资料

适航文章汇总:知识体系全面梳理 无论您是行业新手还是经验丰富的专业人士,都可以通过本篇文章快速查找相关资料,提高对适航认证、机载系统、软件及硬件等领域的理解。本部分详细解析ARP 4754A、ARP 4761、DO-178C、DO-254等核心标准,并介绍其在机载系统开发中的应用。介绍FAA、EASA、CCAR等主要航空管理机构的适航规章体系,并说明各类飞行器(如固定翼、旋翼机、无人机等)的适航要求。本部分还探讨硬件设计、验证与确认过程中的挑战。从系统架构设计到机载设备的集成与管理,本部分介绍机载系统的研发体系及适航管理的最佳实践。 阅读详情

在我学习Java的IO流过程中,有很多的类、每个类又有很多方法。经过我的几天经历,在看懂、听懂了别人的讲解后,一定要自己去敲出来,在IDE中运行出来,在一定程度上才算了解了这个东西。

尝试:

  • 牢牢把握、心中有数:类与接口之间的继承、实现关系;
  • 只要有继承、实现,方法就一定是通用的;
  • 心中清晰:有哪些类、接口,他们的主要功能是什么;

转换流

**转换流的功能:**将字符流和字节流,互相转换,并附加编码格式。

  • InputStreamReader:字节到字符的桥梁。将字节流以特定的编码格式,转换为字符流。
  • OutputStreamWriter:字符到字节的桥梁。将字符流以特定的编码格式,转换为字节流。

结构体系

- java.lang.Object
  - java.io.Writer
    - java.io.OutputStreamWriter
      - java.io.FileWriter

- java.lang.Object
  - java.io.Reader
    - java.io.InputStreamReader
      - java.io.FileReader

FileWriter类和FileReader类:

  • 作为子类,仅作为操作字符文件的便捷类存在。
  • 当操作的字符文件,使用的是默认编码表时可以不用父类,而直接用子类就完成操作了,简化了代码。

OutputStreamWriter类

功能: 在将文本写入到磁盘文件的过程中,指定编码格式。

构造方法:

  • OutputStreamWriter(OutputStream out)
  • OutputStreamWriter(OutputStream out, String charsetName)

快速理解OutputSteamWriter:

import java.io.IOException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) throws IOException {
		writerGBK(); //文件大小为4KB,因为GBK对中文是一个字2位Bytes
		writerUTF8(); //文件大小为6KB,因为UTF-8对中文是一个字3为Bytes
	}
	//将文本写入到磁盘文件中,以GBK编码形式写入
	public static void writerGBK() throws IOException {
		FileOutputStream fos = new FileOutputStream("C:\\users\\kyle\\desktop\\a.txt");
		OutputStreamWriter osw = new OutputStreamWriter(fos/*,"GBK"*/); //因为win10默认GBK编码,这里可以不用指定,默认使用系统编码
		osw.write("你好");
		osw.close();
	}
	//将文本写入到磁盘文件中,以UTF-8编码形式写入
	public static void writerUTF8() throws IOException {
		FileOutputStream fos = new FileOutputStream("C:\\users\\kyle\\desktop\\b.txt");
		OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
		osw.write("你好");
		osw.close();
	}
}

InputStreamReader

功能: 在将磁盘上的二进制文件读入到内存的过程中,指定解码格式。

快速理解InputStreamReader:

import java.io.IOException;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		readGBK(); //如果文件不是以GBK编码写入的,那么以GBK编码读取就会读出乱码
		readUTF8();
	}
	//从磁盘文件中读入内存,以GBK编码形式读入
	public static void readGBK() throws IOException {
		FileInputStream fis = new FileInputStream("C:\\users\\kyle\\desktop\\a.txt");
		InputStreamReader isr = new InputStreamReader(fis,"gbk");
		char[] ch = new char[1024];
		int len = isr.read(ch);
		System.out.println(new String(ch,0,len));
		isr.close();
	}
	//磁盘文件中读入内存,以UTF-8编码形式读入
	public static void readUTF8() throws IOException {
		FileInputStream fis = new FileInputStream("C:\\users\\kyle\\desktop\\a.txt");
		InputStreamReader isr = new InputStreamReader(fis,"utf-8");
		char[] ch = new char[1024];
		int len = isr.read(ch);
		System.out.println(new String(ch,0,len));
		isr.close();
	}
}

对象流

诞生背景:

  1. 当创建对象时,程序运行时它就会存在,但是程序停止时,对象也就消失了。
  2. 但是如果希望对象在程序不运行的情况下仍能存在并保存其信息,将会非常有用,对象将被重建并且拥有与程序上次运行时拥有的信息相同。可以使用对象的序列化。

对象流的两种类型:

  1. 对象的序列化:将内存中的对象直接写入到磁盘文件中。ObjectOutputStream。
  2. 对象的反序列化:将磁盘文件中的数据转换为内存对象。ObjectInputStream。

对象流框架:

  • ObjectOutput接口
    • ObjectOutputStream类:被写入的对象必须实现一个接口Serializable,该接口根本没有任何方法,直接“implements Serializable”即可。否则会抛出:NotSerializableException
  • ObjectInput接口
    • ObjectInputStream类:如果没有找到类的反序列文件,则抛出异常:ClassNotFountException

ObjectOutputStream

功能: 实现序列化,把对象写入到磁盘文件。

反序化的条件:

  1. 序列化时写入的文件;
  2. 被序列化类的class文件;注意被序列化类一定要单独成一个源文件,且保证该单独类的class没有丢失;

特性:

  1. 如果对象需要被写出到文件上,那么对象所属的类必须要实现Serializable接口 。Serializable接口没有任何的方法,是一个标识接口而已。
  2. 如果一个对象某个数据不想被序列化到硬盘上,可以使用关键字transient修饰。
  3. 静态变量和方法不能被序列化 !

理解序列化:

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.FileOutputStream;

public class Main {
	public static void main(String[] args) throws IOException {
		writerObjectToFile();
	}
	public static void writerObjectToFile() throws IOException {
		String path = "C:\\users\\kyle\\desktop\\object.obj";
		FileOutputStream fos = new FileOutputStream(path);
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		Person p = new Person("KYLE",20);
		oos.writeObject(p);
		oos.close();
	}
}

//被序列化类
class Person implements Serializable {
	private String name;
	private int age;
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	public String toString() {
		return "name: " + this.name + "; age: " + this.age;
	}
}

ObjectInputStream

功能: 实现反序列化,从磁盘文件读入到内存中。

反序化的条件:

  1. 序列化时写入的文件;
  2. 被序列化类的class文件;

特性:

  1. 对象的反序列化创建对象的时候并不会调用到构造方法。

反序列化使用示例

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class Test {
	public static void main(String[] args) throws IOException, ClassNotFoundException {
		readObjectFromFile();
	}
	public static void readObjectFromFile() throws IOException, ClassNotFoundException {
		String path = "C:\\users\\kyle\\desktop\\Object.obj";
		FileInputStream fis = new FileInputStream(path);
		ObjectInputStream ois = new ObjectInputStream(fis);
		
		Object obj = ois.readObject();
		ois.close();
		System.out.println(obj);
	}
}

序列号问题

序列号(serialVersionUID)作用:
A. 标识一个序列化后的类,如果类再发生改变后序列化,相应的序列号也会发生改变。
B. serialVersionUID是用于记录class文件的版本信息的,serialVersionUID这个数字是通过一个类的类名、成员、包名、工程名算出的一个数字。

序列号问题的现象:

  1. 第一次序列化完毕,不对序列化类有任何修改,立即反序列化,是成功的
  2. 第一次序列化完毕,再对类做出修改,反序列化,则失败

产生序列号问题的原因(仔细阅读):

  1. 一个完整的类,状态为A

  2. 对其进行序列化,得到序列码为001
    a) 因为实现了Serializable接口,编译过程中,会有一个序列号在class文件中生成;
    b) 并且会把这个序列号写入到ObjectOutputStream对象所在的磁盘文件中;

  3. 这时对其反序列化,JVM会比较class文件中的序列号 和 ObjectOutputStream对象所写磁盘文件中 的序列号是否一致。一致,则反序列化成功。

  4. 这时,我修改了类的内容,使其变为了状态B

  5. 执行类的源文件编译,使得类的class文件中的序列号变为了002,而ObjectOutputStream对象所写磁盘文件中 的序列号依然是001

  6. 执行反序列化,两个序列号不一致,反序列化失败,抛出“InvalidClassException”异常。

如何解决: 即实现即时修改了源代码,也不重新计算序列号

  1. 做一个终身不变得序列号
  2. 在需要被序列化类中添加一行代码:“static final long serialVersionUID = 45645452L;”,等号的右边的数字可以自定义
  3. 这时编译器就不会给类计算序列号,而直接使用我们制定的序列号,从而避免了每次编译了都改变了序列号

打印流

功能: 向某种流容器中写入数据

打印流的两种类型:

  • PrintStream
  • PrintWriter

特性:

  1. 只能输出,不能输入。即此流不负责数据源,只负责数据目的
  2. 为其他输出流,添加功能
  3. 永远不会抛出IOException异常

类框架:

java.lang.Object				     java.lang.Object
 java.io.OutputStream				   java.io.Writer
  java.io.FilterOutputStream			 java.io.PrintWriter
   java.io.PrintStream

共性方法:

  1. void print(被打印内容); 打印完毕后不换行
  2. void println(被打印内容); 打印完毕后换行
  3. void write(被打印内容); Notice:print是完全安全原格式打印,write打印是走编码表,即先编码后打印

PrintWriter类使用示例:

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

public class Main {
	public static void main(String[] args) throws IOException {
		String path = "C:\\users\\kyle\\desktop\\a.txt";
		File file = new File(path);
		PrintWriter pw = new PrintWriter(file);
		pw.print(100);//不换行
		pw.println("hello"); //打印完后换行
		pw.print("kyle");
		pw.flush(); //字符流必须刷新,否则在文件中看不到
		pw.close();
	}
}

Properites类

类功能:

  1. 将软件中可变部分(操作、参数)的数据可以定义到一个文件中,方便以后更改,该文件称之为配置文件。
  2. Properites类就提供这个配置文件的读写操作。

类的本质:

  1. 是Hashtable的子类,map集合中的方法都可以用。
  2. 存储的是键值对,作用是持久化该键值对。键值都是字符串。

类特性:

  1. 该集合没有泛型。
  2. 有和流技术相结合的方法。

类框架:
在这里插入图片描述

构造方法:

  1. Properties() 创建一个无默认值的空属性列表。
  2. Properties(Properties defaults) 创建一个带有指定默认值的空属性列表。

类方法:

  1. 存入配置项:Object setProperty(String key, String value) 本质上是调用 Hashtable 的put方法。jdk1.6版本。

  2. 获取配置项:String getProperty(String key) 用指定的键在此属性列表中搜索属性。

  3. 将Properties类中的键存储到Set集合中:Set<String> stringPropertyNames() 类似于Map接口的方法keySet

  4. 使用方法:Properties类对象直接调用方法即可。

  5. 从配置文件加载:
    a) void load(InputStream inStream) 从Properties类对象所指的流中加载属性列表(键和元素对),以字节流的形式。jdk1.6版本。
    b) void load(Reader reader) 从Properties类对象所指的流中加载属性列表(键和元素对),以字符流的形式。

  6. 写入到配置文件:
    a) void store(OutputStream out, String comments) 以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。comments不要写中文。
    b) void store(Writer writer, String comments) 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。comments不要写中文。

快速理解Properties的使用方式:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class Main {
	public static void main(String[] args) throws IOException {
		storeProperties(); //写入到配置文件
		loadProperties(); //从配置文件加载
	}
	public static void storeProperties() throws IOException {
		Properties pro = new Properties();
		pro.setProperty("name", "kyle");
		pro.setProperty("age", "23");
		pro.setProperty("sey", "man");
		String path = "C:\\users\\kyle\\desktop\\pro.properties";
		
		FileOutputStream fos = new FileOutputStream(path); //FileWriter fw = new FileWriter(path);
		pro.store(fos, "Write you why change you config file. Notice:Not to write Chinese.");
		fos.close();
	}
	public static void loadProperties() throws IOException {
		String path = "C:\\users\\kyle\\desktop\\pro.properties";
		FileInputStream fos = new FileInputStream(path); //FileReader fr = new FileReader(path);
		Properties pro = new Properties();
		
		pro.load(fos); //文件中的流对象已经到Properties对象中
		fos.close();
		System.out.println(pro);
	}
}
win10 跳过U8环境检测的IE WebControls.rar win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。 立即下载

相关推荐

ZYNQ千兆网UDP通信实战:从Vivado配置到LWIP优化全流程(附避坑指南)

本文详细介绍了在ZYNQ平台上实现千兆以太网UDP通信的全流程,包括Vivado硬件配置、LWIP协议栈优化及实战代码示例。通过关键参数调整和性能优化,系统吞吐量可提升至850Mbps以上,适用于高速网络通信场景。

weixin_29161785的博客 230

Java基础复习12各种流(转换,对象,打印),第三方工具(commonsIO)

转换流(可以根据需求修改编码表) 乱码的原因 因为文本在存储时使用的映射码表和在读取时使用的码表不一致造成的。 编码表(了解) 在计算机中无论任何数据的传输、存储、持久化,都是以二进制的形式体现的。 那么当我存一个字符的时候,计算机需要持久化到硬盘,或者保存在内存中。 这个时候保存在内存、硬盘的数据显然也是二进制的。 那么当我需要从硬盘、内存中取...

towerLJYT的博客 323

(遇到问题)(已解决)word敲入的公式转化为mathtype

https://www.mathtype.cn/wenti/wordgongshi-zhuanhuan.html 现在越来越多的人在文档中编辑公式的时候会选择MathType来编辑,因为它包含有众多的数学符号和模板,编辑公式时非常方便。但是也有一些人在编辑公式时没有使用MathType公式编辑器,直接使用Word中自带的公式编辑器来编辑的。当我们需要要共享一份文件的时候,这种用自带公式编辑器编辑出来的文件,在我们安装有MathType公式编辑器的电脑里打开时,双击公式没有反应,是无法对它们进行修改的.

计算机视觉 1万+

黑马程序员——JAVA基础---打印流对象

打印流对象   System.out 返回值结果PrintStream就是打印流   println()是PrintStream类的方法   PrintStream永远不会抛出IO异常,只操作数据目的,不操作数据源,添加功能到别的流对象。   打印流作用:日后凡是看到需要输出数据,优先选择打印流,Web开发,服务器使用打印流将数据打印到客户端浏览器。   第一个打印流是字节输出流 Pri

shang741815151的专栏 837

Python反爬实战|动态渲染+高可用IP代理集群,稳定爬取京东/淘宝10万+商品数据

做Python电商爬虫的同学,应该都对京东、淘宝的反爬机制深有体会——这两个平台的反爬体系,堪称国内网站的天花板,远比普通资讯、政务网站的反爬严格十倍不止。用requests库请求商品列表,返回的永远是只有骨架的空HTML,商品标题、价格、销量全是前端JS异步加载,抓包分析接口发现参数全是加密的signtoken,解密成本无限高;用selenium开无头浏览器爬取,刚爬3-5页就触发风控,页面直接返回403,IP被封禁,甚至连Cookie都直接失效;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1585

车载以太网:PHY(物理层)介绍

本文以TJA1101芯片为实例介绍了车载以太网PHY(物理层)组成。

kevin1499的博客 6231

Java从命令行输入和输出数据

输入基本型数据 在Java基本类型介绍 一节中提到,Java程序都是由若干个类组成的,所以输入也是一个类。 Scanner类 Scanner类用与创建一个对象:Scanner reader = new Scanner(System.in) 然后reader对象可通过以下函数对应读取用户在命令行输入的各种基本类型: nextBoolean(),nextByte(),nexyShort(),nex...

x1aolin 1万+

9、从统计到电路:未来物理不可克隆函数的基础

本文探讨了物理不可克隆函数(PUF)的关键技术,包括补偿环境影响、处理相关工艺变化、身份映射和测试方法。提出了一种基于新测试统计量Q的方法,有效提升了PUF的熵值和安全性。通过实验验证,新方法能够显著区分不同芯片,并增强PUF在不同环境下的适应性和可靠性,为未来PUF的设计与应用提供了重要基础。

pluto的博客 117

print流----对象输入输出流----对象序列化

文章目录print流print流: 只做输出没有输入PrintWriter:字符打印流对象输入输出流对象序列化,反序列化配置序列号的方法Settings--> Inspectionstransient关键字 print流 print流: 只做输出没有输入 打印流分为字节打印流和字符打印流 PrintWriter:字符打印流 print方法可以打印各种类型数据 对象输入输出流 主要的作用是用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化了 对象的输出流: Obje

qq_44126024的博客 752

YOLOv11涨点改进| CVPR 2026 | 全网独家首发、特征融合改进篇| 引入SRFusion 空间细化多级融合,含多种创新融合改进,涨点可直接发论文,适合裂缝图像检测,小目标检测任务高效涨点

🔥本文提出SRFusion空间细化多级融合模块,用于改进YOLOv11网络模型。该模块通过高分辨率特征引导低分辨率语义特征的融合,利用空间注意力机制对上采样后的特征进行加权细化,增强多尺度特征间的空间细节交互。SRFusion模块能够提升模型对目标区域的表达能力,有效改善小目标、密集目标及复杂背景场景下的检测效果,同时保持YOLOv11的高效性与实时检测性能。文章详细介绍了模块结构、实现原理、核心代码及在YOLOv11中的三种配置方法,为模型优化提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 148

120、NPU的Mythic M1076:模拟存算一体NPU

这篇文章分享了作者调试Mythic M1076模拟存算一体NPU的实战经验,主要包含以下要点: 硬件设计陷阱:参考电压输入必须使用低ESR电容,普通贴片电容会导致模拟计算阵列工作异常。 核心技术原理: 采用真正的存算一体架构,将权重存储为模拟电压 使用浮栅晶体管存储权重,通过电流叠加实现乘法运算 包含108个计算单元阵列(Tile),每个256×256规模 使用注意事项: 编程模型特殊,需要依赖SDK自动映射网络层 存在6-8位有效精度限制,需用量化感知训练 功耗特性独特,静态偏置电流占主要功耗 调试手段有

m0_50546716的博客 122

【Java数据类型】各种数据类型的相互转换总结

基础数据类型包括:byte、short、int、long、float、double、char、String、boolean,在许多场合需要用到它们的相互转换。本文,将介绍几种转换方式,以及对转换方式的原理简要介绍。

极客-多重人格递归 2036

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【Java文件流】为什么要诞生“字符流”,字节流不是更胜任二进制数据的处理吗?

根本原因是由于人和机器的差距:机器擅长处理二进制的机器码,而人只能处理特殊的字符(如"a","你好")。于是,采用字符流来作为`人能读的文件`与`机器能读的文件`之间的转换桥梁。

极客-多重人格递归 1882

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【JavaSE基础 】Eclipse教程

JavaSE基础 — Eclipse教程01: Eclipse下载安装下载安装试一试02: Eclipse基础配置配置指定的JDK设置字体颜色03: Eclipse快捷使用Ctrl系列Alt系列Ctrl + Alt系列Ctrl + Shift系列 01: Eclipse下载安装 特性:免费、适合新手、单一、可拓展 以2019.3版本为例! 下载 点击进入Eclipse官网,按照以下图示操作。 ...

极客-多重人格递归 1619

【Java多线程】多线程之间是如何实现通信的?

你和你的朋友共同完成一个任务,你们随时交流对方的工作进度,因为有些任务是要对等待对方先完成再做,这个过程就是线程通信。

极客-多重人格递归 1573

【Java】基于time包的日期时间

自JDK1.8以后,Java在日期时间处理上引入了新的API,使得Java在日期时间上的处理更加逻辑严密。

极客-多重人格递归 1220

【Java】流(Stream)快速入门

JDK在简化代码(写尽量少的代码,做更多的事)上做出了很大的努力,例如Lambda简化了接口方法调用上的代码量,而流(Stream)简化了集合元素中操作的代码量。

极客-多重人格递归 1200

【Java异常】干净明了的Java“异常”机制详解

异常,即不正常,我们的代码出现的编译或者运行时的错误。本文,将带你了解Java的异常机制的基础语法,为以后的学习和开发打好基础。 文章目录异常体系结构throwable类编译时期异常运行时期异常异常的处理异常的捕获和处理try-catchtry-catch-finally异常的抛出自定义异常类 异常体系结构 Throwable 类是 Java 语言中所有错误或异常的超类。其下主要分为两种类型:Er...

极客-多重人格递归 1168

【JavaSE基础】如何选择Eclipse或IntelliJ IDEA

Eclipse和IntelliJ EDEA我到底该选择哪一个作为我的IDE?   IntelliJ IDEA被认为是目前Java开发效率最快的IDE工具,Eclipse却是大多数Java程序员使用的第一个IDE,且市场份额也是远超IntelliJ IDEA。作为Java新手,如何从其中两个IDE选择一个适合自己的呢? Eclipse优势 1、项目结构清晰明了。Eclipse中存在由工程组成的工程区...

极客-多重人格递归 1070

【Java文件流】简单明了的“编码”教程

很多人说,编码与解码太迷了,根本不知道它是在编码什么,在解码什么。或许这时,你应该尝试一下我这篇文章。

极客-多重人格递归 966

【Java数据类型】运算符及其优先级详解

运算符 运算符的核心用途就是执行数学运算。计算出其左右连接的数学数字作为结果返回。 类别: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 算术运算符 + - * / %:其中任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。 +:字符串的连接符。 ++, --:自增,自减 //程序功能:快速理解Java的算术运算符 public class Opera...

极客-多重人格递归 797

【JavaSE初识】Java发展历史概要

JavaSE初识 — Java发展历史概要(03)Oak语言JavaJ2SE、J2EE、J2MEJavaSE、JavaEE、JavaME被Oracle收购 Oak语言   语言最开始只是Sun计算机(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目——“Stealth计划”,后来改名为“Green计划”。   他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一...

极客-多重人格递归 696

【Java集合】逻辑结构超强、表达十分清晰的“Collection接口”及“List接口、Set接口”解析

如标题,你将获得Collection、List、Set接口,以及其实现类ArrayList,LinkedList,HashSet、TreeSet类的讲解。

极客-多重人格递归 653

【Java网络】快速入门网络编程

网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。 —— 百度百科

极客-多重人格递归 642

【Java编程范式 】命名与排版

“假如生活欺骗了你,不要悲伤,不要心急!忧郁的日子里须要镇静:相信吧,快乐的日子将会来临!—— 普希金” 内容概述 命名原则:4条命名原则;常量命名、变量命名、方法命名、类命名、接口命名、包命名; 命名强制性要求:语法规定;仅由字母、数字、_、$组成; 排版原则:缩进;断开长句;使用空行、空格; 命名原则 1.名称应该有实际意义 当我们为变量、方法、类或者常量...

极客-多重人格递归 579

【Java类与对象】Object类的简单认识

Object类是Java中所有类的始祖,每个类(不管是内置还是你自己定义)都继承于java.lang.Object类。这意味着,每个类都会有Object类中的成员方法。

极客-多重人格递归 507

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 44
上一篇: 【Java文件流】简单明了的“编码”教程
下一篇: 【Java多线程】快速入门Java的并发机制
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值