1.变量概述
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
数学中,可以使用字母代替数字运算,例如x=1+5或者6=x+5。
程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5, x也可 以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
2.数据类型
Java的数据类型分为两大类:
基本数据类型:包括 整数、浮点数、字符、布尔。
引用数据类型:包括类、数组、接口。
四类八种基本数据类型:
数据类型 | 关键字 | 内存占用 | 取值范围 |
字节型 | byte | 1个字节 | -128~127 |
短整型 | short | 2个字节 | -32768-32767 |
整型 | int (默认) | 4个字节 | -231次方~2的31次方-1 |
长整型 | long | 8个字节 | -2的63次方~2的63次方-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double (默认) | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0-65535 |
布尔类型 | boolean | 1个字节 | true,false |
Java中的默认类型:整数类型是int、浮点类型是double。
3.变量的定义
变量定义的格式包括三个要素:数据类型、变量名、数据值。
数据类型变量名 = 数据值;
定义所有基本数据类型的变量,代码如下:
public class Variable ( public static void main(String[] args)( //定义字节型变量 byte b = 100; System.out.println(b); //定义短整型变量 short s = 1000; System.out.println(s); //定义整型变量 int i = 123456; System.out.println(i); //定义长整型变量 long l = 12345678900L; System.out.println(l); //定义单精度浮点型变量 float f = 5.5F; System.out.println(f); //定义双精度浮点型变量 double d = 8.5; System.out.println(d); //定义布尔型变量 boolean bool = false; System.out.println(bool); //定义字符型变量 char c = 'A'; System.out.println(c); } }
long类型:建议数据后加L表示。
float类型:建议数据后加F表示。
4.注意事项及例子
1. 字符串不是基本类型,而是引用类型。
2. 浮点型可能只是一个近似值,并非精确的值。
3. 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
4. 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
/* 变量:程序运行期间,内容可以发生改变的量。 创建一个变量并且使用的格式: 数据类型 变量名称; // 创建了一个变量 变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量 一步到位的格式: 数据类型 变量名称 = 数据值; // 在创建一个变量的同时,立刻放入指定的数据值 */ public class Demo02Variable { public static void main(String[] args) { // 创建一个变量 // 格式:数据类型 变量名称; int num1; // 向变量当中存入一个数据 // 格式:变量名称 = 数据值; num1 = 10; // 当打印输出变量名称的时候,显示出来的是变量的内容 System.out.println(num1); // 10 // 改变变量当中本来的数字,变成新的数字 num1 = 20; System.out.println(num1); // 20 // 使用一步到位的格式来定义变量 // 格式:数据类型 变量名称 = 数据值; int num2 = 25; System.out.println(num2); // 25 num2 = 35; System.out.println(num2); // 35 System.out.println("==============="); byte num3 = 30; // 注意:右侧数值的范围不能超过左侧数据类型的取值范围 System.out.println(num3); // 30 // byte num4 = 400; // 右侧超出了byte数据范围,错误! short num5 = 50; System.out.println(num5); // 50 long num6 = 3000000000L; System.out.println(num6); // 3000000000 float num7 = 2.5F; System.out.println(num7); // 2.5 double num8 = 1.2; System.out.println(num8); // 1.2 char zifu1 = 'A'; System.out.println(zifu1); // A zifu1 = '中'; System.out.println(zifu1); // 中 boolean var1 = true; System.out.println(var1); // true var1 = false; System.out.println(var1); // false // 将一个变量的数据内容,赋值交给另一个变量 // 右侧的变量名称var1已经存在,里面装的是false布尔值 // 将右侧变量里面的false值,向左交给var2变量进行存储 boolean var2 = var1; System.out.println(var2); // false } }
/* 使用变量的时候,有一些注意事项: 1. 如果创建多个变量,那么变量之间的名称不可以重复。 2. 对于float和long类型来说,字母后缀F和L不要丢掉。 3. 如果使用byte或者short类型的变量,那么右侧的数据值不能超过左侧类型的范围。 4. 没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。 5. 变量使用不能超过作用域的范围。 【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。 6. 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。 */ public class Demo03VariableNotice { public static void main(String[] args) { int num1 = 10; // 创建了一个新的变量,名叫num1 // int num1 = 20; // 又创建了另一个新的变量,名字也叫num1,错误! int num2 = 20; int num3; num3 = 30; int num4; // 定义了一个变量,但是没有进行赋值 // System.out.println(num4); // 直接使用打印输出就是错误的! // System.out.println(num5); // 在创建变量之前,不能使用这个变量 int num5 = 500; System.out.println(num5); // 500 { int num6 = 60; System.out.println(num6); // 60 } // int num6; // System.out.println(num6); // 已经超出了大括号的范围,超出了作用域,变量不能再使用了 // 同时创建了三个全都是int类型的变量 int a, b, c; // 各自分别赋值 a = 10; b = 20; c = 30; System.out.println(a); // 10 System.out.println(b); // 20 System.out.println(c); // 30 // 同时创建三个int变量,并且同时各自赋值 int x = 100, y = 200, z = 300; System.out.println(x); // 100 System.out.println(y); // 200 System.out.println(z); // 300 } }