第二章 基本数据类型、数组、枚举类型

2.1 标识符和关键字

2.1.1 标识符

标识符的语法规则:

  • 标识符由字母、下划线、美元符号和数字组成,长度不受限制。
  • 标识符的第一个字符不能是数字字符。
  • 标识符不能是关键字
  • 标识符不能是truefalsenull(尽管truefalsenull不是Java关键字)

例如,以下都是标识符:

         Hello_javaHello_12$$23Boy

需要特别注意的是,标识符中的字母是区分大小写的helloHello是不同的标识符。

2.1.2 关键字

Java中50个关键字:

2.2 基本数据类型

八种基本数据类型:

对于int型变量,内存分配给4个字节byte.int型变量的取值范围是:-2^31~2^31-1

对于byte型变量,内存分配给1个字节,占8位,因此byte型变量的取值范围是  -128127

对于short型变量,内存分配给2个字节,占8位,因此short型变量的取值范围   -2^15 2^15-1

long型常量用后缀L来表示,例如108L(十进制)07123L(八进制)0x3ABCL(十六进制)

对于long型变量,内存分配给8个字节,占64位,因此long型变量的取值范围是 -2^632^63-1

Java中不存在byte和short型常量的表示法,但可以把byte或short范围内的int型常量赋值给byte或short型变量。

对于char型变量,内存分配给2个字节,占16位,最高位不是符号位,没有负数的charchar型变量的取值范围是0~65535

float 型常量后面必须要有后缀fF内存分配给4个字节,占32位,float型变量的取值范围是1.4E-453.4028235E38-3.4028235E38-1.4E-45

float变量在存储float型数据时保留8位有效数字,实际精度取决于具体数值。

double 型内存分配给8个字节,占64位,double型变量的取值范围是4.9E-3241.7976931348623157E308-1.7976931348623157E308~-4.9E-324

double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。

基本数据类型的转换

按精度从低到高排列:

byte  short  char  int  long  float  double

当把级别低的值赋给级别高的变量时,系统自动完成数据类型的转换

当把级别高的变量的值赋给级别低的变量时,必须要使用类型转换(强制转换)运算,例如:

对于

int x = 1;
byte y ;
y = (byte)x;

是正确的,而y = x;是错误的。编译器不检查变量x的值是多少,只检查x的类型。

2.3 数组

2.3.1 声明数组

数组的元素类型   数组名字[ ];

数组的元素类型 [ 数组名字;

数组的元素类型   数组名字[][];

数组的元素类型 [] [] 数组名字;

例如:

float  boy[ ];
char  cat[ ][ ];

C/C++不同,Java不允许在声明数组中的方括号内指定数组元素的个数。若声明:

int a[12];

int [12] a;

将导致语法错误

2.3.2 创建数组

为数组分配内存空间的格式如下:

数组名字 = new  数组元素的类型[数组元素的个数];

例如:

boy= new float[4];

为数组分配内存空间后,数组boy获得4个用来存放float类型数据的内存空间(称为数组的元素或单元)

数组变量boy中存放着这些内存单元的首地址,该地址称作数组的引用,这样数组就可以通过索引操作这些内存单元。数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组名加索引使用数组的元素,如boy[0] = 1.3F;

2.3.3 length的使用

对于一维数组,“数组名字.length”的值就是数组中元素的个数;对于二维数组“数组名字.length”的值是它含有的一维数组的个数。例如,对于

float a[] = new float[12];
int b[][] = new int[3][6];

a.length的值12;而b.length的值是3

2.3.4 数组的初始化

声明数组时同时也可以给数组的元素一个初始值,如:

float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};

上述语句相当于:

float boy[] = new float[5];

然后

boy[0] = 21.3f; boy[1 ] = 23.89f; boy[2] = 2.0f;
boy[3 ] = 23f; boy[4] = 778.98f;

可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,例如:

int a[][ ]= {  {1},
               {1,1},
               {1,2,1},
               {1,3,3,1},
               {1,4,6,4,1}
            };

2.3.5 数组的引用

两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。例如,对于

int a[] = {1,2,3},b[ ] = {4,5};

内存模型图所示

如果使用了下列赋值语句(ab的类型必须相同):

a = b;

那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同,ab的内存模型变成所示意。

2.4 枚举类型

使用关键字enum声明枚举类型,语法格式如下:

enum 枚举名

{ 常量列表

}

例如

enum Season

{  spring,summer,autumn,winter  

}

声明了名字为Season的枚举类型,该枚举类型有4常量

可以用枚举类型的枚举名声明一个枚举变量,例如:

Season x;

声明了一个枚举变量x。枚举变量x只能取值枚举类型中的常量,通过使用枚举名和“.”运算符获得枚举类型中的常量,例如:

x = Season.spring;

猜你喜欢

转载自blog.csdn.net/qq_43629083/article/details/108607793
今日推荐