第2章 基本数据类型和数组
标识符和关键字
标识符
- Java语言使用Unicode标准字符集表。
- 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。
- Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。标识符中的字母是区分大小写的。
关键字
关键字就是Java语言中已经被赋予特定意义的一些单词,它们在程序上有着不同的用途,不可以把关键词作为名字来用。
基本数据类型
Java语言有8种简单数据类型,分别是:boolean、byte 、short、int、long、float、double、char。
逻辑类型:boolean
- 常量:true ,false。
- 变量的定义:使用关键字boolean来定义逻辑变量,定义时也可以赋给初值。
整数类型:byte、short、int、long
常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。
整型变量的定义分为4种。
int型
- 使用关键字int来定义int型整型变量,定义时也可以赋给初值,例如:int x,平均=9898;
- 对于int型变量,内存分配给4个字节(byte)。
- int型变量的取值范围是:- 231~ 231 -1。
byte型
- 使用关键字byte来定义byte型整型变量。
- 对于byte型变量,内存分配给1个字节,占8位,byte型变量的取值范围是-27~27-1。
short型
- 使用关键字short来定义short型整型变量。
- 对于short型变量,内存分配给2个字节,short型变量的取值范围是-215~ 215-1。
long型
- 使用关键字long来定义long型整型变量。
- 对于long型变量,内存分配给8个字节,long型变量的取值范围是-263~263-1。
字符类型:char
- 常量:Uincode表中的字符就是一个字符常量,例如'A', '?', ' 9', '好' , 'き ' 等。
- Java还使用转意字符常量,如:' \n '表示换行 ,' \b '表示退格,' \t '表示水平制表,'\''表示单引号,'\'''表示双引号
- 变量的定义:使用关键字char来定义字符变量,char类型变量内存分配给2个字节,占16位,最高位不是符号位,没有负数。char类型变量的取值范围是0~65535
浮点类型:float、double
float型
- 常量:453.5439f,21379.987F,2e4f(2乘10的4次方,科学计数法)
- 变量的定义:使用关键字float来定义float型变量。对于float型变量,内存分配给4个字节,其取值范围是10-38~1038和-1038~-10-38。
double型
- 常量:21389.5439d(d可以省略),23189908.987,123.0,6e-140(6乘10的-140次方,科学计数法)。
- 变量的定义:使用关键字double来定义double型变量。double型变量,内存分配给8个字节,double型变量的取值范围大约是10-308~10308和-10308~-10-308。
基本数据类型的转换
- 下列基本类型会涉及数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“低”到“高”排列了顺序:byte、short、int、long、float、double
- 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
- 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;
数据的输入和输出
- printf可以进行格式化输出
- print就是一般的标准输出,但是不换行
- println和print基本没什么差别,就是最后会换行
格式化输出
System.out.printf(格式控制部分,表达式1,表达式2,…表达式n),格式控制部分由格式控制符号(%d,%c,%f,%s)和普通字符组成。
- %d-输出整数类型数据;%c-输出字符类型数据;%f-输出浮点类型数据,小数点部分最多保留6位;%s-输出字符串数据。
- 控制数据在命令行中的位置:%md-输出int类型数据占m列;%m.nf-输出的float数据占m列,小数点保留n位;%n-换行符
数据的输入Scanner
Scanner是java.util包中新增的类,可以使用该类创建一个对象:Scanner reader=new Scanner(System.in),
- 使用hasNextDouble()判断输入的数据是否为double类型数据,如果是则返回true,否则返回false;
- 然后reader对象调用下列方法,读取用户在命令行输入的各种数据类型, nextByte(), nextDouble(), nextFloat(), nextInt(),nextLine(),nextLong(), nextShort()。
在从键盘输入数据时,经常让reader对象先调用hasNextXXX()方法等待用户从键盘输入数据,再调用nextXXX()方法读取数据。
数组
数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标来使用数组中的数据。下标从0开始。
1.声明数组
声明数组包括数组的名字、数组包含的元素的数据类型。
- 声明一维数组有下列两种格式:数组元素类型 数组名字[ ];数组元素类型[ ] 数组名字;
- 声明二维数组有下列两种格式:数组元素类型 数组名字[][];数组元素类型[][] 数组名字;
2.创建数组
在为数组分配内存空间时必须指明数组的长度。
格式如下:数组名字 = new 数组元素的类型[数组元素的个数];
声明数组和创建数组可以一起完成,如
- loat boy[]=new float[4];
- int mytwo[ ][ ]=new int[3][4];
3.数组元素的使用
- 一维数组通过下标符访问自己的元素,如boy[0],boy[1]等。需要注意的是下标从0开始,因此,数组若是7个元素,下标到6为止。
- 二维数组也通过下标符访问自己的元素,如a[0][1],a[1][2]等 。下标也是从0开始。
4.数组的初始化
- 创建数组后,系统会给每个数组元素一个默认的值,如,float型是0.0。
- 在声明数组时同时也还可以给数组的元素一个初始值,如:
- float boy[]={ 21.3f,23.89f,2.0f,23f,778.98f};
5.length的使用
- 对于一维数组,"数组名字.length"的值就是数组中元素的个数:float []a=new float[12];a.length=12;
- 对于二维数组,"数组名字.length"的值是它含有的一维数组的个数(行数):int[][] b=new int[3][6];b.length=3。
6.数组的引用
数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。
- 例如,对于int [] a={1,2,3},b={4,5};如果使用了赋值语句:a=b;那么,a中存放的引用就和b的相同,即a[0],a[1]就是b[0],b[1],而最初分配给数组a的三个元素已不复存在。
- Sysetm.out.println(a):不会输出a的引用而是输出数组a的全部元素值。
越努力越幸运!