java变量基础
- 变量的使用
- 变量的分类-按数据类型
- 数据类型
- 整型类型:byte、short、int、long
- 浮点类型:float、double
- 布尔型:boolean
- 基本数据类型之间的运算规则
变量的使用
java定义变量的格式:数据类型 变量名 = 变量值;
public class Variable {
public static void main(String[] args) {
//变量的定义
int myAge = 12;
//变量的使用
System.out.println(myAge);
//System.out.println(myNumber); //编译错误,使用myNumber之前并未定义过myNumber
//变量的声明
int myNumber;
//变量的赋值
//System.out.println(myNumber); //编译错误,使用myNumber之前并未赋值过myNumber
myNumber = 1001;
System.out.println(myNumber);
//System.out.println(myClass); //编译报错:变量作用域在method方法中,不能在main方法中使用
//int myNumber = 1002 //编译报错,同一个作用域中不能出现重名变量
}
public void method(){
int myClass = 1;
}
}
变量的分类-按数据类型
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间
数据类型
- 基本数据类型(primitive type)
- 数值型
- 整数类型(byte,short,int,long)
- 浮点类型(float,double)
- 字符型(char)
- 布尔型(boolean)
- 引用数据类型
- 类(class)(字符串)
- 接口(interface)
- 数组([])
整型类型:byte、short、int、long
- Java中各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
- java的整型常量默认为int型,声明long型常量必须后加“l”或“L”
- java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
类型 | 占用存储空间 | 表数范围 |
byte | 1字节 = 8bit位 | -128——127 |
short | 2字节 | -215——215-1 |
int | 4字节 | -231——231-1(约21亿) |
long | 8字节 | -263——263-1 |
浮点类型:float、double
- 与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响
- 浮点型常量的两种表示形式:
- 十进制数形式:如5.12 5.12of 5.12(必须有小数点)
- 科学计数法形式:如5.12e2 512E2 100E-2
- float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求(float表示数值的范围比long还大)
- double:双精度,精度是float的两倍。通常采用此类型(浮点型常量默认double类型)
- java的浮点型常量默认为double型,声明float型常量,须后加“f”或“F”
类型 | 占用存储空间 | 表数范围 |
单精度float | 4字节 | -3.403E38——3.403E38 |
双精度double | 8字节 | -1.798E308——1.798E308 |
布尔型:boolean
- 只能取两个值之一:true、false
- 常常在条件判断、循环结构中使用
基本数据类型之间的运算规则
注意:这里只讨论7中基本数据类型变量间的运算。不包含boolean类型的
- 自动类型提升
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
byte、char、short---->int------>long------>float----->double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型
- 强制类型转换
自动类型提升运算的逆运算
①需要使用强转符:()
②注意:强制类型转换可能导致精度损失
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量