什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。
无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”(二进制0或1就会占用1个比特位),通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成(11111111)。当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,若只需要一个位,也会分配给一个字节。像需要1支烟,你到商店去买烟,商店只会卖给你一盒烟。
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
四类 | 八种 | 字节数 | 数据表示范围 |
整型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int | 4 | -2147483648~2147483648 | |
long | 8 | -263~263-1 | |
浮点型 | float | 4 | -3.403E38~3.403E38 |
double | 8 | -1.798E308~1.798E308 | |
字符型 | char | 2 | 表示一个字符,如('a','A','0','家') |
布尔型 | boolean | 1 | 只有两个值true与false |
java中默认的浮点类型是double类型,浮点型就加F,例如1.26F
定义变量时要有三要素,即 类型(java中规定) 变量名字(方便查找4字节相当于4GB或者8GB相当于大海捞针,不知道到底在哪块内存中) 数据(必须要给数据)
public class Variable{
public static void main(String[] args){
//定义整数类型 字节型 byte
//占用1个字节 -128 127
byte b = 100;
System.out.println(b);
//定义整数类型 短整型 short
//占用2个字节
short s = 100;
System.out.println(s);
//定义整数类型 整型 int
//占用4个字节
int i = 100;
System.out.println(i);
//定义整数类型 长整型 long
//占用8个字节
long l = 15564789224L;
System.out.println(l);
//定义浮点数类型 单精度 float
//占用4个字节
float f = 1.2F;
System.out.println(f);
//定义浮点数类型 双精度 double
//占用8个字节
double d = 1.2;
System.out.println(d);
//定义字符类型 char
//占用2个字节
//必须用单引号包裹 并且只能有一个 不能多不能少
char c = '我';
System.out.println(c);
//定义布尔类型 boolean
//占用1个字节
boolean bool = true;
System.out.println(bool);
}
}
public class Variable_1{
public static void main (String[] args){
//定义变量 字符串类型,数据类型String 表示字符串类型
//String 属于引用类型 定义方式与使用方式与基本类型一样
String s = "java很好";
System.out.println(s);
}
}
/*
变量使用注意事项
1 变量定义后可以不赋值,使用时再赋值。不赋值不能使用
2 变量使用时有作用域的限制。用{} 加以限制作用域
3 变量不可以重复定义,可以重复赋值
*/
public class Variable_2{
public static void main (String[] args){
int x;
x = 10;
System.out.println(x);
{
int j = 100;
System.out.println(j);
}
}
}
不同类型的变量是否可以在一起运算呢?可以的,但要先进行类型转换再运算。
其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的操作
转换的过程中,数据遵循一个原则:
范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);
范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)
将各种数据类型按照数据范围从小到大依次列出:
byte -> short -> int -> long -> float -> double
关于数据类型转换有两种方式
1 自动类型转换
表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换
自动类型转换格式:
范围大的数据类型 变量 = 范围小的数据类型值;
/*
数据类型的转换
自动:取值范围小的类型,自动转成取值范围大的类型
boolean类型不参与类型转换
*/
public class DataConvert{
public static void main (String[] args){
//定义double类型的变量
double d = 1000;//出现了自动转换 int转换成了double
System.out.println(d);
int i = 100;
double e = i;
System.out.println(e);
byte b = 10;
int i2 = b; //byte自动转成int
System.out.println(i2);
}
}