资源描述
·383·
目 录
网络聊天室项目需求 1
设计内容 1
设计要求 1
总体设计 1
第一部分 3
第一章 JAVA入门基础 3
教学要求 3
1.1 Java语言入门 3
1.1.1 Java语言特点 3
1.1.2 Java语言的运行环境 5
1.1.3 Java Application程序与Java Applet程序 7
1.2 标识符、关键字和数据类型 11
1.2.1 标识符 11
1.2.2 关键字 12
1.2.3 分隔符 12
1.2.4 数据类型 12
1.2.5 常量与变量 15
1.3 运算符、表达式和语句 16
1.3.1 运算符 16
1.3.2 表达式 21
1.3.3 流程控制语句 21
1.4 类、对象和接口 29
1.4.1 类与对象 29
1.4.2 继承 33
1.4.3 包 36
1.4.4 接口 37
项目实训 38
第二章 异常 41
教学要求 41
2.1 什么是异常 41
2.1.1 异常处理基础 41
2.1.2 Java异常处理机制 41
2.2 异常的类型 42
2.2.1 Java异常类类型 42
2.2.2 Java异常类组成 43
2.3 未被捕获的异常 44
2.3.1 未被捕获的异常 44
2.4 try…catch语句 45
2.4.1 系统自定义异常的处理 45
延伸:使用多重catch语句、嵌套try语句 46
2.5 自定义异常与throw关键字 48
2.5.1 创建自己的异常 48
2.5.2 使用throw抛出异常 49
2.6 throws与finally关键字 50
2.6.1 使用throws声明异常 50
2.6.2 使用finally关键字 51
2.7 Java的内置异常 53
2.7.1 Java的内置异常 53
相关知识链接 54
程序引入异常的好处 54
编程提示 54
实例运用 55
案例完善:聊天系统中的异常处理 56
项目实训 57
第三章 JAVA APPLET类型 58
教学要求: 58
3.1 HTML简介 58
3.2 浏览器处理Applet 59
3.3 Applet类及其方法 61
3.3.1 Applet类的层次 61
3.3.2 Applet运行状态控制基本方法 62
3.3.3 Applet绘图 63
相关知识链接:关于Applet的一些细节 65
实例运用 67
项目实训 69
第四章 图形用户界面GUI(一)——AWT 70
教学要求 70
4.1 AWT工具集简介 70
4.2 AWT事件模型 71
4.3 GUI组件上的图形操作 73
4.3.1 Graphics类 73
4.3.2 组件重绘 75
4.4 常用的AWT组件 81
4.4.1 文本框和文本区 82
4.4.2 按钮和标签 85
4.4.3 面板和画布 87
4.4.4 布局设计 91
4.4.5 选择型组件 98
4.4.6 Component类的常用方法 102
4.4.7 Dialog类 105
相关知识链接 110
关于Java2D、Java3D技术 110
项目实训 112
第五章 JAVA中的事件处理机制 113
教学要求 113
5.1 事件与事件处理 113
5.2 授权事件模型 115
5.3 事件类及其处理 117
5.3.1 ActionEvent类 118
5.3.2 AdjustmentEvent类 124
5.3.3 ComponentEvent类 126
5.3.4 FocusEvent类 126
5.3.5 ItemEvent类 128
5.3.6 MouseEvent类 130
5.3.7 KeyEvent类 133
5.3.8 TextEvent类 136
5.3.9 WindowEvent类 138
5.4 事件适配器 140
5.5 事件处理的多重运用 141
相关知识链接 143
Inner类 143
实例运用 144
案例完善:聊天系统中的事件处理 147
项目实训 148
第六章 图形用户界面GUI(二)——SWING 150
教学要求 150
6.1 从AWT到Swing 150
6.2 Swing框架 151
6.3 JFrame、JDialog、JApplet 152
6.4 JPanel、JScrollPane、JSplitPane、JInternalFrame 165
6.5 图标和标签 173
6.6 各种组件 175
6.6.1 JButton 176
6.6.2 JCheckBox 177
6.6.3 JRadioButton 178
6.6.4 JComboBox 178
6.6.5 JTextField、JTextArea、JPasswordField 179
6.6.6 JTextPane 188
6.6.7 JMenuBar、JMenu、JMenuItem、JToolBar 190
6.6.8 JTable 192
6.6.9 Timer、JProgressBar 199
6.6.10 JFileChooser 203
6.6.11 JTree 208
相关知识链接 212
paint(Graphics g)和paintComponent(Graphics g)区别 212
实例运用 213
项目实训 221
第七章 多线程 222
教学要求 222
7.1 Java线程模型 222
7.1.1 理解线程概念 222
7.1.2 用Thread类的子类创建线程 222
7.1.3 用Runnable接口创建线程 224
7.1.4 两种线程实现方式的对比分析 225
7.1.5 线程生命的控制 225
7.1.6 多线程优先级 227
7.2 Java如何共享资源——线程同步 229
7.2.1 线程安全问题 229
7.2.2 使用线程同步 230
7.2.3 死锁问题 232
7.3 多线程之间的通信 233
7.3.1 线程通信 233
实例运用 235
案例完善:聊天系统中的多线程应用 237
项目实训 238
第八章 I/O输入输出流 239
8.1 流的概念 239
8.2 字节流、字符流和预定义流 240
8.2.1 字节流 240
8.2.2 字符流 240
8.2.3 预定义流 241
8.3 File类 242
8.4 InputStream和OutputStream 246
8.4.1 FileInputStream 247
8.4.2 FileOutputStream 248
8.5 Reader和Writer 249
8.5.1 FileReader 250
8.5.2 FileWriter 251
8.6 RandomAccessFile类 252
8.7 PipedInputSream和PipedOutputStream 254
8.8 过滤流与节点流 256
8.8.1 过滤流与节点流 256
8.8.2 BufferedInputStream和BufferedOutputStream 257
8.8.3 DataInputStream和DataOutputStream 258
实例运用 259
案例完善:聊天系统中的I/O流 267
实例运用 267
第九章 JAVA数据库连接(JDBC) 268
教学要求 268
9.1 JDBC原理 268
9.1.1 JDBC概述 268
9.1.2 JDBC体系结构 269
9.2 JDBC编程 270
9.2.1 JDBC连接步骤 270
9.2.2 配置数据库 270
9.2.3 通过executeQuery( )方法进行查询 275
9.2.4 通过executeUpdate( )方法更新、添加、删除记录 277
实例运用 279
案例完善:聊天系统中的数据库操作 283
项目实训 285
第十章 JAVA网络编程 286
教学要求: 286
10.1 网络编程基础 286
10.1.1 统一资源定位(URL) 286
10.1.2 Internet 编址与端口号 286
10.1.3 客户/服务器模式 288
10.1.4 代理服务器 288
10.1.5 TCP/IP与UDP协议 289
10.2 JAVA和网络 290
10.2.1 网络类和接口 290
10.2.2 InetAddress类 290
10.2.3 URL类 291
10.2.4 URLConnection类 292
10.3 Java编写TCP网络程序 294
10.3.1 套接字概述 294
10.3.2 TCP/IP客户套接字 295
10.3.3 TCP/IP服务器套接字 296
10.4 Java编写UDP网络程序 298
10.4.1 数据报服务器和客户 298
10.4.2 组播数据报 301
实例运用 304
案例完善:聊天系统中的网络编程 316
项目实训 317
第二部分 318
第一章 JAVA API 318
教学要求 318
1.1 理解API的概念 318
1.1.1 Java API包 318
1.2 数据类型类 320
1.2.1 java. lang包概述 320
1.2.2 Number及其子类 321
1.3 数学运算工具 323
1.3.1 Math类的方法 323
1.4 字符串处理 324
1.4.1 java. lang. String 324
1.4.2 java. lang. StringBuffer 327
1.5 java. lang包 329
1.5.1 java. lang. Object 329
1.5.2 java. lang. Class 329
1.5.3 java. lang. System 330
1.5.4 java. lang. Runtime与java. lang. Process 330
1.5.5 java. lang. Package 331
1.6 java. util包 331
1.6.1 Collection接口 331
1.6.2 java. util. Random 332
1.6.3 java. util. Date 333
1.6.4 java. util. Calendar 334
1.6.5 java. util. StringTokenizer 335
相关知识链接 337
有效利用编程语言的帮助文档 337
项目实训 338
第二章 JAVA与多媒体 340
教学要求: 340
2.1 Image类 340
2.1.1 图像类型 340
2.1.2 创建图像 340
2.1.3 加载图像 341
2.1.4 显示图像 342
2.1.5 在应用程序中显示图像 343
2.1.6 ImageIcon类 345
2.1.7 图像映射 346
2.2 利用Java播放动画 348
2.2.1 利用Java播放动画 348
2.3 利用Java播放幻灯片 349
2.3.1 利用Java播放幻灯片 349
2.3.2 Applet中播放声音 350
相关知识链接 352
Java多媒体API参考 352
实例运用 352
项目实训 355
第三章 JAVA BEAN基础 357
教学要求 357
3.1 理解Java Bean 357
3.2 应用程序开发工具 358
3.3 Bean开发工具包 359
3.4 JAR文档格式 363
3.5 内省机制 364
3.6 开发一个简单的Bean 364
3.6.1 如何创建自己的Bean 364
3.6.2 创建一个简单的Bean 365
3.6.3 测试Bean 366
附 录 367
附录一:JAVA编码规范及文档注释 367
1. Java编码规范 367
2. Java文档注释 368
附录二:JAVA2平台介绍及专有名词注释 371
1. Java2平台 371
2. Java专有名词注释 371
附录三:JAVA IDE工具介绍 374
1. UltraEdit 374
2. Editplus 374
3. Jcreator 374
4. Eclipse 374
5. JBuilder 375
6. Visual Age for Java 375
7. Visual Cafe for Java 375
8. NetBeans与Sun Java Studio 375
网络聊天室项目需求
设计内容
设计C/S模式的网络聊天室,客户端使用Java Swing应用程序和服务器的Java应用程序进行通信。
设计要求
1、客户端在Swing应用程序服务器地址栏输入服务器IP,与服务器程序通信。
2、客户端在和服务器建立套接字连接后,用户输入聊天的昵称和密码交给服务器验证,验证成功后可以进入聊天室。
3、聊天室界面包含公共聊天信息和私人聊天信息,用户可以用鼠标点击聊天列表中某个聊天者的昵称,和该聊天者进行私人聊天。
4、当新的用户进入聊天室时,所有的用户都可以在聊天列表中看到该用户的昵称;当某用户退出聊天室时,聊天列表将该用户的昵称删除,聊天室显示该用户离开的消息。
5、用户可以注册新的用户名和密码。
总体设计
C/S模式的网络聊天室程序共由6个java源文件组成。Client.java、Chat.java、Reg.java、Login.java、SendMessage.java 5个java文件生成的字节码打包后存放在客户机器上,属于客户端程序。ServerThread.java生成的字节码打包后存放在服务器上,属于服务器端程序。
⑴、客户端
Client.java负责创建网络聊天室客户端主窗口。
Login.java负责生成用户输入昵称和密码,单击“登陆”按钮,Client.java将登陆信息交给服务器,如果验证成功将进入聊天界面。
SendMessage.java和Chat.java共同组成了聊天界面。SendMessage.java负责生成信息输入框和发送按钮,Chat.java负责生成聊天信息显示界面和在线用户列表。
Reg.java负责生成用户注册界面。
⑵、服务器端
负责监听用户的呼叫,为每个呼叫的用户启动一个线程,在该线程中和用户交流信息。如果用户提交了公共信息,就将该信息发给所有的用户。
如果用户提交私人信息,就将该信息发给指定的用户。
如果用户提交登陆信息,就对信息进行验证以及判断用户是否已经登陆过。
如果用户提交注册信息,就进行注册。
如果有新用户进入聊天室或者有用户离开聊天室就提醒其他用户,将离开用户从列表中删除。
第一部分
第一章 Java入门基础
教学要求
1.掌握:典型的Java程序开发环境、Java基本数据类型、使用输入输出语句及算术运算符、编写判定语句、面向对象的开发方法及句法结构
2.理解:Java语言的语言特性、面向对象的编程思想
3.了解:applet与application的区别、Java在开发Internet和Web的分布式客户/服务器应用中的作用
1.1 Java语言入门
有人说,“以前,作为计算机软件人员,不能不会C++,现在不能不会Java”。这句话可能有些略失偏颇,但它确实道出了Java语言在软件界中越来越重要的地位。
Java语言已然成为一种流行趋势,不管是计算机专业人员还是非专业人员都应该接触和了解它,这样才能更好地适应不断发展变化的计算机技术环境。本章旨在让读者对Java语言有一个概念上的全面了解,至于Java的高级编程方面以及实用技巧,我们将在后续的章节陆续讨论。
好了,就让我们来进入这趟Java之旅吧!
1.1.1 Java语言特点
Java是目前使用最为广泛的网络编程语言之一,具有简单、动态、面向对象、分布式、解释执行、健壮、安全、结构中立、可移植、高效能、多线程等多种特点。
1、简单性
Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,标准类库和线程的支持也只有215KB左右。
2、面向对象
Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏,而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。
3、分布性
Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。
4、鲁棒性
Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的异常处理机制,在编译时,Java提示出可能出现但未被处理的异常,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。
5、安全性
用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
6、体系结构中立
Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时刻环境,Java程序就可在任意的平台上运行。
7、可移植性
与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时刻环境由标准C实现,这使得Java系统本身也具有可移植性。
8、解释执行
Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。
9、高性能
和其它解释执行的语言如BASIC不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
10、多线程
多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,我们可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。
11、动态性
Java语言的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
1.1.2 Java语言的运行环境
学习一门编程语言需要有一个程序开发环境。目前有许多较优秀的软件产品提供了Java程序开发环境,我们在附录中对其进行了详细的介绍,读者若有兴趣,可自行查阅。但初学Java语言最好选用Sun公司推出的软件开发工具箱JDK。
下面简单介绍一下JDK的下载和运行环境的设置,希望对初学者有所帮助。
一、JDK的下载:登陆Java的官方网站()免费下载J2SDK,如下图:
图1-1 Java官方网站
下载J2SE 1.4.2 SDK或者J2SE 5.0均可,本节以1.4.2为例。单击进入下图的下载界面:
图1-2 JDK下载页面
上图中,NetBeans是SUN提供的Java开发环境;J2SE JRE是Java的运行环境,如果你只需要运行现成的Java程序,而不需要编译Java源代码,则下载JRE即可;这里我们需要下载的是中间所标明的JDK,点击该连接,即可看到新链接页面。
首先需选中Accept License Agreement,然后根据操作系统平台选择合适版本。另外还可以选择是全部下载后离线安装,还是在线安装。下载完成后,安装比较简单,直接双击,程序即可自动解压缩并进行安装,一路都有画面指示,只需要遵循即可。可自行选择安装路径。安装完成后,在安装路径下的bin文件夹内,有我们所需的各种开发工具。
二、设置Java运行环境:进入“控制面板”,双击“系统”,弹出“系统属性”对话框,选择“高级”è单击“环境变量”按钮,如下图:
图1-3 环境变量
单击“新建”,添加如下的系统环境变量:
变量名:Path,变量值:D: \ jdk \ bin(假设JDK安装在D盘根目录下),如果曾经设置过环境变量Path,可单击该变量进行编辑操作。如下图:
图1-4 环境变量配置
但是,如果你的机器安装过一些商业化的Java开发产品或带有Java技术的一些产品,如PB、Oracle等,这些产品在安装后,可能会修改了Path的值,那么当运行编译器或者解释器时,很可能运行的是这些产品所带的老版本的编译器或者解释器。因此如果想使用SDK的编译器或解释器,在设置Path的值时,将需要的值写在前面。
比如,某个软件用到的Path值是:
D:\ PB \ jdk1.1.7 \ bin ;
如果不想删除这些产品对Path值的设置,可以重新编辑系统环境变量Path的值,并修改为:
D:\ jdk \bin ; .;D:\ PB \ jdk1.1.7 \ bin ;
另外,SDK安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库和虚拟机,这些类库被包含在jre\lib目录中的压缩文件rt.jar中。安装SDK一般不需要设置环境变量classpath的值,如果你的机器安装过一些商业化的Java开发产品或带有Java技术的一些产品,如PB、Oracle等,这些产品在安装后,可能会修改了classpath的值,那么当运行Java应用程序时,可能加载这些产品所带的老版本的类库而导致程序要加载的类无法找到,使程序出现运行错误。
比如,某个软件用到的classpath值为:
D: \ PB \ jdk1.1.7 \ jre \ lib \ classes.zip ;
如果不想删除这些产品对classpath值的设置,可以重新编辑系统环境变量classpath的值,并修改为:
D: \ jdk1.4 \ jre \ lib \ rt.jar;.; D: \ PB \ jdk1.1.7 \ jre \ lib \ rt.jar ;
1.1.3 Java Application程序与Java Applet程序
根据结构组成和运行环境的不同,Java程序可以分为两类:Java Application和Java Applet。
Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立程序,由Web浏览器内部包含的Java解释器来解释运行。它们各自使用的场合并不相同。
下面我们分别介绍Java Application与Java Applet,并比较它们之间的区别。
我们先从最简单的HelloWorld.java来学习Java Application。打开记事本,在里面输入以下代码。
public class HelloWorld{
public static void main(String args[]){
System.out.println("Hello! World");
}
}
一个Java源程序是由若干个类组成的。上面的程序仅有一个类,类名是HelloWorld,类中有一个静态的main方法,它是程序的入口。我们可将这段代码保存到E盘根目录下。
注意:“保存类型”应该选“所有文件”,而文件名应该为HelloWorld.java,其中.java后缀表明这是一个Java源代码文件。
源文件的命名规则是:如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,如果源文件没有public类,那么源文件的名字只要和某个类的名字相同即可。
当创建了HelloWorld.java这个源文件之后,需对其进行解释和运行,使它成为机器能够读懂的二进制文件。下图就是Java Application的解释执行过程。
源代码
HelloWorld.java
字节码
HelloWorld.class
Java虚拟机
JVM
javac
java
编译
运行
操作系统
图1-5 Java Application运行机制
在上一小节中,我们成功地安装了JDK,它下面的bin文件夹中有我们所需的解释运行工具,我们就是通过下面这两个命令来运行Java Application。
javac HelloWorld . java 编译出HelloWorld.class文件
java HelloWorld 运行主类
现在我们就来认识一下JDK中的其他主要的工具。
javac:Java编译器是将以“.java”为扩展名的Java源程序转换成可由Java解释器执行的类文件的工具。Java编译器的程序名是:javac。它的语法是:javac [选项] 源程序文件(注意:要带上.java后缀)。
java:Java解释器,用于运行编译过的Java应用程序。它的程序名是:java。Java解释器的语法是:java [选项] 类名。
javap:Java反编译器,用于分析已经编译过的Java字节码。经过反编译后,关于成员变量和方法的信息将被打印出来。Java反编译器的程序名是:javap,它的命令格式为:javap [选项] 类名。
javah:C头文件和承接模块文件创建器,用于当需要使用C语言扩展Java代码时创建C语言头文件和承接模块的。它的语法是:javah [选项] 类名。
javadoc:Java文档生成工具,用于在Java源文件中生成基于标记的HTML文件。这些HTML文件用于存储关于类和方法的信息。
jdb:Java调试器,它是Java环境的调试工具,是一个完全依赖命令行驱动的程序排错工具。
Java Applet是另一类非常重要的Java程序,虽然它的源代码编辑与字节码的编译生成过程与Java Application相同,但它却不是一类可以独立运行的程序。
首先看一个与HelloWorld.java运行结果类似的Java Applet程序:
import java. awt. Graphics; // 将java. awt包中的系统类Graphics引入本程序
import java. applet. Applet; // 将java. awt包中的系统类Applet引入本程序
public class My extends Applet{
public void paint(Graphics g){
g.drawString("Hello,java applet world",10,20);
}
}
其中,Java Applet中不需要有main方法,它的要求是程序中有且必须有一个类是系统类Applet的子类,也就是必须有一个类的类头部分以extends Applet结尾。
因为系统类Applet中已经定义了很多的成员域和成员方法,它们规定了Applet如何与执行它的解释器——WWW浏览器配合工作,所以当用户程序使用Applet的子类时,因为继承的功能,这个子类将自动拥有父类的有关成员,从而使WWW浏览器顺利地执行并实现用户程序定义的功能。
extends是关键字,代表新定义的类是它后面跟着的已经存在的父类的子类,Applet是父类名,父类可以是系统类,或者是其他已存在的用户自定义类。当一个类被定义成是另一个已经存在类的子类时,它将从其父类中继承一些成员,包括域和方法,这样子类都可以利用父类已实现的功能而不必重复书写语句了。
包是Java系统用来组织类的组织,功能作用和来源相关的系统类通常放在同一包中。
虽然Java Application和Java Applet在运行方式上有很大的不同,但是它们遵循相同的Java语言的语法规则,所以编译时也使用完全相同的编译工具。若使用JDK工具包中的编译器编译,则可使用如下的语句:
javac My.java 编译出My.class文件
运行Java Applet时必须将其字节码嵌入到HTML文件中,以上面的程序为例,它可以嵌在如下的HTML文件中:
<HTML>
<HEAD>
<TITLE>My</TITLE>
</HEAD>
<BODY>
<HR>
<APPLET CODE=My.class
WIDTH=500
HEIGHT=500>
</APPLET>
</BODY>
</HTML>
Applet的运行过程可用下图来表示。首先将编译好的字节码文件和编写好的HTML文件保存在Web服务器的合适路径下,当WWW浏览器下载此HTML文件并显示时,它会自动下载此HTML中指定的Java Applet字节码,然后调用内置在浏览器IE中Java解释器来解释执行下载到本机的字节码程序。
图1-6 Java Applet运行过程
下面的两个图将Java Application与Java Applet做一个简单比较。
图1-7 Java Applet
图1-8 Java Application
1.2 标识符、关键字和数据类型
1.2.1 标识符
标识符是用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。
Java语言规定标识符由字母、下划线、美元符号和数字组成,并且需遵循以下规则:
(1)区分大小写。
(2)不能以数字开头。
(3)以字母或下划线_或$符号开头。
(4)不能使用Java的关键字。
以下为合法的标识符:
aIdentifier、_Identifier、a变量、$Identifier、elseother
以下为不合法的标识符:
2002WorldCup、Identifier@Java、else
基本上,一般用于命名的符号包括字母A-Z、字母a-z、数字0-9以及Unicode字符集中序号大于0xC0的所有符号。
1.2.2 关键字
关键字是Java语言中已经被赋予特定意义的单词,对Java的编译器有特殊的作用,一般用来表示一种数据类型,或者程序的结构等。保留字是为Java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中很有可能成为关键字。目前Java语言定义的关键字如下:
const(保留字) goto(保留字) abstract finally int public this boolean continue float interface return throw break default for long short throws byte do native static transient case double if new strictfp try catch else implements package super void char extends import private switch volatile class final instanceof protected synchronize while
所有的关键字都是小写。另外,不能将关键字当作标识符来使用。关键字的学习有助于我们对Java语言的语法及运行机制的掌握。
1.2.3 分隔符
Java语言中定义了多种分隔符,每一种分隔符都在Java程序中承担着不同的功能与作用。如下:
圆括号( )在定义和调用方法时用来容纳参数表,在控制语句或强制类型转换组成的表达式中用来表示执行或计算的优先权。
花括号{ }用来包括自动初始化的数组的值,也用来定义程序块、类、方法以及局部范围。
方括号[ ]用来声明数组的类型,也用来表示撤消对数组的引用。
分号 ; 用来终止一个语句。
逗号 , 在变量声明中,用于分隔变量表中的各个变量.在for控制语句中,用来将圆括号内的语句连接起来。
句号 . 用来将软件包中的名字与它的子包或类分隔,也用来将引用变量与变量或方法分隔。
另外,还有一种较为特殊的空白分隔符,空格、Tab跳格键及换行符均属于这种分隔符。
1.2.4 数据类型
Java共有八种基本类型:四种是整型,两种浮点数字型,一种字符型char(用于Unicode编码中的字符),以及用于表示真假的布尔变量(boolean)。
1、整型
Java定义了4种整数类型:字节型(byte),短整型(short),整型(int),长整型(long)。这些都是有符号的值,无小数部分的数字,正数或是负数。
这些整数类型的长度和变化范围如表1-1所示:
表1-1 整数的各种类型
名称
长度
数的范围
长整型
64
–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
整型
32
–2,147,483,648 ~ 2,147,483,647
短整型
16
–32,768 ~ 32,767
字节型
8
–128~127
整数类型的范围与Java代码运行的所在的机器无关。长整型数字(long)有一个后缀L(如,40000000000L)。十六进制数据有一前缀0x(如,0xCAEF),八进制数据有一前缀0,例如:010就是10进制中的8。Java中没有unsigned类型。
2、浮点类型
Java中定义了两种浮点类型:单精度(float)浮点型及双精度(double)浮点型。
表1-2 浮点数的各种类型
名称
位数
数的范围
double
64
1.7e–308~1.7e+308
float
32
3.4E–038~3.4E+038
大部分程序中使用double类型。表示float类型数据时需要在后面添加后缀F,比如,3.402F。没有后缀的浮点数据(如3.402)总被认为成double类型。也可以在数字后面加
展开阅读全文