第3章Java语言基础
本章主要内容:
数据类型;
变量;
基本类型变量;
数据类型的转换规则;
从键盘输入数据的语句格式;
运算符。
本章主要介绍编写Java程序必须掌握的若干语言基础知识,包括数据类型、变量、常量、表达式等。掌握这些基础知识,是编写正确Java程序的前提条件。
3.1数据类型
程序在执行的过程中,需要对数据进行运算,也需要存储数据。这些数据可能是由使用者输入的,也可能是从文件中取得的,甚至是由网络上得到的。在程序运行的过程中,这些数据通过变量存储在内存中,以便程序随时取用。
数据存储在内存的一块空间中,为了取得数据,必须知道这块内存空间的位置,为了方便使用,程序设计语言用变量名来代表该数据存储空间的位置。将数据指定给变量,就是将数据存储到对应的内存空间; 调用变量,就是将对应的内存空间中的数据取出来使用。
一个变量代表一个内存空间,数据就存储在这个空间中,使用变量名来取得数据非常方便,然而由于数据在存储时所需要的内存容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,因此在Java语言中对不同的数据用不同的数据类型来区分。
在程序设计中,数据是程序的必要组成部分,也是程序处理的对象。不同的数据有不同的数据类型,不同的数据类型有不同的数据结构、不同的存储方式,并且参与的运算也不相同。通常计算机语言将数据按其性质进行分类,每一类称为一种数据类型(data type)。数据类型定义了数据的性质、取值范围、存储方式以及对数据所能进行的运算和操作。程序中的每一个数据都属于一种类型,定义了数据的类型也就相应决定了数据的性质以及对数据进行的操作,同时数据也受到类型的保护,确保对数据不进行非法操作。
Java语言中的数据类型分为两大类: 一类是基本数据类型(primitive types); 另一类是引用数据类型(reference types),简称引用类型。基本数据类型是由程序设计语言系统所定义、不可再分的数据类型。每种基本数据类型的数据所占内存的大小是固定的,与软硬件环境无关。基本数据类型在内存中存放的是数据值本身。引用数据类型在内存中存放的是指向该数据的地址,不是数据值本身,它往往由多个基本数据类型组成,因此,对引用数据类型的应用称为对象引用,引用数据类型也被称为复合数据类型,在有的程序设计语言中称为指针。
基本数据类型有整型、浮点型、逻辑型和字符型; 引用数据类型包括类、数组和接口等。本节只介绍基本数据类型,引用数据类型在5.1节中���进行介绍。
Java语言的数据类型实际上都是用类实现的,即引用对象的使用方式,同时Java语言也提供了类似C语言中简单类型的使用方式,即声明类型的变量。
Java语言定义了4类共8种基本类型,其中有4种整型、2种浮点型、1种布尔型和1种字符型,它们的分类及关键字如下。
整型: byte,short,int,long。
浮点型: float,double。
布尔型: boolean。
字符型: char。
1. 整型
整数有正整数、零、负整数,其含义与数学中的含义相同。Java语言的整数有三种进制的表示形式。
十进制: 用多个0~9的数字表示,如123和-100,其首位不能为0。
八进制: 以0开头,后跟多个0~7的数字,如0123。
十六进制: 以0x或0X开头,后跟多个0~9的数字或a~f的小写字母或A~F的大写字母,a~f或A~F均表示值10~15,如0X123E。
Java语言定义了4种表示整数的类型: 字节型(byte)、短整型(short)、整型(int)、长整型(long)。每种整型的数据都是带符号位的。Java语言的每种数据类型都对应—个默认的数值,使得这种数据类型变量的取值总是确定的,体现了其**性。整型类型如表3.1所示。
表3.1Java语言的整数类型
类型
数据位
范围
byte(字节型)
8
-128~127,即-27~27-1
short(短整型)
16
-32 768~32 767,即-215~215-1
int(整型)
32
-2 147 483 648~2 147 483 647,即-231~231-1
long(长整型)
64
-9 223 372 036 854 775 808~9 223 372 036 854 775 807,即-263~263-1
一个整数隐含为整型(int型)。当要将一个整数强制表示为长整数时,需在后面加字母l或L。所以若声明long型变量的值超过int型的取值范围时,如果数的后面不加l或L,系统会认是int型而出错。
2. 浮点型
Java语言用浮点型表示数学中的实数(浮点数),也就是既有整数部分又有小数部分的数。浮点数有两种表示方式。
标准计数法: 由整数部分、小数点和小数部分构成,如3.0,3.1415等。
科学计数法: 由十进制整数、小数点、小数和指数部分构成,指数部分由字母E或e跟上带正负号的整数表示,如123.45可表示为1.2345E+2。
浮点数用于需要小数位**度高的计算。例如,计算平方根或三角函数等,都会产生浮点型的值。Java语言的浮点型有单精度浮点(float)和双精度浮点(double)两种,如表3.2所示。