二,变量(variable)
1.变量的本质
- 变量本质上就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放的值不确定。
- 可通过变量名访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
- java是一种强制性语言,每个变量都必须声明其数据类型,变量的数据类型决定了变量占据存储空间的大小。
1.1,使用变量时应注意
使用变量注意:
- Java 中每个变量必须先声明,后使用;
- 使用变量名来访问这块区域的数据;
- 变量的作用域:其定义所在的一对{ }内;
- 变量只有在其作用域内才有效;
- 同一个作用域内,不能定义重名的变量;
1.2,声明变量
- 语法:<数据类型> <变量名称>
- 例如:int var;
1.3、变量的赋值
语法:<变量名称> = <值>
例如:var = 10;
2.基本数据类型
变量的分类-按数据类型
2.1整数类型:byte、short、int、long
类型 占用存储空间 表数范围
byte 1字节 -128 ~ 127
short 2字节 -2^15~ 2^15-1
int 4字节 -2^31~ 2^31-1 (约21亿)
long 8字节 -2^63~ 2^63-1
2.2浮点类型:float、double
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型。
2.3字符类型:char
- char 型数据用来表示通常意义上“字符”(2字节)
- Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
- 字符型变量的三种表现形式:
- 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
2.4布尔型:boolean - //① 只能取两个值之一:true 、false
- //② 常常在条件判断、循环结构中使用
按照数据类型来分:
- 基本数据类型:
整型:byte \ short \ int \ long
浮点型:float \ double
字符型:char
布尔型:boolean - 引用数据类型:
类:class
接口:interface
数组:array
3,基本数据类型转换
自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
boolean类型不能与其它数据类型运算。
当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
基本数据类型之间的运算规则:
前提:这里讨论只是7中基本数据类型变量的运算。不包含boolean类型的。
-
自动类型提升:
当容量小的数据类型的变量和容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
char、byte、short–>int–>long–>float–>double特别的:当byte、char、short三种类型的变量做运算时,结果为int类型
-
强制类型转换:
说明:此时容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
- 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。
- 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
如:String a = “43”; inti= Integer.parseInt(a);
boolean类型不可以转换为其它的数据类型。
- ASCII表
因为计算机内部只能识别01二进制数字,对于数字而言,
可以直接转换为二进制,但是对于人类的文字而言如何
转换为二进制的01呢?因为自己算最早出现在美国,所以
美国就编写了一张码表,将人类的语言和符号和计算机
中的01进行对应
-
当输入人类语的时候,操纵系统就会去查询对应的码表,
将这些语言转换为对应的二进制,因为是美国人的语言
只有英文,所以ASCII中只有英文和一些标点,每个英文
字母和符号对应一个字节(8位)的二进制数字
不需要我们全部记忆,只需大家记住(09)对应(4857),
(AZ)对应(6590),(az)对应(97122) -
因为不能识别中文,所以中国编写自己第一张简体中文
编码表GB2312(简体中文,符号,日本假名),因为存的字
有限,所以后来升级成为GBK(增加繁体中文和少数名族
文字),我们的操作系统,如果设置成中文就是GBK编码 -
因为后来出现了很多码表,所以世界标准组织ISO推出
了Unicode编码表(万国码表),规定一个字符占用两个字
节
所有的编码表都支持ASCII编码表
4,字符串类型:String
String不是基本数据类型,属于引用数据类型
使用方式与基本数据类型一致。例如:String str= “abcd”;
一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。