版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA程序设计本章学习目标: 熟悉Java语言的产生、特点以及编写规范 掌握Java开发环境和开发工具的使用 掌握编写简单的Java程序 掌握创建、编译和运行Java程序的基本步骤第一章 Java概述第1节partJava简介 Java是一种可用于编写跨平台应用软件的面向对象程序设计语言,也是Java SE(标准版)、Java EE(企业版)和Java ME(微型版)三种平台的总称。由于Java具有“一次编写,多处应用(Write Once,Run Anywhere)”的特点,使其广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等不同的媒介。Java具有卓越的通用性
2、、高效性、平台移植性和安全性,为其赢得了大量的爱好者和专业社群组织。Java简介本节概述 Java自1995诞生,至今已经20多年的历史。Java的名字来源于印度尼西亚爪哇岛的英文名称。该地因盛产咖啡而闻名,因此,JAVA的图标也正是一杯正冒着热气的咖啡,如图1.1所示。Java来自于Sun公司的一个“绿色项目(Green Project)”,其原先的目的是为家用消费电子产品开发一个分布式代码系统,目标是把E-mail发给电冰箱、电视机等家用电器,对这些电器进行控制以及信息交流。詹姆斯高斯林(James Gosling)加入到该项目小组。开始,项目小组准备采用C+,但C+太复杂,安全性差,最后
3、高斯林用C+开发了一种新的语言Oak(橡树),这就是Java的前身,在1994年Oak被正式更名为Java。1.1.1Java起源Java起源 詹姆斯高斯林(James Gosling)也被人们亲切的称为Java之父,如图1.2所示。 从1995年Java诞生以来,Java先后经历了8个版本的变更,当然版权的所有者也一度由Sun变为Oracle。如表1-1所示为Java发展过程中几个重要的里程碑。1.1.2Java发展史Java发展史表1-1 Java发展史Java语言之所以受到广大编程爱好者的青睐,是因为Java有着以下几方面的语言优势。1.1.3Java的特点Java的特点资源开源性跨平台
4、性健壮、安全性高性能性简单性面向对象动态性多线程支持分布式网络应用第2节partJava体系(Java Enterprise Edition,Java企业版)Java EE是企业级解决方案,支持开发、部署和管理等相关复杂问题的体系结构,主要用于分布式系统的开发、构建企业级的服务器应用,例如,电子商务网站、ERP系统等。Java EE在SE基础上定义了一系列的服务、API和协议等,如Servlet、JSP、RMI、EJB、Java Mail、JTA等。Java EE(Java Micro Edition,Java微型版)Java ME是各版本中最小的,是在SE基础上进行裁剪和高度优化,目的是在小
5、型的受限设备上开发和部署应用程序,例如,手机、PDA、智能卡、机顶盒、汽车导航或家电系统等。Java ME遵循微型开发规范和技术,如MIDLet、CLDC、Personal Profile等。Java ME1.2.1Java应用平台(Java Standard Edition,Java标准版)Java SE是Java技术的基础,适用于桌面系统应用程序(Application)、网页小程序(Applet)以及服务器程序的开发。Java SE主要包括Java语言核心技术和应用,如数据库访问、I/O、网络编程、多线程等。Java SE 1999年,在美国旧金山的Java One大会上,Sun公司公布
6、了Java体系架构,该架构根据不同级别的应用开发划分了三个版本:Java应用平台1.2.1Java应用平台Java应用平台 JDK(Java Development Kit,Java开发工具包)是Sun公司提供的一套用于开发Java程序的开发工具包。JDK提供编译、运行Java程序所需要的各种工具及资源,包括Java开发工具,Java运行时环境,以及Java的基础类库。1、JDK JRE(Java Runtime Environment,Java运行时环境)是运行Java程序所依赖的环境的集合,包括类加载器、字节码校验器、Java虚拟机、Java API。JRE已包含在JDK中,但是如果仅仅是
7、为了运行Java程序,而不是从事Java开发,可以直接下载安装JRE。2、JRE SDK(Software Development Kit,开发工具包)在版本1.2到1.4时,被称为Java SDK,在某些场合下,还可以看到执行过时的术语。4、SDK JVM(Java Virtual Machine,Java虚拟机)是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,只需将Java语言程序编译成在Java虚拟机上运行的目标代码(.clas
8、s,字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。3、JVM1.2.2专有名词专有名词1.2.3Java跨平台原理 JVM在具体的操作系统之上运行,其本身具有一套虚拟指令,但它通常是在软件上而不是在硬件上实现。JVM形成一个抽象层,将底层硬件平台、操作系统与编译过的代码联系起来。Java字节码的格式通用,具有跨平台特性,但这种跨平台建立在JVM虚拟机的基础之上,只有通过JVM处理后才可以将字节码转换为特定机器上的机器码,然后在特定的机器上运行。JVM跨平台特性如图1.5所示:Java跨平台原理1.2.3Java跨
9、平台原理 JVM虚拟机是Java程序具有“一次编译,多处应用”的特性,如图1.6所示。首先,Java编译器将Java源程序编译成Java字节码;其次,字节码在本地或通过网络传达给JVM虚拟机;再次,JVM对字节码进行即时编译或解释执行后形成二进制的机器码;最后,生成的机器码可以在硬件设备上直接运行。 JVM执行时将在其内部创建一个运行时环境,每次读取并执行一条Java语句会经过三个过程:装载代码、校验代码和执行代码,如图1.7所示。1.2.3Java跨平台原理Java字节码有两种执行方式: 解释执行方式。 JVM通过解释器将字节码逐条读入,逐条解释翻译成对应的机器指令。很显然,这种执行方式虽灵
10、活但执行速度会比较慢。为了提高执行速度,引入了JIT(Just-in-time compilation)技术。 即时编译方式(即JIT编译)。 当JIT编译启用时(默认是启用的),JVM将解释后的字节码文件发给JIT编译器,JIT编译器将字节码编译成机器代码,并把编译过的机器码保存起来,已备下次使用。为了加快执行速度,JIT目前只对经常使用的热代码进行编译。 通常采用的是解释执行方式,由于JVM规格描述具有足够的灵活性,使得将字节码翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。
11、第3节partJDK工具 “工欲善其事,必先利其器。”在开发的第一步,必须搭建起开发环境。本书以Java SE Development Kit 8在Windows操作系统的下载、安装作为范例,讲解整个Java开发环境的安装及配置过程。JDK工具本节概述1.3.1JDK介绍 JDK(Java Development Kit)是Sun Microsystems公司针对Java开发人员发布的免费软件开发工具包。JDK是整个Java的核心,是学好Java的第一步,如果没有JDK,则无法安装或者运行Eclipse。普通用户并不需要安装JDK来运行Java程序,而只需要安装JRE(Java Runtime
12、 Environment),而程序开发者必须安装JDK来编译、调试程序。 从Sun公司的JDK 5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高,其环境变量也可以不需要手动配置。JDK介绍Java虚拟机可以运行在各种操作系统平台上,负责解析和执行Java程序。Java运行环境提供了最基础的Java类以及各种实用类。如java.lang、java.io、java.util、java.awt、java.swing和java.sql包中的类都位于JDK类库中。Java继承类库(rt.jar)1.3.1JDK介绍这些开发工具都是可执行程序,主要包括:javac.ex
13、e(编译工具)、java.exe(运行工具)、javadoc.exe(生成JavaDoc文档的工具)和jar.exe(打包工具)等。Java开发工具 JDK包含一批用于Java开发的组件,其中包括以下几部分:1.3.2JDK安装配置下述内容分别介绍JDK下载、安装及配置。JDK安装配置1. 下载JDK进入Oracle官方网站可以下载JDK的最新版本。Oracle官方网站:JDK8的下载地址:/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlJDK 8.0的下载页面如图1.8所示。下载JDK 8.0的Windows x64
14、版本,即jdk-8u171-windows-x64.exe。由于不同版本的下载地址会经常发生变化,最有效的方法是访问官方网站,通过导航找到下载页面;如果是32位操作系统,则下载对应的“x86”版本。1.3.2JDK安装配置2. 安装JDK【步骤1】运行JDK的安装文件,进入JDK的安装向导界面,如图1.9所示。【步骤2】单击“下一步”按钮,进入定制安装界面,如图1.10所示。可以单击右下方的“更改”按钮,设置JDK的安装路径,否则进入默认安装路径。1.3.2JDK安装配置【步骤3】单击“下一步”按钮,进入安装进度界面,如图1.11所示。【步骤4】JDK安装进度完成,进入目标文件夹安装对话框,如
15、图1.12所示。可以单击“更改”按钮,选择JRE的安装路径。一般要求JDK和JRE安装在同一个文件夹内。1.3.2JDK安装配置【步骤5】单击“下一步”按钮,进入JRE安装进度界面,如图1.13所示。当安装完成以后,进入安装成功界面,如图1.14所示。单击“关闭”按钮,完成JDK整个安装过程。1.3.3JDK目录JDK安装完成后,在安装的位置中可以找到如图1.15所示的目录。JDK目录JDK主要目录如下: bin:JDK包中命令及工具所在目录。这是JDK中非常重要的目录,它包含大量开发当中的常用工具程序,如编译器、解释器、打包工具、代码转换器和相关调试工具等。 jre:运行环境目录。JDK自己
16、附带的Java运行环境。 lib:类库所在目录。包含了开发所需要的类库(即Java API)和支持文件。 db:附带数据库目录。在JDK 6.0以上的版本中附带Apache Derby数据库,这是一个Java编写的数据库,支持JDBC 4.0。 include:包含本地代码的C头文件的目录。用于支持java本地接口和Java虚拟机调试程序接口的本地代码编译。 src.zip:源代码压缩文件。Java提供的API都可以通过此文件查看其源代码是如何实现的。1.3.3JDK目录在JDK的bin目录下,提供了大量的开发工具程序,以下是几个常用的工具: javac: Java语言编译器。可以将Java源
17、文件编译成与平台无关的字节码文件(.class文件)。 java:Java字节码解释器。将字节码文件在不同的平台中解释执行。 javap:Java字节码分解程序。可以查看Java程序的变量以及方法等信息。 javadoc:文档生成器。可以将代码中的文档注释生成HTML格式的Java API文档。 javah:JNI编程工具。用于从Java类调用C+代码。 appletviewer:小应用程序浏览工具,用于测试并运行Java小应用程序。 jar:打包工具。在Java SE中压缩包的扩展名为.jar。第4节part集成开发环境 安装配置好JDK后可以直接使用记事本编写Java程序,但是,当程序复杂
18、到一定程度、规模逐渐增大后,使用记事本就远远满足不了开发的需求。一个好的集成开发环境(IDE,Integrated Development Environment)可以起到事半功倍的效果。集成开发环境具有很多优势:不仅可以检查代码的语法,还可以调试、跟踪、运行程序;此外,通过菜单、快捷键可以自动补全代码;且在编写代码的时候回自动进行编译;运行Java程序时,只需要单击运行按钮即可,大大缩短了开发时间。 目前,最流行的两种是Eclipse和NetBeans,为了正当“领头羊”,两者之间展开了激烈的竞争。这些年来由于Eclipse的开放性、极为高校的GUI、先进的代码编辑器等特性,在IDE的市场占
19、有率上远远超越NetBeans。本节仅介绍Eclipse这一款IDE工具的下载、安装和使用。集成开发环境本节概述1.4.1Eclipse简介 Eclipse是一个开放源代码、可扩展的、跨平台的集成开发环境。Eclipse最初主要用来进行Java语言开发,如今也是一些开发人员通过插件使其作为其他语言如C+和PHP的开发工具。Eclipse本身只是一个框架平台,众多插件的支持使得Eclipse具有更高的灵活性,这也是其他功能相对固定的IDE工具很难做到的。 Eclipse发行版本如表1-2所示。Eclipse简介1.4.2Eclipse下载及安装1. Eclipse下载进入Eclipse官方网站可
20、以下载最新版本的Eclipse安装文件。Eclipse官方网站:eclipse下载地址:/downloads/download.php?file=/oomph/epp/photon/R/eclipse-inst-win64.exe&mirror_id=1261Eclipse下载页面如图1.16所示。Eclipse下载及安装1.4.2Eclipse下载及安装2. Eclipse安装 Eclipse的安装一般有两种方式:一种是在网上下载绿化版的Eclipse开发工具,不需要安装,直接解压即可使用;另一种,是在官网下载需要安装的Eclipse软件。我们这里主要介绍第二种安装方式。下面对Eclipse
21、的安装分步骤进行详细介绍。Eclipse下载及安装【步骤1】下载完成后解压下载包,可以看到 Eclipse Installer 安装器,双击它,弹出安装类型选择页面,如图1.17所示。可以选择各种不同的语言的开发环境(包括Java、C/C+、JavaEE、PHP 等)。我们这里选择“Eclipse IDE for Java Developes”项。1.4.2Eclipse下载及安装 【步骤2】单击“next”按钮,进入安装路径选择界面,如图1.18所示。可以单击右侧的文件夹图标,进行安装路径选择。 【步骤3】按回车键,进入安装版本选择界面,如图1.19所示。我们这里选择64位的Oxygen(氧
22、气)版本进行安装。1.4.2Eclipse下载及安装 【步骤4】以后依次单击“next”按钮,直至安装完成即可。根据安装路径,打开Eclipse安装文件夹,其目录如图1.20所示。1.4.3Eclipse基本操作1. Eclipse启动 单击eclipse.exe启动开发环境,第一次运行Eclipse,启动向导会让你选择Workspace(工作区),如图1.21所示。在Workspace中输入某个路径,表示接下来的代码和项目设置都将保存在该工作目录下。单击“Launch”按钮,进入启动页面,如图1.22所示。Eclipse基本操作1.4.3Eclipse基本操作 启动成功后,第一次运行会显示欢
23、迎界面,如图1.23所示,单击Welcome标签页上的关闭按钮,关闭欢迎界面,将显示Eclipse开发环境布局界面,如图1.24所示。1.4.3Eclipse基本操作开发环境分为如下几个部分: 菜单栏。 工具栏。 IDE的透视图,用于切换Eclipse不同的视图外观,通常根据开发项目的需要切换不同的视图。 项目资源导航,主要有包资源管理器。 代码编辑区,用于编写程序代码。 程序文件分析工具,主要有大纲、任务列表。 问题列表、文档注释、声明和控制台窗口。 显示区域,主要有编译问题列表、运行结果输出等。1.4.3Eclipse基本操作2. 创建Java项目 打开Eclipse集成开发工具,选择Fi
24、leNewJava Project菜单项,如图1.25所示。或直接在项目资源管理器空白处右击,在弹出菜单中选择NewJava Project菜单项。在弹出的创建项目对话框中输入项目名称,如图1.26所示。直接单击“Finish”按钮,项目创建成功。1.4.3Eclipse基本操作3. 创建类 在student项目中的src节点上右击,在弹出菜单中选择NewClass菜单项。在弹出的新建类对话框中,如图1.27所示,输入包名和类名,选中“public static void main( String args)”复选框,然后单击“Finish”按钮,创建类完成。 新建类后,Eclipse会自动打
25、开新建类的代码编辑窗口,在main()方法中输入如下代码: System.out.println(我是一个好学生,我要好好学习Java!); 单击工具栏中的保存按钮,或者按“Ctrl+S”快捷键保存代码。单击工具栏上的运行按钮 ,选择“Run AsStudent”选项,即可运行Student.java程序,并且在控制台中可以看到输出结果如下:我是一个好学生,我要好好学习Java!1.4.3Eclipse基本操作4. Eclipse调试【步骤1】设置断点 单击需要设置断点的程序行左侧,在弹出的对话框中选择“设置断点”选项,会出现一个蓝色的断点标识,如图1.28所示。1.4.3Eclipse基本操
26、作【步骤2】调试程序 单击工具栏的调试按钮 ,或选择“Debug AsJava Application”选项,如图1.29所示,调试Student.java程序。此时弹出一个对话框如图1.30所示,询问是否切换到Debug透视图,单击“Yes”按钮,进入程序调试界面,如图1.31所。单击调试工具栏的 或 按钮,观察Variables窗口中的局部变量的变化,以及输出的变化,对代码进行调试并运行。1.4.3Eclipse基本操作5. Eclipse导入 在开发过程中,经常会需要从其他位置复制已有的项目,这些项目不需要重新创建,可以通过Eclipse的导入功能,将这些项目导入到Eclipse的工作空
27、间。 首先,选择“FileImport”菜单项,在弹出的对话框中选择“GeneralExisting Projects into Workspace”选项,如图1.32所示。1.4.3Eclipse基本操作 单击“Next”按钮,弹出导入项目窗口,如图1.33所示。可以导入两种形式的项目: 项目根目录,即该项目以文件夹形式存放,则单击“Browse”按钮,指定其项目的根目录即可。 项目压缩存档文件,即整个项目压缩成zip文件,则单击“Browse”按钮,指定其项目的压缩存档文件即可。 最后,单击“Finish”按钮,完成项目导入。此时需要导入的项目已经引入到Eclipse工作空间中。 注意:能
28、够向Eclipse中导入的项目必须是使用Eclipse导出的项目。导出项目与导入项目正好相反,选择“FileExport”菜单项。第5节partJava应用程序 Java程序分为Application程序和Applet程序两类。Application程序是普通的应用程序,其编译结果不是通常的exe文件而是class文件。Application程序能够在任何具有Java解释器的计算机上运行。Applet程序不是独立的程序,使用时必须把编译时生成的class文件嵌入到HTML文件中,借助浏览器解释执行。Java应用程序本节概述1.5.1Java语言编写规范 在Java语言中,为包、类、接口、变量、
29、常量和方法等取的名字,称为标识符。有关标识符的命名规则在第二章详细介绍,不遵循标识符命名规则会导致编译错误。在Java中,还有一种推荐的编程习惯,如果不遵守,虽然不会导致编译错误,但是编写的程序后期维护成本较高,可读性也较差。一般素质良好的程序员,在编写Java程序时,通常都会遵守如下的编程规范。Java语言编写规范1. 包名包名是全小写的名词,具有多个层次结构的包名中间用点号分隔开。例如:com. student或java. sql. jdbc等。2. 类名和接口名类名和接口名通常由多个单词构成,要求每个单词的首字母都要大写,其余字母小写。例如:HelloWorld或StudentInfor
30、mation等。3. 方法名方法名如果有多个单词组成,则第一个单词首字母要求小写,其余每个单词首字母大写,其余所有字母都小写。例如:createBookSaleRecord。4. 变量名和对象名变量名和对象名的编程规范和方法名相同,只是一般为名词。例如:name,age等。5. 常量名基本数据类型的常量名为全大写,如果由多个单词构成,可以用下划线隔开。例如:MAX_VALUE、MIN_AGE等。1.5.2Java注释 注释是对程序代码做出注销或者解释说明的作用。在程序编译时,注释的内容不会被编译器处理,所以对于编译和运行的结果不会有任何影响。但是在复杂的项目中,注释往往用来帮助开发人员阅读和理
31、解程序,同时也有利于程序修改和调试。Java注释 Java语言支持单行注释、多行注释和文档注释三种方法。 1. 单行注释 单行注释使用“/”符合进行标记,可放置于代码后面或单独成行,标记之后的内容都被视为注释。 例如: public static void main(String args) int i = 0; /定义变量i,并赋初值0。 /向控制台输出语句 System.out.println(Hello World!); 1.5.2Java注释2. 多行注释 多行注释使用“/*/”进行标记,注释内容可以跨越多行,从“/*”开始到“*/”结束,之间的内容都被视为注释。多行注释主要用于注释内
32、容较多的文本,如说明文件、接口、方法和相关功能块描述,一般放在一个方法或接口的前面,起到解释说明的作用,也可以根据需要放在合适的位置。 例如: public static void main(String args) /* System.out.print()输出内容后不换行* System.out.println()输出内容后换行*/System.out.print(输出内容后不换行!);System.out.println(输出内容后换行!); 1.5.2Java注释3 文档注释 文档注释使用“/*/”进行标记,其注释的规则与用途相似于多行注释。文档注释不同于多行注释的是可以通过“java
33、doc”工具将其注释的内容生成HTML格式Java API文档。程序的文档是项目产品的重要组成部分,将注释抽取出来可以更好地供使用者参阅。因此,在实际应用中,文档注释应用更为广泛,尤其是对类、接口、构造方法、方法的注释应尽量使用文档注释。例如: /* * 单位 重庆机电职业技术学院 * 作者 向守超 */ public class HelloWorld public static void main(String args) /向控制台输出语句 System.out.println(Hello World!); 1.5.3Java打印输出 在Java程序中,向控制台输出信息是必不可少的。输出的
34、工作是通过打印语句来完成的。据不完全统计,打印语句是在代码中使用频率最高的语句之一,对于初学者来说是验证结果、测试代码、记录系统信息最普遍的方法。 本书介绍两个Java中最常用的打印方法:System.out.println()和System.out.print(),以便于后续学习中的应用,两者都是向控制台输出信息,不同的是System.out.println()方法会在输出字符串后在输出回车换行符,而System.out.print()方法则不会输出回车换行符。Java打印输出1.5.3Java打印输出下述代码示例了分别使用两种打印方法实现各种数据的输出,代码如下所示。【代码1.1】Prin
35、tExample.javapackage com;public class PrintExample public static void main(String args) String s = Hello;char c = c;System.out.print(String is :);System.out.println(s);System.out.print(char is :);System.out.println(c);上述代码运行结果如下所示:String is :Hellochar is :c1.5.4Hello World程序编写Java程序需要注意以下几点: Java是区分
36、字母大小写的编程语言,Java语言的源程序文件是以.java为后缀的。 所有代码都写在类体之中,因为Java是纯面向对象的编程语言,一个完整的Java程序,至少需要有一个类(class)。 一个Java文件只能有一个公共类(public),且该公共类的类名与Java文件名必须相同,但一个Java文件可以有多个非公共类。 每个独立的、可执行的Java应用程序必须要有main()方法才能运行。main()方法时程序的主方法,是整个程序的入口,运行时执行的第一句就是main()方法。Java语法对main()方法有固定的要求,方法名必须是小写的“main”,且方法必须是公共、静态、返回值类型为空的“
37、public static void”类型,且其参数必须是一个字符串数组。Hello World程序1.5.4Hello World程序下面以HelloWorld程序为例,详细讲解Java程序的基本结构和代码含义。代码程序如下所示。【代码1.2】HelloWorld.java/定义包,指定类存放路径package com;/import语句,导入Java核心类库import java.lang.*;/*使用“class”关键字定义一个名称为“HelloWorld”的类 * 该类的访问权限修饰符为public,表示在整个应用程序中都可以用访问该类 * 该公共类的类名必须与源文件的文件名一致 *
38、类的类体是由一对大括号“”括起来的,起到封装作用 * */public class HelloWorld / 定义程序的主方法main()方法,即程序的入口public static void main(String args) / 向控制台输出双引号内的语句,通常一个语句书写一行, /语句必须以英文格式的分号“;”来结束System.out.println(Hello World!);本章课后作业见教材JAVA程序设计本章学习目标:本章主要学习Java语言中的基本数据类型、运算符与表达式 掌握Java中的字符集、分隔符、标识符、关键字 掌握变量和常量的定义和初始化 掌握基本数据类型 掌握Ja
39、va中数据类型的转换、运算符和表达式第二章 数据类型与运算符第1节part字符 字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,不同的字符集所包含的字符个数也不同。字符集种类较多,常见字符集有ASCII字符集、GB2312字符集和Unicode字符集。计算机要准确处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 Unicode字符集是由一个名为Unicode Consortium的非盈利机构制订的字符编码系统,支持各种不同语言的书面文本的转换、处理及显示。Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,
40、以满足跨语言、跨平台进行文本转换、处理的要求。Unicode支持UTF-8、UTF-16和UTF-32这三种字符编码方案,这三种方案的区别如表2-1所示。2.1.1字符集字符集 注意:Java语言中基本所有输入元素都是采用ASCII字符集编码,而标识符、字符、字符串和注解则采用Unicode字符集编码。2.1.1字符集 Java中使用多种字符作为分隔符,用于辅助程序编写、阅读和理解。这些分隔符可以分为两类: 空白符:没有确定意义,但帮助编译器正确理解源程序,包括空格、回车、换行和制表符(Tab); 普通分隔符:拥有确定含义,常用的普通分隔符如表2- 2所示。2.1.2分隔符分隔符 需要注意的是
41、:任意两个相邻的标识符之间至少有一个分隔符,便于编译程序理解;空白符的数量多少没有区别,使用一个和多个空白符实现相同的分隔作用;分隔符不能相互替换,比如该用逗号的地方不能使用空白符。 在各种编程语言中,通常要为程序中处理的各种变量、常量、方法、对象和类等起个名字作为标记,以便通过名字进行访问,这些名字统称标识符。 Java中的标识符由字母、数字、下划线或美元符组成,且必须以字母、下划线(_)或美元符($)开头。 Java中标识符的命名规则如下: 可以包含数字,但不能以数字开头; 除下划线“_”和“$”符以外,不包含任何其他特殊字符,如空格; 区分大小写,例如“abc”和“ABC”是两个不同的标
42、识符; 不能使用Java关键字。 标识符可有任意长度。2.1.3标识符标识符以下是合法标识符的示例:varName _varName var_Name $varName _9Name以下是非法标识符的示例:Var Name /包含空格9 varName /以数字开头a+b /加号“+”不是字母和数字,属于特殊字符,不是Java标识符组成元素 关键字又叫保留字,是编程语言中事先定义的、有特别意义的标识符。关键字对编译器具有特殊的意义,用于表示一种数据类型或程序的结构等,关键字不能用于变量名、方法名、类名以及包名。Java中常用的关键字如表2-3所示。2.1.4关键字关键字第2节part变量和常量
43、 变量是数据的基本存储形式,因Java是一种强类型的语言,所以每个变量都必须先声明后再使用。变量的定义包括变量类型和变量名,其定义的基本格式如下: 数据类型 变量名 = 初始值; 例如:定义整型变量 int a = 1; / 声明变量并赋初始值 其中,int是整型数据类型;a是变量名称;= 是赋值运算符;1 是赋给变量的初始值。 变量的声明与赋值也可以分开, 例如: int a; /声明变量 a=1; /给变量赋值 声明变量时,可以几个同一数据类型的变量同时声明,变量之间使用逗号“,”隔开, 例如: int i , j , k; 2.2.1变量变量 常量是指一旦赋值之后其值不能再改变的变量。在
44、Java语言中,使用final关键字来定义常量,其语法格式如下: final 数据类型 变量名 = 初始值; 例如:定义常量 final double PI=3.1416; /声明了一个double类型的常量,初始化值为3.1416 final boolean IS_MAN=true; /声明了一个boolean类型的常量,初始化值为true 需要注意的是:在开发过程中常量名习惯采用全部大写字母,如果名称中含有多个单词,则单词之间以“_”分隔。此外常量在定义时,需要对常量进行初始化,初始化后,在应用程序中就无法再对该常量赋值。2.2.2常量常量第3节part数据类型 定义变量或常量时需要使用数
45、据类型,Java的数据类型分为两大类:基本类型和引用类型。 基本类型是一个单纯的数据类型,表示一个具体的数字、字符或布尔值。基本类型存放在内存的“栈”中,可以快速从栈中访问这些数据。 引用类型是一个复杂的数据结构,是指向存储在内存的“堆”中数据的指针或引用(地址)。引用类型包括类、接口、数组和字符串等,由于要在运行时动态分配内存,所以其存取速度较慢。数据类型本节概述Java的基本数据类型主要包括如下四类: 整数类型:byte、short、int、long 浮点类型:float、double 字符类型:char 布尔类型:boolean2.3.1基本数据类型基本数据类型Java各种基本类型的大小
46、和取值范围如表2-4所示。1. 整型类型整数类型根据大小分为byte(字节型)、short(短整型)、int(整型)和long(长整型)四种,其中int是最常用的整数类型,因此通常情况下,直接给出一个整数值默认就是int类型。其中,在定义long类型的变量时,其常量后面需要用后缀l或L。例如:声明整型类型变量byte b = 51; /声明字节型变量short s = 34; /声明短整型变量int i = 100; /声明整型变量long m = 12l; /声明长整型变量long n = 23L; /声明长整型变量Java中整数值有4种表示方式:2.3.1基本数据类型 二进制:每个数据位上
47、的值是0或1,二进制是整数在内存中的真实存在形式,从Java 7开始新增了对二进制整数的支持,二进制的整数以“0b”或“0B”开头。 八进制:每个数据位上的值是0,1,2,3,4,5,6,7,其实八进制是由3位二进制数组成的,程序中八进制的整数以“0”开头。 十进制:每个数据位上的值是0,1,2,3,4,5,6,7,8,9,十进制是生活中常用的数值表现形式,因此在程序中如无特殊指明,数值默认为十进制。 十六进制:每个数据位上的值是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,与八进制类似,十六进制是由4位二进制数组成的,程序中十六进制的整数以“0 x”或“0X”开头。下述案例
48、示例了整数类型的不同表示形式,代码如下所示。【代码2.1】IntValueExample.javapackage com;public class IntValueExample public static void main(String args) int a = 0b1001; / 二进制数 System.out.println(二进制数0b1001的值是: + a); int b = 071; / 八进制数 System.out.println(八进制数071的值是: + b); int c = 19; / 十进制数 System.out.println(十进制数19的值是: + c)
49、; / Integer.toBinaryString()方法将一个整数以二进制形式输出 System.out.println(19的二进制表示是: + Integer.toBinaryString(c); int d = 0 xFE; / 十六进制数 System.out.println(十六进制数0 xFE的值是: + d); System.out.println(十六进制数0 xFE的二进制表示是+Integer.toBinaryString(d); int e = 19; / 负数以补码形式存储 System.out.println(19的二进制表示是: + Integer.toBina
50、ryString(e); 2.3.1基本数据类型 上述代码中,Integer是int基本数据类型对应的封装类,该类提供一些对整数的一些常用静态方法,其中Integer.toBinaryString( )方法可以将一个整数以二进制形式输出。 2.3.1基本数据类型该程序运行结果如下所示: 二进制数0b1001的值是:9 八进制数071的值是:57 十进制数19的值是:19 19的二进制表示是:10011 十六进制数0 xFE的值是:254 十六进制数0 xFE的二进制表示是11111110 19的二进制表示是:100112. 浮点类型 浮点数据类型有单精度(float)和双精度(double)两
51、种,主要用来存储小数数值,也可以用来存储范围更大的整数。 单精度浮点型变量使用关键字float来声明,常量后面必须要有后缀f或F。 例如:声明单精度浮点型变量 float height = 1.78f; / 声明变量height为单精度浮点型,并赋初始值为1.78 float weight = 56.8F; /声明变量weight为单精度浮点型,并赋初始值为56.8 float变量在存储float类型数据时保留8位有效数字,例如,如果将常量12345.123456789f赋值给float类型变量x,则x实际输出值为12345.123。对于float类型变量,分配4个字节内存,占32位,floa
52、t类型变量的取值范围为1.4E-453.4028235E38和-3.4028235E38-1.4E-45。 双精度浮点型变量使用关键字double来声明,常量后面可以有后缀d或D,也可以省略,浮点类型默认为double型。 例如:声明双精度浮点型变量 double a = 1.24d; double b = 4.87D; double c = 3.14;2.3.1基本数据类型 double变量在存储double类型数据时保留16位有效数字,分配8个字节内存,占64位,double类型变量的取值范围为4.9E-3241.7976931348623157E308和-1.79769313486231
53、57E308-4.9E-324。2.3.1基本数据类型下述案例示例了浮点类型变量保留的有效位数,代码如下所示。【代码2.2】FloatExample.javapackage com;public class FloatExample public static void main(String args) float x=12345.123456789f;System.out.println(x=+x);double y=12345.12345678912345678d;System.out.println(y=+y); 程序运行结果如下:x=12345.123y=12345.12345678
54、91243. 字符型 Java语言中字符型char是采用16位的Unicode字符集作为编码方式,因此支持世界上各种语言的字符。char通常用于表示单个字符,字符值必须使用单引号()括起来。 例如: char =A; /声明变量c为字符型,并赋初值为A字符型char的值有以下三种表示形式: 通过单个字符来指定字符型值,例如:A、8、Z等; 通过转义字符来表示特殊字符型值,例如:n、t等; 直接使用Unicode值来表示字符型值,格式是uXXXX,其中XXXX代表一个十六进制的整数,例如:u00FF、u0056等。2.3.1基本数据类型例如:使用转义字符赋值char a=; /变量a表示一个单引
55、号 char b=; /变量b表示一个反斜杠4. 布尔类型 布尔类型又称逻辑类型,使用关键字boolean来声明,只有true和false两种值。布尔类型的默认值是false,即如果定义一个布尔变量但没有赋初始值,默认的布尔变量值是false。布尔类型通常用于逻辑判断,尤其多用在程序的流程控制中。 例如:声明一个boolean类型变量 boolean male = true; /声明变量male为布尔类型,并赋初始值为true2.3.1基本数据类型2.3.1基本数据类型程序运行结果如下:isA=falseisB=trueisB is true下述案例示例了布尔数据类型的应用,代码如下所示。【代
56、码2.3】BooleanExample.javapackage com;public class BooleanExample static boolean isA; / 定义一个布尔值,使用默认值 static boolean isB = true; / 定义一个布尔值,赋初始值为true public static void main(String args) System.out.println(isA= + isA); / 输出不布尔值isA的结果System.out.println(isB= + isB); / 输出不布尔值isB的结果/ 输出isA为true则输出isA is tr
57、ueif (isA = true) System.out.println(isA is true);/ 输出isB为true则输出isB is trueif (isB) System.out.println(isB is true); 2.3.2引用数据类型 引用类型变量中的值是指向内存“堆”中的指针,即该变量所表示数据的地址。 Java语 言中通常有5种引用类型: 数组:具有相同数据类型的变量的集合。 类(class):变量和方法的集合。 接口(interface):一系列方法的声明,方法特征的集合。 枚举(enum):一种独特的值类型,用于声明一组命名的常数。 空类型(null type)
58、:空引用,即值为null的类型。空类型没有名称,不能声明一个null类型的变量,null是空类型的唯一值。空引用只能被转换成引用类型,不能转换成基本类型,因此不要把一个null值赋给基本数据类型的变量。 引用数据类型2.3.3数据类型转换 在Java程序中,不同的基本类型的值经常需要进行相互转换。Java语言提供7个基本数据类型间的相互转换,转换的方式有两种:自动类型转换和强制类型转换。 1. 自动类型转换 自动类型转换是将某种基本类型变量的值直接赋值给另一种基本类型变量。当把一个数值范围小的变量直接赋值给一个数值范围大的变量时,系统将进行自动类型转换,否则就需要强制类型转换。 Java语言中
59、7个基本数据类型间的自动类型转换如图2.1所示。在图2.1中,顺着箭头方向可以进行自动类型转换。其中,实线箭头表示无精度损失的转换,而虚线箭头则表示在转换过程中可能丢失精度,即会保留正确的量级,但精度上会有一些损失(小数点后所保留的位数)。数据类型转换2.3.3数据类型转换2. 强制类型转换 当把一个数值范围大的变量赋值给一个数值范围小的变量时,即沿图2.1中箭头反方向赋值时,则必须使用强制类型转换。 强制类型转换的基本格式如下: 数据类型 变量1 = (数据类型)变量2; 例如: int a = 56; char c = (char) a; / 把整型变量a强制类型转换为字符型2.3.3数据
60、类型转换下述案例示例了自动类型转换与强制类型转换的应用,代码如下所示。【代码2.4】TypeChangeExample.javapackage com;public class TypeChangeExample public static void main(String args) byte b = 8;char c = B;int a = 12;long l = 789L;float f = 3.14f;double d = 5.3d;int i1 = a + c; / 字符型变量c自动转换为整型,参加加法运算System.out.println(i1= + i1);long l1 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文员个人总结简短500字
- 指定监护人决定书(5篇)
- 科技读书节开幕词(3篇)
- 灭火应急预案大全15篇
- 建筑项目施工合同范本(34篇)
- 北京市海淀区2024−2025学年高二上学期阶段性针对训练(10月) 数学试卷含答案
- 风险整改报告5篇
- DB11T 1500-2017 自然保护区建设和管理规范
- 2023年冷弯型钢资金需求报告
- 2023年建材级纤维素醚资金申请报告
- 海洋科考船队航次规划
- 实体店培训计划书
- 急性心肌梗死小讲课
- GB/T 14685-2022建设用卵石、碎石
- 第5.2课《学习工匠事迹领略工匠风采》(课件)-【中职专用】高二语文同步课件(高教版2023·职业模块)
- 2024年中考历史九年级下册重点知识点复习提纲(部编版)
- 大学数据结构期末考试试题(有答案)
- 保险行业2024年市场发展趋势
- 艾滋病机会性感染治疗临床路径全套
- 尿源性脓毒血症的护理查房课件
- 《中秋节来历》课件
评论
0/150
提交评论