第02章 基础数据类型与数组

2018-03-26  本文已影响0人  mainze

2.1 标识符与关键字

2.1.1标识符

定义:

用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字 。

规则:

标识符由字母、下划线、美元符号和数字组成,长度不受限制。
标识符的第一个字符不能是数字字符。
标识符不能是关键字(关键字见下面的2.1.3节)。
标识符不能是true、false和null(尽管true、false和null不是关键字)。

练习:

判断下列符号是否是合法的标识符:
$var1、 _var2、aInt 、student_Number
2student、 try、var#

注意:

标识符中的字母是区分大小写的。

2.1.2关键字

定义:

关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用 。

注意:

关键字都是小写的。遇到大写肯定不是关键字。

2.2数据类型与表达式

2.2.1 变量与常量

2.2.1.1 变量

定义

一个由标识符命名的项,其值可以被改变
每个变量都有类型,例如 int 类型或 Object类型
变量有作用域,根据变量的作用域,变量可以分为类成员变量和局部变量

变量定义格式:

Type varName1[=value1][,varName2=[value2]…];

例如,int num,total=0;

2.2.1.2 常量

定义

常量一旦被初始化以后就不可改变。

常量定义格式:

 final Type varName1[=value1][,varName2=[value2]…];

例如,final int PRICE=30;
final double PI=3.14;

2.2.2 数据类型

image.png

2.2.2.1 基本数据类型

有8种基本数据类型:

boolean、byte、short、int、long、float、double、char。

8种基本数据类型习惯上可分为以下四大类型:

(1)逻辑类型(布尔型)

布尔类型只有两个值true 和 false,它们不对应于任何整数值

(2)字符型(char)

用于存储单个字符,用单引号括起来
char采用16位Unicode编码,表示范围0 ~ 65535 。 

常量:

‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用单引号扩起的Unicode表中的一个字符。

变量:

使用关键字char来声明char型变量,对于char型变量,内存分配给2个字节,占16位
例如:char ch=‘A’,home=‘家’,handsome=‘酷’;

转意字符常量:

有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量,
例如:\n(换行), \b(退格),\t(水平制表),\‘(单引号), \“(双引号),\\(反斜线)等。

比较

Java语言中char采用16位Unicode标准字符集,最多可以识别65536个字符
C语言等的字符类型是采用ASCII编码,每个数据占用8比特的长度,总共可以表示256个不同的字符。

(3)整数类型

int 型

十进制:123,6000(十进制)
八进制: 077(八进制,是零开头)
十六进制:0x3ABC(十六进制)

对于int型变量,内存分配给4个字节(byte),占32位.

byte 型

对于byte型内存分配给1个字节,占8位 .

short 型

对于short型变量,内存分配给2个字节,占16位.

long 型

(4)浮点类型

float型

double 型

特别注意

默认情况下,一个具有小数部分的数据的缺省类型是double而不是float。所以float常量后面必须要有后缀“f”或“F”。

image.png

Java的数据类型与C语言的异同

基本数据类型是相近的,其不同之处在于:

1)Java的各种数据类型占用固定的内存长度,与具体的软硬件平台环境无关;(跨平台特性)
C或C++语言:16位机中,short, int占用2字节,long占用4字节;32位机中,short占用2字节,int, long占用4字节
2)Java的每种数据类型都对应一个缺省的数值,使得这种数据类型的变量的取值总是确定的。
(安全稳定性)
C或C++:变量在未赋值前其值是不确定的。

2.3 表达式与运算符

表达式

表达式是由一系列常量、变量、运算符、方法调用构成的,用于计算、对变量赋值,以及作为程序控制的条件

运算符

(1) 算术运算符

 + , –, *,  /,  % (可用于浮点数)
+ , –, ++ , -- 

(2)赋值运算符

a=5 表达式的值为 5
a=b=c=d=3 表达式以及 a, b, c 的值都是3
a=3+(b=10) 表达式的值是13, a 是13, b是10
a=(b=14)/(c=7) 表达式的值是2, a是2, b是14, c是7
a=(b=4)+(c=6) 表达式的值是 10, a是10,b是4,c是6

a+=a-=aa 等效于 a=a+(a=a-aa)

(3)关系运算符

e instanceof Point //Point 是一个类
相等关系运算符
数字相等运算符 = = , !=
布尔相等运算符 = = , !=
引用相等运算符 = = , !=

(4) 逻辑运算符

(5)位运算符

例如

a=00011100; a<<2=01110000
b=10011011; b<<2=11101100

a=00011100; a>>2=00000111
b=10011011; b>>2=11100110

说明:

无符号右移运算符>>> 只是对32位和64位的值有意义,在表达式中过小的值总是被自动扩大为int 型。这样,对第7位以0开始的byte 型的值进行无符号移动是不可能的,因为在实际移动运算时,是对扩大后的32位值进行操作。

例如

b=10011011; b将扩充至32位后(高24位为符号位1) 进行移位,b>>>2=0011 1111 … 1110 0110 (…处表示16个1)

(6)条件运算符 (表达式1?表达式2:表达式3)

2.4类型转换运算

Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:

byte  short  char  int  long  float  double 

规则:

下面四种情况下可能发生类型转换:

将表达式类型转换为被赋值的变量类型
如,double d=10*2+5;

适用于方法或构造函数调用中的每一个参数

将一个表达式类型强制转换为指定的类型
如, (double)6

2.5输入、输出数据

2.5.1 输出基本型数据

System.out.println("你好,"+
                                     "很高兴认识你" ); 
 System.out.printf("格式控制部分",表达式1,表达式2,…表达式n)

格式控制部分由格式控制符号:%d、%c、%f、%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。
%d输出int类型数据值;%c输出char型数据;%f输出浮点型数据,小数部分最多保留6位;%s输出字符串数据。
输出数据时也可以控制数据在命令行的位置,例如:%md输出的int型数据占m列;%m.nf输出的浮点型数据占m列,小数点保留n位。
例如:System.out.printf("%d,%f",12, 23.78);

2.5.2 输入基本型数据

可以使用Scanner类创建一个对象:
Scanner reader=new Scanner(System.in);
其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:
nextBoolean()、 nextByte()、 nextShort()、 nextInt() 、 nextLong()、nextFloat()、nextDouble()。
上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。

上一篇 下一篇

猜你喜欢

热点阅读