变量
概念:
- 变量代表程序的状态。程序通过改变变量的值来改变整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑。
为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名。
由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,在程序中声明变量的语法格式如下:
数据类型 变量名称;
例如:int x;
在该语法格式中,数据类型可以是Java语言中任意的类型,包括基本数据类型和复合数据类型。变量名称是该变量的标识符,需要符合标识符的命名规则,在实际使用中,该名称一般和变量的用途对应,这样便于程序的阅读。数据类型和变量名称之间使用空格进行间隔,空格的个数不限,但是至少需要1个。语句使用“;”作为结束。
也可以在声明变量的同时,设定该变量的值,语法格式如下:
数据类型 变量名称 = 值;
例如:int x = 10;
在该语法格式中,前面的语法和上面介绍的内容一致,后续的“=”代表赋值,其中的“值”代表具体的数据,注意区别“==”代表为判断是否相等。在该语法格式中,要求值的类型需要和声明变量的数据类型一致。
在程序中,变量的值代表程序的状态,在程序中可以通过变量名称来引用变量中存储的值,也可以为变量重新赋值。例如:
int n = 5;
n = 10;
在实际开发过程中,需要声明什么类型的变量,需要声明多少个变量,需要为变量赋什么数值,都根据程序逻辑决定,这里列举的只是表达的格式而已。
类型
-
局部变量:
局部变量声明在方法、构造方法或者与语句块中;在方法、构造方法或者语句块中被执行的时候创建,当它们执行完成后,
变量将被销毁;访问修饰符不能用于局部变量;只在声明它的方法、构造函数或者语句块中可见;局部变量是在栈上分配的;
局部变量没有默认值,所以被声明后,必须经过初始化,才可以使用。
public class java { public static void main(String[] args) { int i = 10; System.out.println(i); } }
-
实例变量(成员变量)
- 实例变量声明在一个类中,但在方法、构造方法和语句块之外。
- 当一个对象被实例化之后,每个实例变量的值就跟着确定。
- 访问修饰符可以修饰实例变量。
public class java { int i; public static void main(String[] args) { java15 java15 = new java15(); System.out.println(java15.i); } }
-
类变量(静态变量)
类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外。无论一个类创建了多少个对象,类只拥有类变量的一份拷贝,类变量是类的资源。
public class java15 { static int i; public static void main(String[] args) { System.out.println(java15.i); } }
常量
- 常量代表程序运行过程中不能改变的值。
常量在程序运行过程中主要有2个作用:
1. 代表常数,便于程序的修改(例如:圆周率的值)
2. 增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)
常量的语法格式和变量类型:只需要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常量名必须大写。
则常量的语法格式如下:
final 数据类型 常量名称 = 值;
final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;
例如:
final double PI = 3.14;
final char MALE=‘M’,FEMALE=‘F’;
在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次,示例代码如下:
final int UP;
UP = 1;
常量与变量的区别
常量是一种特殊的变量,它的值被设定后,在程序中不被允许改变。
深刻理解二进制
public class test01 {
public static void main(String[] args) {
System.out.println(2*0.3);
System.out.println(3*0.3);
}
}
输出结果为
出现的原因:
- int的范围能够容纳下2的32方个数字
- float的小数,无穷无尽个数字,因此2的32次方个位置无法容纳全部小数
除此之外由于计算机使用的是二进制识别所以储存方式,例如:
5 = 2(2)+2(0)
17 = 2(4)+2(0)
0.5 = 2(-1)
0.9 = ?
所以系统无法使用二进制进行准确的表达,就出现了0.8999999999999999的情况
评论区