java输入输出流的本质是什么?

Python07

java输入输出流的本质是什么?,第1张

Java输入输出流的本质是I/O操作,是指使用Java进行输入输出操作。Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。

流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件、内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的。在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader和 Writer是后来加入作为补充的。

基础概念

1. 关键字和保留字

关键字:就是java语言中已经事先定义好具有特殊含义的名字。

保留字:目前java语言中还没有使用(暂时没有特殊含义),但是java后期可能会使用

2.标识符

标识符的作用?

用于给变量常量、类、包和方法取名的规则。

标识符的规则:

由数字、字母、下划线和$组成,但是开始不能为数字。

标识符不能是关键字或保留字。

标识符对长度没有任何限制。

补充:因为java采用的是unicode编码,所以标识符还可以是中文,但是不建议使用。

命名规范

类名:大驼峰。每个单词首字母都是大写。例如:VariableDemo

变量名、方法名:小驼峰。首单词字母小写,其余单词字母大写。例如:userName

常量名:全部单词大写,多个单词以下划线连接。例如:MAX_VALUE

包名:单词全部小写。

3.变量

变量的本质:变量在内存中开辟一块内存空间(容器),用来存储数据的容器。

变量声明的本质:在内存中开辟一块指定大小的内存空间,用于准备存储指定类型的数据。(数据类型 变量名)

变量赋值的本质:通过变量名找到内存中的存储空间,然后把等号右边的数据存入该内存中间中。(变量名 = 数据)

"=",赋值运算符,把等号右边的数据赋值给等号左边的变量

赋值的数据类型必须和声明变量的数据类型保持一致。

总结:

赋值的数据类型必须和声明变量的数据类型保持一致。

只声明未赋值的局部变量不能直接使用,因为没有初始值。

在同一个作用域中,不能声明相同名的变量。

变量名的命名必须遵守“标识符”规则,并且还需遵守“小驼峰”命名规范

没有声明的变量不能直接使用,因为该“变量”什么都不是。

4.常量

常量和变量的对比

常量:只能赋值一次。

变量:可以重复多次执行赋值操作。

固定值常量

整数常量:10, 20, ....

小数常量:123.45, 3.1415926, ...

字符常量:'a', '1', '我', ... (使用单引号包裹的一个字符,我们称之为字符常量)

布尔常量:true和false

字符串常量:"hello world", "", "sxt", ... ( 使用双引号包裹的内容,都属于字符串常量)

引用数据类型常量:null

使用final关键字修饰的常量

常量声明语法:final 数据类型 常量名

常量名的命名规范:单词全部大写,多个单词以下划线连接。

常量名的命名规则:必须遵守“标识符”的命名规则。

5.常见的转义字符

\t, 制表符,类似于按下tab键

\n, 换行符,类似于按下enter键

\", 展示的时候,只显示输出"

\', 展示的时候,只显示输出'

\\, 展示的时候,只显示输出\