1.变量
用一个名字如x,y,z等表示一个可能在不断变化的数值或者其他数据。 在java中我们把这个名字称之为变量名(标识符),名字所代表的内容称之为变量值。
此处有一个误区,不是数学计算必须创建变量,变量是为了做大量操作而应运而生的。
x=1;y=5;x+y 计算得6 这是通过变量存储计算
1+5同样可以计算出6 这是通过字面量计算
每一个变量可以理解成一个箱子。箱子里保存我们想要的数据。
2.数据类型
在给变量申请存储空间时,如何表示这个存储空间的大小,数据保存时非0既1,如何表示存储空间的数据的维护规则?如果是数值,要考虑正负号还要能够数学计算,如果是小数还要考虑小数精度。那么使用一组特殊文字来表示,要申请的空间大小与存储规则。数据类型的概念就此产生。
Java中数据类型被分为两大类型:基本数据类型和引用数据类型
基本数据类型底层保存的数据本身。
引用数据类型底层保存的则是数据保存的地址,使用时可以通过该地址找到存储的数据。
注意,引用数据类型不等于引用传递,Java中只有值传递没有引用传递。(引用传递是C语言中的概念,将变量的地址传递给使用的地方。但是在Java中,虽然引用数据类型的变量的值保存得是地址,但依然是传递的变量的值,只不过值保存的是地址。其实这也是Java语言中没有指针概念的原因,引用数据类型存储的地址对标其他语言中的指针数据。Java中的指针数据不可数学运算,不可程序员自我指定,保障了内存访问的安全。)
基本数据类型(8种)
类型 | 名称 | 内容 | 默认值 | 存储空间 |
数值型 | double | 小数 | 0.0d | 8 |
float | 小数 | 0.0f | 4 | |
long | 整数 | 0l | 8 | |
int | 整数 | 0 | 4 | |
short | 整数 | 0 | 2 | |
byte | 字符 | 0 | 1 | |
字符型 | char | 字符 | ‘\u0000’ | 2 |
布尔型 | boolean | 对错 | false | 1 |
引用数据类型:除了基本数据类型外任何数据类型都是引用数据类型
PS:存储空间:在计算机中不管怎样的数据最终都会用大量的1和0表示,我们称之为二进制。 每8个二进制数为一组,我们称之为字节。(一个字节占8位二进制)
3.数据类型转换:
不同的数据类型变量赋值时:
1、低精度的变量是隐式数据类型转换可以直接赋值到高精度变量
2、高精度的变量要强制类型转换赋值到低精度变量
数据类型转换时导致数据的变化称为精度丢失,可能丢失取值范围也可能数值精度,自动数据类型转换不代表不会发生精度流失。最常见的是long类型自动转换为float或者double,但是精度可能会丢失。
强制类型转换:(要转换的数据类型)被转换的变量
例如:(int)b
精度排序为:byte->short/char->int->long->float->double