已阅读5页,还剩171页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
版本号 版本号 V1 0 编辑单位 编辑单位 中软国际信息技术培训有限公司 无锡 地址 地址 无锡市新区江苏软件外包产业园处子座 B 座 邮编 邮编 214000 电话 网站 E mail 声明 声明 1 本书版权归中软国际所有 未经许可 任何单位或个人不能 使用或翻录本书内容 违者必究 2 由于本书编写者水平有限 时间仓促 有考虑不周之处 请广大读者不吝指正 JAVA 核心技术 ETC 培训教材第 2 页 共 176 页 目目 录录 JDK1 6 文本编辑器一个 Eclipse 一种浏览器 8 第 1 章了解 Java 9 简介 9 1 1Java 的发展历程 9 1 2Java 相关名词 11 1 2 1JRE JDK JVM 11 1 2 2J2SE J2EE J2ME 11 1 3Java 特性 11 1 4Java 程序执行过程 12 1 4 1类加载器 13 1 4 2类校验器 13 1 4 3执行程序 13 1 5第一个 Java 程序及运行环境的设置 14 1 6Hello java 的语法解释 16 1 7javac 命令 16 1 8java 命令 16 练习 17 第 2 章Java 基本语法 19 简介 19 2 1注释 19 2 1 1行注释 19 2 1 2块注释 19 2 1 3文档注释 20 2 2分号 块和空格 21 2 2 1分号 21 2 2 2块 21 2 2 3空格 22 2 3标识符 22 2 4关键字 22 2 5数据类型 23 2 5 1逻辑类 boolean 24 2 5 2文本类 char 和 String 24 2 5 3整数类 byte short int long 24 2 5 4浮点 float 和 double 25 2 5 5非基本数据类型 String 25 2 6变量的声明及赋值 26 2 7常量 27 2 8数据类型的转换 27 2 8 1类型自动转换 27 2 8 2强制类型转换 27 2 9简单的 Java 程序 28 2 9 1方法 28 JAVA 核心技术 ETC 培训教材第 3 页 共 176 页 2 9 2变量和作用域 29 练习 30 第 3 章表达式和流程控制 31 简介 31 3 1运算符和表达式 31 3 1 1赋值运算符 31 3 1 2算术运算符 31 3 1 3关系运算符 34 3 1 4逻辑运算符 35 3 1 5按位运算符 38 3 1 6移位运算符 39 3 1 7三元 if clse 运算符 40 3 1 8字符串运算符 40 3 1 9运算符的优先级 41 3 2流程控制 41 3 2 1if else 语句 41 3 2 2switch 语句 42 3 2 3循环语句 43 3 2 4流程控制语句 44 3 2 5和标签相作用的特殊循环流程控制 46 练习 47 第 4 章数组 48 简介 48 4 1声明数组 48 4 2创建数组空间 48 4 3创建数组元素并初始化 49 4 4使用数组的注意事项 49 4 5多维数组 49 练习 学员练习 50 第 5 章面向对象 51 简介 51 5 1用 java 程序描述现实世界 51 5 2面向对象的概念 53 5 3封装性 53 5 4继承 54 5 5覆盖 55 5 6super 关键字 56 5 7对象的类型转换 56 5 8多态 57 5 9构造方法 59 5 9 1构造方法 59 5 9 2默认的构造方法 60 5 9 3多个构造函数 61 5 10this 变量 61 JAVA 核心技术 ETC 培训教材第 4 页 共 176 页 5 10 1区别同名变量 61 5 10 2指代构造方法 63 5 11包 64 5 12import 语句 65 5 13常用包 65 5 14打包我们的程序 65 练习 66 第 6 章修饰词 68 简介 68 6 1访问说明符 68 Test1 java 71 6 2static 72 6 3abstract 73 6 4final 74 6 4 1常量 74 6 4 2最终方法 75 6 4 3最终类 75 练习 75 第 7 章高级类特性 76 简介 76 7 1接口 76 7 1 1接口的使用 77 7 1 2接口的功能 77 7 2内部类 80 练习 84 第 8 章Exception 85 简介 85 8 1异常处理的目的 85 8 2try 和 catch 语句 86 8 3finally 语句 86 8 4异常的处理或声明规则 86 8 5异常分类 87 8 6创建自己的异常 89 8 6 1介绍 89 8 6 2实例 89 8 7异常处理小结 90 练习 90 第 9 章常用类 91 简介 91 9 1String 类 91 9 1 1 和 equals 的用法 91 9 1 2String 可以和任意的基本类型和引用类型相加 91 9 1 3String 类对象是常量对象 92 9 2应用 API 帮助 92 JAVA 核心技术 ETC 培训教材第 5 页 共 176 页 练习 94 9 3StringBuffer 94 练习 95 9 4Object 类 95 9 4 1打印对象 96 练习 96 9 4 2对象的克隆 96 9 5思考 99 9 6Math 99 练习 100 9 7System 100 9 7 1arraycopy 方法 101 9 7 2currentTimeMillis 方法 101 9 7 3设置环境属性的方法 102 9 7 4其他常用方法 102 9 8Class 类 102 9 9Arrays 106 9 9 1数组的排序 106 练习 108 第 10 章基本数据类型的封装 109 简介 109 10 1简单类型包装器 109 10 2Number 109 10 3Double 和 Float 110 第 11 章单例模式 113 简介 113 11 1单例模式 113 11 2Runtime 类与 Process 类 113 练习 115 第 12 章内存回收 116 简介 116 第 13 章集合 118 简介 118 13 1数据结构 118 13 2集合接口框架图 119 13 3实现类的图解 119 13 4ArrayList 120 13 5迭代器 Iterator 122 13 5 1跌代器的用法 122 13 5 2迭代器的原理 122 13 5 3集合的公共调用形式 123 13 6Collections 类 125 13 7LinkedList 127 13 7 1LinkedList 模拟栈 子弹夹 128 JAVA 核心技术 ETC 培训教材第 6 页 共 176 页 13 8ArrayList 和 LinkedList 的比较 129 13 9HashSet 130 13 10TreeSet 133 13 11HashSet 和 TreeSet 的比较 136 13 12HashMap 136 13 13Properties 类 138 13 14TreeMap 139 13 15集合类的选择 139 练习 2 139 第 14 章I O 140 简介 140 14 1File 类 140 14 2流式 I O 143 14 3InputStream 144 14 4OutputStream 145 14 5FileInputStream 和 FileOutputStream 146 14 6DataInputStream 和 DataOutputStream 147 14 7Java I O 库的设计原则 148 14 8Reader 和 Writer 149 14 9随机访问文件 151 14 10管道流 153 练习 155 第 15 章Thread 156 简介 156 15 1线程简介 156 15 2线程的概念模型 156 15 2 1线程的状态 157 15 2 2指定线程的名字 158 15 2 3守候线程 159 15 2 4设置线程的优先级 160 15 3线程的同步 165 15 4线程的死锁 167 15 5wait notify notifyAll 171 15 6线程的终止 173 练习 174 附录 175 Java 编程规范 175 简介数据结构 175 链表 175 散列表 176 字符集 177 对象的串行化 178 串行化的定义 178 串行化方法 178 JAVA 核心技术 ETC 培训教材第 7 页 共 176 页 串行化的注意事项 179 JAVA 核心技术 ETC 培训教材第 8 页 共 176 页 序言 本部分描述 Java 编程的基础知识 系统地介绍 Java 语言的主要功能及用法 全书共 13 章 内容涵 盖 Java 概述 Java 开发工具 Java 语言基础 Java 面向对象编程 Java 集合框架 Java 异常 Java 线 程 Java 数据库操作 Java 网络编程 Java AWT 组件 Java AWT 事件处理模型和 Java Swing 等 本部 分从 Java 的起源历史 体系结构 平台标准及主要技术开始讲起 结合面向对象的编程思想 详尽地介 绍 Java 在各个方面的应用 并含有大量精心设计的代码实例 本部分的语言浅显易懂 且在难易程度上作了区分 根据学生的情况 可以动态的安排学习内容 并辅以大量实例讲解程序的开发 且每章后面设有习题以便读者检验学习效果 希望学员能独立完成课堂 练习 并提前预习下一节课程的内容 带着问题听课 课用工具 本部分教学需要的工具如下 JDK1 6 文本编辑器一个 Eclipse 一种浏览器 JAVA 核心技术 ETC 培训教材第 9 页 共 176 页 第第 1 章章了解了解 Java 简介简介 Java 经过近几年的飞速发展 得到了广泛的应用 作为 Java 程序员 了解 Java 的发展历程及特点 有助于我们更好的理解 掌握 Java 技术 内容提要内容提要 Java 的发展历程 Java 相关名词 Java 特性 Java 程序执行过程 Java 程序开发流程 学习目标 学习目标 1 了解 Java 语言的特点 2 掌握 Java 程序运行机制 3 熟练配置 Java 程序的开发环境 1 1 Java 的发展历程的发展历程 Java 自 1996 年正式发布以来 经历了出生 成长和壮大的阶段 现在已经成为 IT 领域里的主流编 程语言 Java 起源于 Sun 公司的一个叫 Green 的项目 目的是开发嵌入家用电器的分布式软件系统 使电器更加智能化 Green 项目一开始准备采用 C 语言 但是考虑到 C 语言太复杂 而且安全性差 于是决定基于 C 语言开发一种新的 Oak 语言 即 Java 的前身 Oak 是一种适用于网络编程的精巧而 安全的语言 它保留了许多 C 语言的语法 但去除了明确的资源引用 指针算法与操作符重载等潜在的 危险特性 并且 Oak 语言具有与硬件无关的特性 制造商只需要更改芯片 就可以将烤面包机上的程序代 码移植到微波炉上或其他电器上 而不必改变软件 这就大大降低了开发成本 当 Oak 语言成熟时 全球 Internet 也在迅速发展 Sun 公司的开发小组认识到 Oak 非常适合于 Internet 编程 1994 年 他们完成 了一个用 Oak 语言编写的早期的 Web 浏览器 称为 WebRunner 后改名为 HotJava 展示了 Oak 作为 Internet 开发工具的能力 1995 年 Oak 语言更名为 Java 语言 以下简称为 Java Java 的取名有一个趣闻 据说 有一天 几位 Java 成员组的会员正在讨论给这个新的语言取什么名字 当时他们正在咖啡馆喝着 Java 爪哇 咖 啡 有一个人灵机一动说 就叫 Java 怎样 这得到了其他人的赞赏 于是 Java 这个名字就这样传开了 1996 年 Sun 公司发布 JDK 1 0 计算机产业的各大公司 包括 IBM Apple DEC Adobe Silicon Graphics HP Oracle Toshiba 和 Microsoft 等 相继从 Sun 公司购买了 Java 技术许可证 开发相应的 产品 1998 年 Sun 公司发布了 JDK 1 2 从这个版本开始的 Java 技术都称为 Java 2 Java 2 不仅兼容 JAVA 核心技术 ETC 培训教材第 10 页 共 176 页 于智能卡和小型消费类设备 还兼容于大型服务器系统 它使软件开发商 服务提供商和设备制造商更加 容易抢占市场机遇 这一开发工具极大地简化了编程人员编制企业级 Web 应用的工作 把一次编程到处 使用的诺言应用到服务器领域 1999 年 Sun 公司把 Java 2 技术分成 J2SE J2EE 和 J2ME 其中 J2SE 就是指从 1 2 版本开始的 JDK 它为创建和运行 Java 程序提供了最基本的环境 J2EE 和 J2ME 建立在 J2SE 的基础上 J2EE 为分布 式的企业应用提供开发和运行环境 J2ME 为嵌入式应用 比如运行在手机里的 Java 程序 提供开发和运 行环境 在进入 21 世纪以来 随着 Web 技术成为展示和操作数据的事实标准 企业利用 J2EE 平台对原来分 散的子系统进行整合 尽管应用整合可以通过多种手段来实现 但 J2EE 在出现后 因其天生具备良好的 开放性和可扩展性 使之在应用整合和开发的过程中发挥了愈来愈显著的优势 J2EE 逐渐成为开发商创建 电子商务应用的事实标准 Java 的公用规范 Publicly Available Specification PAS 在 1997 年被国际标准化组织 ISO 认定 这是 ISO 第一次破例接受一个具有商业色彩的公司作为公用规范 PAS 的提交者 总之 面向对象的 Java 语言具备一次编程 任何地方均可运行的能力 这使其成为服务提供商和系 统集成商用以支持多种操作系统和硬件平台的首选解决方案 Java 作为软件开发的一种革命性的技术 其 地位已被确定 如今 Java 技术已被列为当今世界信息技术的主流之一 下面是 Java 的发展历史概述 1995 Java 语言诞生 1996 JDK 1 0 发布 10 个最主要的操作系统供应商申明将在其产品中支持 Java 技术 1997 JDK 1 1 发布 1998 JDK 1 1 下载量超过 200 万次 JDK 1 2 称 Java 2 发布 JFC Swing 技术发布 JFC Swing 被下载了 50 多万次 1999 Java 被分成 J2SE J2EE 和 J2ME JSP Servlet 技术诞生 2000 JDK 1 3 发布 JDK 1 4 发布 2001 Nokia 公司宣布到 2003 年将出售 1 亿部支持 Java 的手机 J2EE 1 3 发布 2002 J2SE 1 4 发布 至此 Java 的计算能力有了大幅度提升 J2EE SDK 的下载量达到 200 万次 2003 5 5 亿台桌面机上运行 Java 程序 75 的开发人员将 Java 作为首要开发工具 2004 J2SE 1 5 发布 这是 Java 语言在发展史上的又一里程碑事件 为了表示这个版本的重要性 J2SE 1 5 更名为 J2SE 5 0 2005 JavaOne 大会召开 Sun 公司公开 Java SE6 此时 Java 的各种版本被更名 取消其中的数字 2 J2EE 更名为 Java EE J2SE 更名为 Java SE J2ME 更名为 Java ME 1 2 Java 相关名词相关名词 1 2 1JRE JDK JVM JRE Java Runtime Environment 即 Java 运行环境 通常已包含在 J2SDK 中了 如果我们仅仅是 为了运行 Java 程序 而不是从事 Java 开发 我们可以直接下载 JRE 在我们的系统上安装 JDK 即 Java Develop Kit Java 开发工具包 JVM Java Virtual Machine 由软件实现的一个假象的机器 运行存储在 class 文件中的代码 JAVA 核心技术 ETC 培训教材第 11 页 共 176 页 1 2 2J2SE J2EE J2ME Sun 公司的 Web 服务技术体系 Sun ONE Open Net Environment 开发网络环境 以 Java 语言为核 心 包括 J2SE J2EE J2ME 和一系列的标准 技术及协议 1 J2SE Java 2 Platform Standard Edition Java 2 这一名称 是 1998 年 12 月 SUN 公司发布了 JDK1 2 开始使用的名称 Java 2 标准版 是一种开发和部署平台 提供了编写桌面 工作站应用程序所有必需的功能 支持多种风格软件的开发 包括浏览器端 Java 小程序和本地应用程序 以及独立的服务器应用程序等 J2SE 版还是 J2ME 的基础 是 J2EE 执行程序的推动力 2 J2EE Java 2 Platform Enterprise Edition J2EE 平台是 Java 技术企业级应用的最佳平台 它可以让程序员迅速 快捷地开发和分布企业级应 应用程序 3 J2ME Java 2 Platform Micro Edition J2ME 又被称为 Java 2 微型版 被使用在各种各样的消费电子产品上 例如智能卡 手机 PDA 电 视机顶盒等方面 J2ME 定义了一套合适的类库和虚拟机技术 其 API 规范是基于 J2SE 的 1 3 Java 特性特性 Java 是一个广泛使用的网络编程语言 首先 作为一种程序设计语言 它简单 面向对象 不依赖于机 器的结构 具有可移植性 健壮性 安全性 并且提供了并发的机制 具有很高的性能 其次 它最大限度 地利用了网络 Java 的小应用程序 applet 可在网络上传输而不受 CPU 和环境的限制 另外 Java 还提供了 丰富的类库 使程序设计者可以很方便地建立自己的系统 Java 应用如此广泛是因为 Java 具有多方面的优势 其特点如下 面向对象 Java 自诞生之时就设计成面向对象的语言 Java 语言的设计集中于对象及其接口 它提供 了简单的类机制以及动态的接口模型 对象中封装了它的状态变量以及相应的方法 实现了模块化和信息隐 藏 而类则提供了一类对象的原型 并且通过继承机制 子类可以使用父类所提供的方法 实现了代码的复用 跨平台 对于 Java 程序 不管是 Windows 平台还是 UNIX 平台 或者其他平台 它都适用 Java 编 辑器把 Java 源程序编译成与体系结构无关的字节码指令 只要安装了 Java 运行系统 Java 程序就可在任 意的处理器上运行 这些字节码指令由 Java 虚拟机来执行 Java 虚拟机的解释器在得到字节码后 对它 进行转换 使之能够在不同的平台运行 如下图示意 图 1 1 Java 运行示意图 JAVA 核心技术 ETC 培训教材第 12 页 共 176 页 直接支持分布式的网络应用 除了支持基本的语言功能以外 Java 核心类库还包括一个支持 HTTP SMTP 和 FTP 等基于 TCP IP 协议的类库 因此 Java 应用程序可凭借 URL 打开并访问网络上的对 象 其访问方式与访问本地文件系统几乎完全相同 安全性和健壮性 Java 致力于检查程序在编译和运行时的错误 类型检查能够帮助检查出许多开发 早期出现的错误 Java 支持自动内存管理 这不但让程序员减轻了许多负担 也让程序员减少了犯错的 机会 Java 自己操纵内存减小了内存出错的可能性 Java 还能够检测数组边界 避免了覆盖数据的可能 在 Java 语言里 指针和释放内存等功能均被抛弃 从而避免了非法内存操作的危险 多线程 多线程机制使应用程序能够并行执行 而且同步机制保证了对共享数据的正确操作 通过使 用多线程 程序设计者可以分别用不同的线程完成特定的行为 而不需要采用全局的事件循环机制 这样就很 容易地实现网络上的实时交互行为 动态性 Java 的设计使它适合于一个不断发展的环境 在类库中可以自由地加入新的方法和实例变 量而不会影响用户程序的执行 并且 Java 通过接口来支持多重继承 使之比严格的类继承具有更灵活的方 式和扩展性 1 4 Java 程序执行过程程序执行过程 Java 程序的开发过程为 首先编写 Java 代码 存放于 java 结尾的文件中 编译后生成 class 的字节 码文件 便可以在 JVM 上运行了 图 1 2 Java 执行过程示意图 一个 Java 技术的运行环境可运行为 JVM 编译的代码并执行如下三大任务 加载代码 由类加载器执行 校验代码 由字节码校验器执行 执行代码 由运行时的解释器执行 1 4 1类加载器类加载器 类加载器为程序的执行加载所需要的全部类 类加载器将局部文件系统的类名空间与来自网络源的 类名空间相分离 以增加安全性 由于局部类总是首先加载 因而可限制任何 特洛依木马 的应用 当全部类被加载后 可执行文件的存储器格式被确定 这时 特定的存储器地址被分配给符号引用 并创建检索表格 由于存储器格式在运行时出现 因而 Java 技术解释器增加了保护以防止对限制代码区 的非法进入 1 4 2类校验器类校验器 Java 软件代码在实际运行之前要经过几次测试 JVM 将代码输入一个字节码校验器以测试代码段格 JAVA 核心技术 ETC 培训教材第 13 页 共 176 页 式并进行规则检查 注意 所有源于网络的类文件都要经过字节码校验器 校验过程 字节码校验器对程序代码进行四遍校验 这可以保证代码符合 JVM 规范并且不破坏系统 的完整性 如果校验器在完成四遍校验后未返回出错信息 则下列各点可被保证 类符合 JVM 规范的类文件格式 无访问限制违例 代码未引起操作数栈上溢或下溢 所有操作代码的参数类型将总是正确的 无非法数据转换发生 如将整数转换为对象引用 对象域访问是合法的 1 4 3执行程序执行程序 Java 在执行过程 包含解释执行和 JIT 两种执行方式 如下图 图 1 3 Java 调用机制示意图 JIT Just In Time 即时编译方式 解释器先将字节码编译成机器码 然后再执行该机器码 解释执行方式 解释器通过每次解释并执行一小段代码来完成 Java 字节码程序的所有操作 1 5 第一个第一个 Java 程序及运行环境的设置程序及运行环境的设置 任何软件运行 都需要运行环境的支持 下面看一下一个 Java 程序的编写及运行所需的环境 第一步 下载 JDK1 6 JDK 是 Java Developement Kit 的缩写 包括 Java 编译器和运行时环境 1 6 版本是目前最新的 版 可以从 SUN Java 站点下载 JDK1 6 第二步 安装 JDK1 6 JAVA 核心技术 ETC 培训教材第 14 页 共 176 页 直接运行 JDK1 6 的安装程序 选择一个安装目录 按照安装向导即可轻松完成 JDK1 6 的安装 如需了解安装细节 请参考 Java 2 SDK 1 6 Installation Notes for Microsoft Windows sun 的网站有提供 JDK 目录 bin JDK 下的可执行程序 在下面可以见到 java 这就运行了 JVM demo 例子程序 lib 运行用到的类库 jre 运行环境 include Java 连接其他语言所使用的相关文件 src zip Java API 的源程序 第三步 设置环境变量 我们在 Java 基础部分的教学使用普通文本编辑器 需要设置两个环境变量 一个是 PATH 或 path 一个是 CLASSPATH 或 classpath 那么这两个环境变量代表什么呢 或者说究竟在 JAVA 程序编译中有 什么作用呢 这就要涉及到 WINDOWS 的基本知识了 我们在 DOS 窗口执行的命令 通常都是由一个同 名的可执行文件来支持的 path 环境变量就是来帮助系统定位支持你所使用的命令的软件位置的 例如当 你在 DOS 窗口输入 notepad 命令时 系统在 path 指定的文件夹中寻找 notepad 的可执行文件 如果找到 则运行该软件 未找到 则提示 不是内部或外部命令 也不是可运行的程序或批处理文件 我们所要 使用的 Java 的相关工具一般都在 JDK 安装目录下的 bin 目录中 所以我们需要将 bin 目录的路径增加到 path 参数的值中 操作过程如下 右击 我的电脑 然后选择 属性 在分页卡里选择 高级 然后 点击 环境变量 按钮 弹出环境变量对话框 分用户变量和系统变量两部分 用户变量中设置的变量 只对当前用户有效 如换其他用户登录系统后 则这些变量无效 系统变量对系统的所有用户都有效 用 户变量优先于系统变量被使用 根据自己的开发环境 选择增加用户变量或是系统变量 这里以增加系统 变量为例 在系统变量列表中 查找是否有 path 大小写无区分 变量 有则选中后点击编辑按钮 变量 值中添加上 JAVA 的 BIN 目录的路径 和其他的路径值用英文状态的 隔开 注意不要删除原有内容 classpath 环境变量和 path 环境变量很相似 只是 classpath 为 java 工具指示所要调用的类文件在什 么地方 Java 虚拟机的 ClassLoader 会按照 CLASSPATH 设定的路径搜索 class 文件 请注意 ClassLoader 不会在当前目录下搜索 为方便起见 我们将 CLASSPATH 设置中 增加 以包括当前目 录 如所需调用的类文件是在某个文件夹下时 需将文件夹路径增加至 classpath 变量值中 如需要调用 的类文件是在某个类库中的 即是包在 jar 文件中的 则将 jar 文件的文件路径增加至 classpath 变量值中 例如 我们需要使用 c test 文件夹中的 MyClass1 class 等类文件 又需要使用 d lib support jar 中的类文 件 则 classpath 变量的值应该进行如下设置 c test d lib support jar 注意 不同开发工具对环境变量的设置要求不同 所以使用任何开发工具前请阅读相应的说明手册 第四步 编译一个 Java 程序 请用任何文本编辑器输入以下内容并保存为 Hello java 文件 只能保存为 Hello java 不能使用别的 文件名 请严格注意大小写 public class Hello public static void main String args an application System out println Hello world JAVA 核心技术 ETC 培训教材第 15 页 共 176 页 这段程序中的具体语法在后面解释 第五步 运行一个 Java 程序 编译 Hello java 文件 C javac Hello java 编译的结果是生成字节码文件 Hello class 最后用 java 解释器来运行该字节码文件 C java Hello 结果在屏幕上显示 HelloWorld 1 6 Hello java 的语法解释的语法解释 Hello java 的源文件内容为 public class Hello public static void main String args an application System out println Hello world 这段程序中 首先用保留字 class 来声明一个新的类 其类名为 Hello 类是公共 public 类型的 要注 意的是 Java 中主类名应该和要保存的 Java 文件名相同 也就是说 这里定义的类名是 Hello 则文件应该 保存成 Hello java 整个类定义由大括号 括起来 在该类中定义了一个 main 方法 其中 public 表示访问 权限 指明所有的类都可以使用这一方法 static 指明该方法是一个类方法 它可以通过类名直接调用 void 则 指明 main 方法不返回任何值 对于一个应用程序来说 main 方法是必需的 而且必须按照如上的格式来 定义 Jave 解释器在没有生成任何实例的情况下 以 main 作为入口来执行程序 Jave 程序中可以定义多 个类 每个类中可以定义多个方法 但是最多只能有一个公共类 main 方法也只能有一个 作为程序的入口 main 方法定义中 括号 中的 String args 是传递给 main 方法的参数 参数名为 args 它是类 String 的一 个实例 参数可以为 0 个或多个 每个参数用 类名参数名 来指定 多个参数间用逗号分隔 在 main 方法的 实现 大括号中 只有一条语句 System out println HelloWorld 它用来实现字符串的输出 另外 后的内容为注释 1 7 javac 命令命令 Java 程序的编译程序是 javac exe 它是负责解释执行编译后的字节码 也就是 Class 文件 编译工 具通过在 DOS 下输入的命令调用 命令格式为 javac options sourcefiles 常用参数有 d directory 指明类层次的根目录 用 javac d DIR yourfile java 编译后可以把生产的 class 文件存放 在 DIR 目录里 classpath path 定义 Javac 搜索类的路径 它将覆盖缺省的 CLASSPATH 环境变量的设置 javac help 查看 javac 命令的详细帮助 JAVA 核心技术 ETC 培训教材第 16 页 共 176 页 1 8 java 命令命令 java 程序的运行是指用 Java 工具程序 在 Windows 平台是 java exe 来运行一个类 class 文件 但类文件的扩展名可以省略不写 在 DOS 下输入的命令调用 命令格式为 java options class argument 常用参数有 classpath path 定义 Javac 搜索类的路径 它将覆盖缺省的 CLASSPATH 环境变量的设置 version 查看 java 工具的版本 javac help 查看 javac 命令的详细帮助 参考 有关 java 工具的使用 请参考 docs tooldocs tools html 练习练习 1 回想一下和 Java 程序相关的环境变量有几个 他们的作用是什么 在 DOS 窗口中用什么命令来查看 其设置 2 编写你的第一个 java 类文件 Declaration 编译运行后能够在屏幕输出 I can do it 3 查看下面几个类文件 修改其中的编译或运行错误 在编译期间出现的错误称之编译错误 在运行期 间出现的错误称之为运行错误 Test1 java public class Test1 public static void main String args System out println What s wrong with this program public class TestAnother1 public static void main String args System out println What s wrong with this program Test2 java public class Testing2 public static void main String args System out println What s wrong with this program Test3 java public class Test3 public static void main String args System out println What s wrong with this program JAVA 核心技术 ETC 培训教材第 17 页 共 176 页 Test4 java public class Test4 public void main String args System out println What s wrong with this program JAVA 核心技术 ETC 培训教材第 18 页 共 176 页 第第 2 章章Java 基本语法基本语法 简介简介 Java 是很严格的程序语言 所以学好 Java 的语法是我们进行快速开发的基础 内容提要内容提要 注释语句 关键字 数据类型 方法的编写 学习目标 学习目标 1 掌握注释语句的用法 2 熟练 Java 的语法规则 2 1 注释注释 注释在程序中主要起到说明 注解程序的作用 编译或者解释程序的时候 注释部分都会被忽略掉 所以 你可以在注释中写任何想写的东西 包括对程序段的说明 作者 版本等 为程序加上注释可以大 大增加程序的可读性 这样便于以后对程序进行修改 维护 甚至重写 程序中添加适当的注释是程序员 的良好习惯之一 Java 的注释有三种形式 行注释 块注释和文档注释 2 1 1行注释行注释 行注释以 开始 以行结束符 回车或者换行 结束 作用范围是 注释符及以后一行以内的内容 通常在需要注释的内容很少的时候使用行注释 如 public void test 测试函数 这里使用的行注释 2 1 2块注释块注释 块注释以 开始 结束 作用范围是 和 之间的内容 可以是一行 也可以是多行 通常 使用块注释来注释较多或者需要分行的内容 如 printTable 函数用于分行打印下列内容 姓名 生日 JAVA 核心技术 ETC 培训教材第 19 页 共 176 页 这里使用的是块注释 public void printTable 2 1 3文档注释文档注释 文档注释是块注释的特殊情况 它以 开始 结束 作用范围是 和 之间的内容 它的 特殊之处就在于它可以被 javadoc 搜寻并编译成程序开发文档 也正是由于这个原因 它叫作文档注释 只对 public 或 protected 类起作用 在实际使用中 文档注释的处置要求比较严格 还有一些特殊的说明 符号 但由于内容非常多 本教程中就不作解说了 可以参考 这里使用了文档注释 下面用到了一些说明符号 HelloJava java author fancy public class HelloJava 随堂练习 创建 Java 源文件 TestDoc java 存于你的练习目录 代码如下 package javadoctest public class TestDoc hello you should use the method by the statements see object public String test return ok second you should use the method by the statements see object public static void main String args char cr 9 String str new String wqwerwqr String str2 asdfasfd System out println cr JAVA 核心技术 ETC 培训教材第 20 页 共 176 页 启动 DOS 窗口 转到你的 TestDoc java 所在的练习目录 使用 javadoc TestDoc java 命令生成该源文件的帮助 文档 javadoc 命令格式为 javadoc 命令 后跟 java 源文件名 javadoc 和 java 源文件之间用空格分隔 查看生成的 html 文件的结构 查找源文件中的注释出现在什么地方 2 2 分号 块和空格分号 块和空格 2 2 1分号分号 在 Java 编程语言中 语句是一行由分号 终止的代码 例如 totals a b c d e f 与下式相同 total a b c d e f 2 2 2块块 一个块 block 或一个复合语句是以上括号和下括号 为边界的语句集合 块语句也被用来组合 属于某个类的语句 一个块可被用在一个类的定义中 public class Date int day int month int year 块语句可被嵌套 语句块可被嵌套 Hello 类由 main 方法构成 这个方法就是一个语句块 它是一个独立单元 单元 本身可作为在类 HelloWorldApp 块中的一组事务之一 其它一些块语句或组的例子如下 a block used in a class definition public class MyDate int day int month int year an example of a block statement nested within another block statement while i large a a i JAVA 核心技术 ETC 培训教材第 21 页 共 176 页 if a max b b a nested block is here a 0 2 2 3空格空格 Java 程序中允许任意多的空格 在源代码元素之间允许空白 空白的数量不限 空白 包括空格 tabs 和新行 可以改善你的对源代码 的视觉感受 2 3 标识符标识符 任何一个变量 常量 方法 对象和类都需要有一个名字标志它的存在 这个名字就是标识符 标 识符可由编程者自由指定 但需要遵循一定的语法规定 标识符可由字母 数字和下划线 美元符号 组合而成 标识符不能以数字开头 Java 是大小写敏感的语言 class 和 Class system 和 System 分别代表不用的标识符 在定义和使 用时要特别注意这一点 标识符不能是关键字 但是它可包含一个关键字作为它的名字的一部分 例如 thisone 是一个有效 标识符 但 this 却不是 因为 this 是一个 Java 关键字 应该使标识符能一定程度上反映它所表示的变量 常量 对象或类的意义 例下表示例 表 2 1 表示符示例 合法标识符不合法标识符 FirstJavaApplet2FirstJavaApplet MySalary21Tree 2 5 3整数类整数类 byte short int long 采用三种进制 十进制 八进制和 16 进制 2 十进制值是 2 077 首位的 0 表示这是一个八进制的数值 0 xBAAC 首位的 0 x 表示这是一个 16 进制的数值 具有缺省 int 用字母 L 和 l 定义 long 注意 所有 Java 编程语言中的整数类型都是带符号的数字 JAVA 核心技术 ETC 培训教材第 24 页 共 176 页 每个整数数据类型具有下列范围 Integer Length Name or Type Range 8 bits byte 2 7 2 7 1 16 bits short 2 15 2 15 1 32 bit int 2 31 2 31 1 64 bits long 2 63 2 63 1 范围的表示是按 Java 编程语言规范定义的且不依赖于平台 2 5 4浮点浮点 float 和和 double 浮点 float 和 double 缺省为 double 浮点文字包括小数点或下列各项之一 E 或 e 增加指数值 F 或 f float D 或 d double 3 14 一个简单的浮点值 a double 4 02E23 一个大浮点值 2 718F 一个简单的 float 长度值 浮点数据类型具有下列范围 浮点长度 名称或类型 32 bits float 64 bits double 注意 浮点文字除非明确声明为 float 否则为 double 2 5 5非基本数据类型 非基本数据类型 String 前面介绍了数据类型的分类 从另外一个角度看 数据类型又可分为基本数据类型 和非基本数据 类型 非基本数据类型又称之为引用类型 String 便是引用类型 引用类型的数据往往有更多的功能 例如 class Test public static void main String args String str Hello World int n str length 获得字符串长度 System out println str 字符串长度是 n JAVA 核心技术 ETC 培训教材第 25 页 共 176 页 2 6 变量的声明及赋值变量的声明及赋值 变量声明的格式为 变量类型 变量名 变量名 必须为为合法标识符 初始化变量的格式为 变量名 值 为变量的首次赋值 称为变量的初试化 值的类型必须和声明变量时的类型相符 可以在声明变量 的同时赋值 也可以在声明变量之后对变量进行赋值 成员变量可自动初始化 方法变量必须手工初始化 下列程序显示了如何为整数 浮点 boolean 字符和 string 类型变量声明和赋值 1 public class Assign 2 public static void main String args 3 int x y declare int variables 4 float z 3 414f declare and assign float 5 double w 3 1415 declare and assign double 6 boolean truth true declare and assign boolean 7 char c declare character variable 8 String str declare String 9 String str1 bye declare and assign String variable 10 c A assign value to char variable 11 str Hi out there assign value to String variable 12 x 6 13 y 1000 assign values to int variables 14 15 16 非法赋值举例 y 3 1415926 3 1415926 is not an int Requires casting and decimal will be truncated w 175 000 the comma symbol cannot appear truth 1 a common mistake made by ex C C programmers z 3 14156 can t fit double into a JAVA 核心技术 ETC 培训教材第 26 页 共 176 页 Float Requires casting 2 7 常量常量 常量是只能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 晋江市法院书记员招聘笔试真题2025
- 岑溪市法院书记员招聘笔试真题2025
- 2025-2030中国液体化学品航运物流网络优化与成本控制研究报告
- 2025年必考版本内科护理模拟试题及答案
- 家具行业家具设计师面试技巧分享及答案解析
- 绵阳交发实业有限责任公司面向社会公开招聘会计岗位笔试考试备考试题及答案解析
- 2025广西河池市巴马瑶族自治县人民医院招聘健康管理中心超声医师1人笔试考试参考题库及答案解析
- 2025-2030中国氢能储运技术突破与示范项目经济性评估报告
- 2025年用友u8考试题及答案
- 2025年司法考试民法分章节真题及答案
- 辽医药单招语文考试复习题库(含答案)
- (正式版)JCT 2772-2024 混凝土用建筑垃圾再生轻粗骨料
- 中医医疗质量分析和持续改进
- 脾梗死的护理措施
- 高血压病人的睡眠管理与调理
- 外来医疗器械清洗消毒灭菌标准操作规程
- 纪委日常监督培训课件
- 干部履历表(中共中央组织部2015年制)
- Emily-Dickinson艾米丽-迪金森
- 国家开放大学汉语言文学本科“现代汉语专题”形成性考核04任务参考答案
- 新探索研究生英语(基础级)读写教程参考答案Language-focus
评论
0/150
提交评论