第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就是一般的标准输出,但是不换行
  • printlnprint基本没什么差别,就是最后会换行

格式化输出

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

Scannerjava.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的全部元素值。

 

posted @ 2020-08-11 16:44  Littlejiajia  阅读(181)  评论(0编辑  收藏  举报