Java—变量
一、变量的分类
1.1 按数据类型分类
1.1.1 基本数据类型(四类八种)
☛ 引用数据类型的特点
存的是地址值,可以为null值
☛ 基本数据类型的特点
存的是具体的值,不可以是null值
☛ 整型
整型 | 取值范围 | 字节数 |
---|---|---|
byte(字节) | -128 ~ 127 | 1byte |
short(短整型) | - | 2byte |
int(默认整型) | - | 4byte |
long(长整型) | 12345678L | 8byte |
☛ 浮点 | ||
浮点数 | 字节数 | 例子 |
---- | ---- | ---- |
float(单精度) | 4byte | 0.98f |
double(双精度)默认 | 8byte | 0.98 |
☛ 布尔 |
boolean(true/false) 1/8byte
☛ 字符
char 0~65535 2byte
注:需要注意这8种在内存中的存储大小,便于后续的性能调优工作。
1.1.2 计算机的组成原理&程序的运行原理
1.1.2.1 计算机的组成(冯 • 诺依曼计算机)
存储器:
内存条(RAM) ==> 临时性存储数据 ==> 断电,数据丢失
硬盘(ROM) ==> 持久性存储数据 ==> 断电,数据不丢失
1.1.2.2 程序的执行原理
由硬盘的程序加载到内存中,由cpu调配
cpu:中央处理器 ==> 运算和存储数据
gpu:显卡 ==> 读取图片等
1.1.2.3 程序的性能调优
☞ 处理多大的数据,就用多大的容器(即变量/对象)存储; 不要无节制地创建容器 ☞ 程序是自上而下执行的,没有执行必要的代码,要想方设法地结束程序 ☞ 只需要一个引用类型开辟的内存空间,那么要注意不要被多次重新创建 |
1.2 按声明的位置分类
二、变量的写法
① <数据类型> <变量名> = <值>;
② <数据类型> <变量名>;
<变量名> = <值>;
③ <数据类型> <变量名1> = <值1>, <变量名2> = <值2>...;
④ <数据类型> <变量名1> , <变量名2> ...;
三、数据类型转换
① 隐式数据类型
byte b = 123;
解析:先判断int类型的123是否超出了byte类型的取值范围,没有超出,则把int 123 转为 byte 123,再赋值给变量b
② 自动类型提升
double d = 12563L;
结论:容量(取值范围)小的数据类型可以自动提升为容量大的,byte到double的提升:
byte、short、char —> int —> long —> float —> double
③ 强制类型转换(自动类型提升的逆过程)
byte b = (byte) 128;
结论:容量大的数据类型需要强制转换为容量小的。
注:强制类型转换,有可能损失精度。