




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 JavaJava中的基本数据类型和运算符中的基本数据类型和运算符在上面两章中,我们对在上面两章中,我们对Java有了一个初步的认识,并且准备好有了一个初步的认识,并且准备好了我们的开发利器了我们的开发利器Eclipse。下面我们回顾一下我们对前两章学。下面我们回顾一下我们对前两章学到的东西。到的东西。我们知道我们知道JDK是是Java世界的基础,并且在电脑上成功安装和配世界的基础,并且在电脑上成功安装和配置了置了JDK。我们编写了第一个我们编写了第一个Java程序。虽然我们对这个程序并不了解,程序。虽然我们对这个程序并不了解,但是我们知道了一个但是我们知道了一个Java程序程序
2、“大概长得什么样大概长得什么样”。我们了解了编写一个我们了解了编写一个Java程序的过程程序的过程编写源代码,编译源编写源代码,编译源代码,运行程序。并且在源代码出错的时候,我们需要找到错误。代码,运行程序。并且在源代码出错的时候,我们需要找到错误。我们将我们将Eclipse安装到电脑上,并且学会了在安装到电脑上,并且学会了在Eclipse中创建项中创建项目,使用目,使用Eclipse提供的各种工具编写、编译并运行程序。提供的各种工具编写、编译并运行程序。3.1 Java3.1 Java中有的基本数据类型中有的基本数据类型基本数据类型是一门编程语言所支持的最底层的数据基本数据类型是一门编程语言
3、所支持的最底层的数据类型。程序中所有的数据归根究底都是由基本数据类型构成类型。程序中所有的数据归根究底都是由基本数据类型构成的。基本数据类型就好像一门编程语言中的的。基本数据类型就好像一门编程语言中的“基本微粒基本微粒”。基本数据类型是各种编程语言都有的一个概念。下面我们开基本数据类型是各种编程语言都有的一个概念。下面我们开始对始对Java语言的基本数据类型进行介绍。语言的基本数据类型进行介绍。3.1.1 3.1.1 基本数据类型基本数据类型编程语言中的数据原编程语言中的数据原子子编写编写Java程序,其实就是使用程序,其实就是使用Java处理数据。在处理数据。在Java的的世界中,虽然数据类
4、型千变万化,有字符串、图片、文件、世界中,虽然数据类型千变万化,有字符串、图片、文件、声音数据和视频数据等等。但是构成所有声音数据和视频数据等等。但是构成所有Java数据类型的基数据类型的基础的数据,只有为数不多的几种。我们称这几种基础数据为础的数据,只有为数不多的几种。我们称这几种基础数据为Java基本数据类型。基本数据类型。3.1.2 Java3.1.2 Java中的基本上数据类型介绍中的基本上数据类型介绍值和值域(取值范围)是值和值域(取值范围)是Java基本数据类型的两个最基本数据类型的两个最重要的属性。我们可以将重要的属性。我们可以将Java基本数据类型与我们数学中学基本数据类型与我
5、们数学中学习过的数字类型(如自然数,整数,有理数,无理数等)做习过的数字类型(如自然数,整数,有理数,无理数等)做一个类比,用来帮助我们理解基本数据类型。一个类比,用来帮助我们理解基本数据类型。而基本数据类型与数学中的数字类型有一个很不一样而基本数据类型与数学中的数字类型有一个很不一样的地方就是:编程语言中的数据类型的值域是有限的。也就的地方就是:编程语言中的数据类型的值域是有限的。也就是说,在编程语言中,不可能有一种数据类型可以表示所有是说,在编程语言中,不可能有一种数据类型可以表示所有的自然数。其实这个也很好理解。即使是在现实中,我们也的自然数。其实这个也很好理解。即使是在现实中,我们也不
6、可能处理所有自然数。不可能处理所有自然数。3.1.3 3.1.3 基本数据类型值域基本数据类型值域上一节中我们了解的基本数据类型的概念,并且知道上一节中我们了解的基本数据类型的概念,并且知道了了Java中共有中共有8种数据类型。下面我们对每种数据类型做一种数据类型。下面我们对每种数据类型做一个简单的介绍。个简单的介绍。1byte类型类型2short类型类型3int类型类型4long类型类型5float类型类型6double类型类型7char类型类型8boolean类型类型3.2 Java3.2 Java运算符运算符本节中我们将讲述本节中我们将讲述Java中另一个最基本的东西中另一个最基本的东西
7、Java运算符。在使用运算符。在使用Java运算符的时候我们需要用到上面介运算符的时候我们需要用到上面介绍的绍的Java基本数据类型,同时了解变量的概念。基本数据类型,同时了解变量的概念。3.2.1 3.2.1 变量的概念变量的概念首先,为了使用首先,为了使用Java运算符,我们必须先引入变量(运算符,我们必须先引入变量(Variable)的概念。变量就是程序中使用的数据。我们可以将变量)的概念。变量就是程序中使用的数据。我们可以将变量用于运算。变量有三个属性用于运算。变量有三个属性变量名(变量名(Variable Name),变量),变量类型(类型(Variable Type)和变量的值()
8、和变量的值(Variable Value)。)。变量就是数据的载体,我们在程序中就是通过创建一个变量变量就是数据的载体,我们在程序中就是通过创建一个变量来使用基本数据类型的。数据类型可以说是一个抽象的规定,而来使用基本数据类型的。数据类型可以说是一个抽象的规定,而一个变量则是符合这个规定的、可以使用的具体。我们理解后,一个变量则是符合这个规定的、可以使用的具体。我们理解后,变量其实是一个很简单的概念。变量其实是一个很简单的概念。3.2.2 3.2.2 插曲:插曲:JavaJava中的语句中的语句我们发现,无论是在第一章中的我们发现,无论是在第一章中的HelloWorld程序里,程序里,还是在上
9、面一节中的创建一个变量的代码中,方法里每一行还是在上面一节中的创建一个变量的代码中,方法里每一行代码似乎都是以分号(代码似乎都是以分号(;)结束的。像这样以分号结束的一)结束的。像这样以分号结束的一行或多行代码,我们称之为行或多行代码,我们称之为Java中的语句。也就是说,我们中的语句。也就是说,我们可以把可以把Java中的分号理解成为我们汉语中的句号,它们都是中的分号理解成为我们汉语中的句号,它们都是代表一句话的结束。只不过是在汉语中,我们可以相对灵活代表一句话的结束。只不过是在汉语中,我们可以相对灵活的使用句号,而在的使用句号,而在Java中,我们却要严格遵守中,我们却要严格遵守Java语
10、法来使语法来使用分号。用分号。3.2.3 3.2.3 定义一个变量和变量名的规范定义一个变量和变量名的规范我们首先来看一下我们首先来看一下Java中创建一个变量的基本语法:中创建一个变量的基本语法:“数据类型数据类型”+“空格空格”+“合法的变量名合法的变量名”。这里空格可以有多个,但是至少有一个。这里空格可以有多个,但是至少有一个。在这里我们首先需要注意的就是在这里我们首先需要注意的就是“变量名变量名”。变量名必须是。变量名必须是Java中一中一个合法的标识符(个合法的标识符(identifier)。什么是标识符呢?)。什么是标识符呢?Java语言语法对标识符有语言语法对标识符有明确的规定。
11、下面我们给出标识符的规范。明确的规定。下面我们给出标识符的规范。标识符必须以英文字母(包括大写和小写)或下划线(标识符必须以英文字母(包括大写和小写)或下划线(_)开头。)开头。标识符除开头之外的字符,允许使用英文字幕(包括大写和小写),标识符除开头之外的字符,允许使用英文字幕(包括大写和小写),下划线(下划线(_)和数字。其余字符都不可以使用。)和数字。其余字符都不可以使用。标识符区分大小写。也就是标识符区分大小写。也就是a和和A是两个不同的变量名。是两个不同的变量名。标识符不能是标识符不能是Java中的关键字。中的关键字。标识符不能重名。标识符不能重名。3.2.4 Java3.2.4 Ja
12、va中的基本运算符和表达式中的基本运算符和表达式首先我们介绍一下运算符的概念。运算符就是对首先我们介绍一下运算符的概念。运算符就是对Java变量进行运算操作的符号。本节中我们将介绍如下几个最常变量进行运算操作的符号。本节中我们将介绍如下几个最常用的运算符:赋值运算符(用的运算符:赋值运算符(=)、加法运算符()、加法运算符(+)、减法运)、减法运算符(算符(-)、乘法运算符()、乘法运算符(*)、除法运算符()、除法运算符(/)、括号运算)、括号运算符(符(())、余数运算符()、余数运算符(%)以及多个布尔运算符。)以及多个布尔运算符。1赋值运算符(赋值运算符(=)2 四则运算符四则运算符3
13、 括号运算符括号运算符4 余数运算符余数运算符3.2.5 Java3.2.5 Java中的布尔运算符中的布尔运算符下面我们来介绍下面我们来介绍Java中的布尔运算符。中的布尔运算符。Java中常用的布尔中常用的布尔运算符有如下几个:相等(运算符有如下几个:相等(=),不等(),不等(!=),大于(),大于(),小),小于(于(=),小于或等于(),小于或等于(=),和(),和(&),),简单和(简单和(&),或(),或(|),简单或(),简单或(|),取反(),取反(!)。)。1 值对比相关的布尔运算符值对比相关的布尔运算符关系运算符关系运算符2 求求boolean类型数据关系
14、的布尔运算符类型数据关系的布尔运算符逻辑运算符逻辑运算符3.2.6 位运算符位运算符位运算符是专门针对内存中的二进制数据进行运算的位运算符是专门针对内存中的二进制数据进行运算的一种运算符。一种运算符。Java中的位运算符一共有中的位运算符一共有7个,分别是:按位个,分别是:按位与(与(&)、按位或()、按位或(|)、按位非()、按位非()、按位异或()、按位异或()、)、左移位(左移位()和无符号右移位()和无符号右移位()。在)。在这里的前四个运算又可叫做位逻辑运算符,后面的三个叫做这里的前四个运算又可叫做位逻辑运算符,后面的三个叫做移位运算符。而这其中除了按位非运算是一元运算符,其
15、他移位运算符。而这其中除了按位非运算是一元运算符,其他的都是二元运算符。当然因为本书中很少谈及位运算(初学的都是二元运算符。当然因为本书中很少谈及位运算(初学者也只做了解即可),只需要知道有这么个分类,并做简单者也只做了解即可),只需要知道有这么个分类,并做简单了解。了解。3.3 3.3 基本数据类型运算的难点基本数据类型运算的难点上面一节中我们介绍了上面一节中我们介绍了Java基本类型变量和基本类型变量和Java中常中常用的操作符。现在我们大概觉得它们用起来和数学中的操作用的操作符。现在我们大概觉得它们用起来和数学中的操作符基本是一样的。基本没有超出我们符基本是一样的。基本没有超出我们“小学
16、数学小学数学”接触过的接触过的水平。只不过是小学的时候我们计算水平。只不过是小学的时候我们计算3+5,而在,而在Java程序里程序里面我们更多的是计算面我们更多的是计算a+b。下面我们本节中的内容将会学习。下面我们本节中的内容将会学习到到Java运算符中与我们传统数学中学到的不一样的地方。运算符中与我们传统数学中学到的不一样的地方。3.3.1 3.3.1 强制类型转换强制类型转换小数哪里去了小数哪里去了首先,我们知道首先,我们知道Java中处理变量与数学中不同的一个地方就是数中处理变量与数学中不同的一个地方就是数学中一个符号可以代表任何类型的数字,而在学中一个符号可以代表任何类型的数字,而在J
17、ava中,一个变量只能中,一个变量只能有一种类型。而有一种类型。而Java中有中有byte、short、int、long、float和和double六种六种类型都是用来表示数字的。我们有时候会遇到想要将一个类型的数字类型都是用来表示数字的。我们有时候会遇到想要将一个类型的数字变量值赋值给另一个类型的数字变量。这样就会有一个不同类型的值变量值赋值给另一个类型的数字变量。这样就会有一个不同类型的值相互转换的问题。相互转换的问题。3.3.2 3.3.2 类型的转换在运算中悄悄进行类型的转换在运算中悄悄进行其实在对两个不同类型的变量进行运算的时候,其实在对两个不同类型的变量进行运算的时候,Java会先
18、将精度低的变量转换成高精度的变量(会先将精度低的变量转换成高精度的变量(Java可以将高精可以将高精度变量值转换成低精度值,也可以反过来转换)。然后对两度变量值转换成低精度值,也可以反过来转换)。然后对两个通类型的变量进行运算,最后返回的结果也是高精度的。个通类型的变量进行运算,最后返回的结果也是高精度的。当操作符的操作数有不同的精度时,当操作符的操作数有不同的精度时,Java会将低精度会将低精度的操作数转换为高精度的操作数,然后进行运算。运算的结的操作数转换为高精度的操作数,然后进行运算。运算的结果也是高精度的值。果也是高精度的值。对于直接出现在程序中的整数,对于直接出现在程序中的整数,Ja
19、va会当作会当作int类型处类型处理;对于浮点数,理;对于浮点数,Java会当作会当作double处理。处理。3.3.3 3.3.3 强制类型转换最优先强制类型转换最优先强制类型转换的运算优先级是高于算数运算符的。如果我们强制类型转换的运算优先级是高于算数运算符的。如果我们把把3.3.1中中ForceConvert例程修改为如下的样子。例程修改为如下的样子。强制类型转换运算的优先级高于算数运算。强制类型转换运算的优先级高于算数运算。使用强制类型运算的时候,一个好习惯是将被转换的变量或使用强制类型运算的时候,一个好习惯是将被转换的变量或者表达式用小括号括起来。这样可以有效的避免出错,而且可以者表
20、达式用小括号括起来。这样可以有效的避免出错,而且可以让程序更加易读。让程序更加易读。3.3.4 3.3.4 等号其实不简单等号其实不简单在前面,我们介绍到等号就是用来赋值的。这个用法在前面,我们介绍到等号就是用来赋值的。这个用法与我们从小学以来一直会的用法是一样的。但是在与我们从小学以来一直会的用法是一样的。但是在Java中,中,等号还有更丰富的用法。等号还有更丰富的用法。等号(等号(=)除了会完成赋值操作以外,也跟其它运算符)除了会完成赋值操作以外,也跟其它运算符一样,会返回一个值。一样,会返回一个值。在等号左边的表达式中可以使用等号右边的变量。在等号左边的表达式中可以使用等号右边的变量。3
21、.3.5 3.3.5 小心使用浮点数进行比较小心使用浮点数进行比较其实在其实在Java中,因为浮点数不精确这个特点,我们极中,因为浮点数不精确这个特点,我们极少使用浮点数进行相等运算(少使用浮点数进行相等运算(=)。当我们需要判断两个浮)。当我们需要判断两个浮点数是不是相等的时候,比较通常的做法是让两个浮点数相点数是不是相等的时候,比较通常的做法是让两个浮点数相减,如果他们的差足够小,那么我们就认为两个浮点数是相减,如果他们的差足够小,那么我们就认为两个浮点数是相等的。等的。最好不要对浮点数进行相等比较。要用它们的差的绝最好不要对浮点数进行相等比较。要用它们的差的绝对值与一个我们关心的精度进行
22、比较,来判断两个浮点数是对值与一个我们关心的精度进行比较,来判断两个浮点数是否相等。否相等。编程中我们一般使用编程中我们一般使用|和和&。3.3.6 boolean3.3.6 boolean和和charchar上面的章节中我们主要使用了上面的章节中我们主要使用了Java基本类型中的数字基本类型中的数字相关的类型。下面我们在本小节中我们对相关的类型。下面我们在本小节中我们对boolean和和char各各给出一个例程。给出一个例程。1 通过例程学习通过例程学习boolean类悉变量类悉变量2 通过例程学习通过例程学习char类悉变量类悉变量3.3.7 3.3.7 不要使用还没定义的变量不要
23、使用还没定义的变量初学者最经常做的事情就是看到编译输出错误提示,初学者最经常做的事情就是看到编译输出错误提示,就垂头丧气。在这里我们大可不必,没人能够开始写程序就就垂头丧气。在这里我们大可不必,没人能够开始写程序就不出错的。学会看错误信息是编程技术提高的一个表现。当不出错的。学会看错误信息是编程技术提高的一个表现。当我们慢慢学会看懂编译器输出的错误提示的时候,我们会发我们慢慢学会看懂编译器输出的错误提示的时候,我们会发现编译器真的是很现编译器真的是很“强大强大”。它几乎每次都能准确的指出程。它几乎每次都能准确的指出程序中的语法错误。我们只要学会序中的语法错误。我们只要学会“倾听它的声音倾听它的
24、声音”,那么排,那么排除程序中的错误将是一件轻松愉快的事情。等我们发现编译除程序中的错误将是一件轻松愉快的事情。等我们发现编译错误就能够马上将它搞定的时候,我们就不再是错误就能够马上将它搞定的时候,我们就不再是Java初学者初学者了。了。3.3.8 String3.3.8 Stringcharchar串起的项链串起的项链本节中,我们来见一下我们在第一章的老朋友本节中,我们来见一下我们在第一章的老朋友String。1 学习使用学习使用String类型类型2 String类型的类型的“加法加法”运算运算3 String类型与基本类型的类型与基本类型的“加法加法”运算运算3.3.9 3.3.9 转义符转义符看不见写得出看不见写得出本章到这里就快
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 耐磨损塑料滑轨型材行业跨境出海项目商业计划书
- 调度集中系统维护和管理铁道信号自动控制专业教学79课件
- 江苏省无锡市崇安区2025届八年级数学第二学期期末复习检测试题含解析
- 本溪市重点中学2025届数学七下期末达标检测试题含解析
- 非线性Kawahara方程稳定性研究
- 职场技能课件
- 江苏省连云港市2024-2025学年高一下学期4月期中考试数学试题(原卷版)
- 化工产品采购进度控制措施
- 飞机导航系统成都航空航空电子设备维修专业教研室14课件
- 非营利组织项目科室主任职责
- GA 1517-2018金银珠宝营业场所安全防范要求
- 2022年中国建筑集团有限公司招聘笔试题库及答案解析
- 小学苏教版六年级下册数学总复习《图形的运动》市级公开课教案
- WDM网络规划与设计指南
- 电子商务客户服务5套综合测试题带答案
- 微观经济学课件第二章(高鸿业)
- 医院科室6S管理制度
- 病历书写基本规范12021病历书写规范试题.doc
- 《山东省自然科学基金资助项目年度进展报告》
- 电厂保安人员管理制度
- ge核磁共振机房专用精密空调机技术要求
评论
0/150
提交评论