Java 变量和数据类型
在 Java 程序的生命周期中,变量可以被认为是一个为你保留值的容器。为每个变量分配一个数据类型,它指定它可以容纳的值的类型和数量。
要在程序中使用变量,你需要执行 2 个步骤
- 变量声明
- 变量初始化
变量声明:
要声明变量,必须指定数据类型并为变量指定唯一名称。
其他有效声明的示例是
int a,b,c;
float pi;
double d;
char a;
变量初始化:
要初始化变量,必须为其分配有效值。
其有效初始化的示例是
pi =3.14f;
do =20.22d;
a= 'v';
你可以组合变量声明和初始化。
示例:
int a=2,b=4,c=6;
float pi=3.14f;
double do=20.22d;
char a=’v’;
变量类型
在 Java 中,有三种类型的变量:
- 局部变量
- 实例变量
- 静态变量
Java 局部变量
局部变量是在方法体内声明的变量。
Java 实例变量
实例变量是在没有 STATIC
关键字的情况下定义的。它们是在方法声明之外定义的。它们是特定于对象的,称为实例变量。
Java 静态变量
静态变量仅在程序执行开始时初始化一次。在初始化任何实例变量之前,应首先初始化这些变量。
Java 中的变量类型示例
class Tastones {
int data = 99; //instance variable
static int a = 1; //static variable
void method() {
int b = 90; //local variable
}
}
Java 中的数据类型
数据类型对要存储在变量中的不同值进行分类。在 Java 中,有两种类型的数据类型:
- 原始数据类型
- 非原始数据类型
原始数据类型
原始数据类型是预定义的,可在 Java 语言中使用。原始值不与其他原始值共享状态。
有 8 种基本类型:byte
,short
,int
,long
,char
,float
,double
和 boolean
整数数据类型
byte (1 byte)
short (2 bytes)
int (4 bytes)
long (8 bytes)
浮点数数据类型
float (4 bytes)
double (8 bytes)
字符数据类型
char (2 bytes)
布尔值数据类型
boolean (1 byte) (true/false)
Java 数据类型
数据类型 | 默认值 | 默认大小 |
---|---|---|
byte |
0 | 1 个字节 |
short |
0 | 2 个字节 |
int |
0 | 4 个字节 |
long |
0L | 8 个字节 |
float |
0.0f | 4 个字节 |
double |
0.0d | 8 个字节 |
boolean |
假 | 1 位 |
char |
‘\u0000’ | 2 个字节 |
要记住的要点:
- 所有数字数据类型都有极性(+/-)。
- 所有平台上的数据类型大小保持不变(标准化)
- Java 中的 char 数据类型是 2 个字节,因为它使用
UNICODE
字符集。Java 凭借它很容易支持国际化。UNICODE 是一个字符集,涵盖了世界上所有已知的脚本和语言。
Java 变量类型转换和类型转换
一种类型的变量可以接收另一种类型的值。这里有 2 个例子,
**情况 1)**较小容量的变量被分配给另一个较大容量的变量。
double d;
int i = 10;
d = i;
此过程为自动,非显式的,被称为转换
**情况 2)**较大容量的变量被分配给另一个较小容量的变量
double d = 10;
int i;
i = (int)d;
在这种情况下,你必须显式指定类型转换运算符。此过程称为类型转换。
如果你没有指定类型转换运算符,那么编译器给出错误。由于此规则是由编译器强制执行的,因此它使程序员意识到他将要执行的转换可能会导致数据丢失,这样来防止意外丢失。
类型转换示例
class Demo {
public static void main(String args[]) {
byte x;
int a = 270;
double b = 128.128;
System.out.println("int converted to byte");
x = (byte) a;
System.out.println("a and x " + a + " " + x);
System.out.println("double converted to int");
a = (int) b;
System.out.println("b and a " + b + " " + a);
System.out.println("\ndouble converted to byte");
x = (byte)b;
System.out.println("b and x " + b + " " + x);
}
}
输出:
int converted to byte
a and x 270 14
double converted to int
b and a 128.128 128
double converted to byte
b and x 128.128 -128