Java变量
- 变量是存储数据值的容器,用于在内存中保存数据。
- 成员变量
- 作用范围是整个类
- 类的成员变量的作用范围同类的实例化对象的作用范围相同。当类被实例化的时候,成员变量就会在内存中分配空间,并初始化
- 实例变量(不以 static 修饰)
- 类变量(以 static 修饰)
- 静态变量
- static int b;
- 静态变量不依赖于特定的实例,而是被所有实例共享,也就是说,只要一个类被加载,JVM就会给类的静态变量分配存储空间。因此可以通过类名.变量名来访问静态变量。
- 最终变量
- 如果不希望其他人(或您自己)覆盖现有值,请使用关键字final(这会将变量声明为“final”或“constant”,这意味着不可更改且只读):
- final int myNum = 15;
- 局部变量(方法的形式参数)
- public void do(int c){ }
- 作用域:与可见性为它所在的花括号内。
- 形参(方法、构造器中定义的变量)
- 方法局部变量(在方法内定义)
- 代码块局部变量(在代码块内定义)
- 定义变量时需要初始化,当变量是成员变量或者静态变量时,可以不进行初始化,它们会有一个默认值。
- 先声明后使用,名称不变,值改变。变量类型、变量名和存储的值
- type variableName = value;
- type是 Java 的类型之一(例如intor String), variableName是变量的名称(例如x或 name)。等号用于为变量赋值。
-
int myNum = 5; float myFloatNum = 5.99f; char myLetter = 'D'; boolean myBool = true; String myText = "Hello";
-
- 变量命名规则
- 名称可以包含字母、数字、下划线和美元符号
- 名称必须以字母开头
- 名称应以小写字母开头,并且不能包含空格
- 名称也可以以 $ 和 _ 开头(但我们不会在本教程中使用它)
- 名称区分大小写(“myVar”和“myvar”是不同的变量)
- 保留字(如 Java 关键字,如intor boolean)不能用作名称
数据类型转换
- 自动类型转换(隐式转换)
- 两种数据类型彼此兼容
- 目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)
- 数值型数据的转换:byte→short→int→long→float→double。
- 字符型转换为整型:char→int。
-
public class Main { public static void main(String[] args) { int myInt = 8; double myDouble = myInt; // Automatic casting: int to double System.out.println(myInt); // Outputs 8 System.out.println(myDouble); // Outputs 8.0 } }
- 强制类型转换(显式转换)
- 当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。
- (type)variableName
-
public class Main { public static void main(String[] args) { double myDouble = 5.78d; int myInt = (int) myDouble; // Manual casting: double to int System.out.println(myDouble); // Outputs 5.78 System.out.println(myInt); // Outputs 5 } }