1.变量
1.1概念:变量是用来存储数值的内存区域
1.2.作用:变量用来记录数值。使用变量进行代数计算,则该变量中数值可以随着程序的逻辑计算而改变。当计算全部结束后,再将数值拿出展示给用户。
1.3.使用格式:
1.3.1定义格式:数据类型 变量名 = 变量值;
int a = 100;
1.3.2代码实现:
public class bianliangmuban {
int a = 1;
System.out.println(a);//输出为10
a = 20;//改变变量的值
System.out.println(a);//输出为20
}
1.3.3注意:
1.3.3.1.可以同时定义多个变量
1.3.3.2.变量定义后可以不赋值,使用时再赋值。不赋值不能使用。
1.3.3.3.变量使用时有作用域的限制。
public class bianliangzhuyi {
//1.可以同时定义多个变量
int a = 1,b = 2;
System.out.println(a);//1
System.out.println(b);//2
//2.变量定义后可以不赋值,使用时再赋值。不赋值不能使用。
int c;
//System.out.println(c);//错误: 可能尚未初始化变量c
System.out.println(c = 3);
//或者
//c = 20;
//System.out.println(c);
//3.变量使用时有作用域的限制。
//比如你会汉语,出了中国别人听不懂你说的,一个变量,出了某个大括号就失效
}
2 数据类型
2.1 bit
2.1.1比特位(bit)是计算机当中最小的存储单位,8个比特位组成一个新的单位——字节
2.1.2常见的数据存储单位之间的换算:
1 1B(字节) = 8bit
2 1KB = 1024B
3 1MB = 1024KB
4 1GB = 1024MB
5 1TB = 1024GB
2.2
数据类型:2.2.1基本数据类型:1整数、2小数、3字符、4布尔
2.2.2引用数据类型:1数组、2类、3接口
2.2.1.1整数型(精确)
2.2.1.1.1占用
1 byte :1个字节
2 short:2个字节
3 int :4个字节(整数的默认值)
4 long :8个字节(后面加L)
2.2.1.1.2如:
byte b = 1;
int i = 1;
short s = 1;
long l = 1L;
2.2.1.1.3详细(主要看范围):
1、
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)
2.2.1.2浮点型(小数型,非精确,为近似值)
double 占用8个字节 (小数的默认值)
float 占用4个字节 (后面加f/F)
如:
double d = 1.0;
float f = 1.0F;
2.2.1.2字符型
char 占用2个字节(必须使用’’包裹,且不能为空)
如:char c = ‘a’; char c2 = ‘中’; char c3 = ‘ (空格)’; char c4 = ‘$’
转义字符:
如:
\t 制表符
\’ 单引号
\” 双引号
\\ 反斜杠
2.2.1.2布尔型
条件判断,true/false
boolean:1个字节
如:
boolean b = true; boolean b2 = false;
基本类型 字节数 位数 最大值 最小值
byte 1byte 8bit 2^7 - 1 -2^7
short 2byte 16bit 2^15 - 1 -2^15
int 4byte 32bit 2^31 - 1 -2^31
long 8byte 64bit 2^63 - 1 -2^63
float 4byte 32bit 3.4028235E38 1.4E - 45
double 8byte 64bit 1.7976931348623157E308 4.9E - 324
char 2byte 16bit 2^16 - 1 0
2.3数字类型转换
2.3.1按照数据范围从小到大:
byte -> short -> int -> long -> float -> double
2.3.2自动类型转换:
范围小的数据类型值(如int),可以自动转换为范围大的数据类型值(如double)
范围大的数据类型 变量 = 范围小的数据类型值;
double d = 1 ;
或:
int i = 1;
double d = i;
2.3.3强制类型转换:
范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
int i = (int)1.1;//i的值是1
或
double d = 1.1;
int i = (int)d;//i的值是1
//int i = d;//可能损失精度
3.变量案例——超市水果报价单
问题:
根据不同的水果种类,使用变量在控制台打印所有水果价格的列表。
预览:
水果编号 水果名称 水果单价 计价单位 品质
1 a 1 公斤 A
2 b 2 公斤 B
3 c 3 公斤 C
//Id Name Price Unit level
public class FruitPrice {
public static void main(String[] args){
int Id = 1;
String aName = "a";
double aPrice = 1;
String aUnit = "公斤";
char Level = "A";
int Id = 1;
String bName = "b";
double bPrice = 2;
String bUnit = "公斤";
char Level = "B";
int Id = 1;
String cName = "c";
double cPrice = 3;
String cUnit = "公斤";
char Level = "C";
System.out.println("水果编号水果名称水果单价计价单位品质");
System.out.println(aId + " " + aName + " " + aPrice + " " + aUnit + " " + aLevel);
System.out.println(bId + " " + bName + " " + bPrice + " " + bUnit + " " + bleLevel);
System.out.println(3 + " c" + 1+ "公斤"+'A');//???
}
}
//来源java帮帮-悟空教程