Java 变量和数据类型

在 Java 程序的生命周期中,变量可以被认为是一个为你保留值的容器。为每个变量分配一个数据类型,它指定它可以容纳的值的类型和数量。

要在程序中使用变量,你需要执行 2 个步骤

  1. 变量声明
  2. 变量初始化

变量声明:

要声明变量,必须指定数据类型并为变量指定唯一名称。

Java 变量和数据类型

其他有效声明的示例是

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 中,有三种类型的变量:

  1. 局部变量
  2. 实例变量
  3. 静态变量

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 中,有两种类型的数据类型:

  1. 原始数据类型
  2. 非原始数据类型

原始数据类型

原始数据类型是预定义的,可在 Java 语言中使用。原始值不与其他原始值共享状态。

有 8 种基本类型:byteshortintlongcharfloatdoubleboolean 整数数据类型

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