已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第一章Java语言概述 第一章Java语言概述 了解Java语言产生的历史掌握Java语言的特点初步了解Java语言与C C 的不同之处了解Java程序的开发环境 掌握JSDK环境的建立 学习目标与重点 本章要点 课程介绍什么是Java 我们的学习目标学习方法指导学习资料推荐Java语言概述Java语言的特点Java语言程序分类Java程序开发过程Java虚拟机 什么是Java 一种编程语言面向对象的程序设计语言基于C和C Java的历史1991 用于智能消费型电子产品的语言JamesGosling 绿色项目 Oak 市场需求发展没有预料的快 差一点就取消这个 绿色项目 1993 网络的发展 挽救了这个项目为网页增加了 动态的内容 即动态网页设计 什么是java 什么是Java 1994 Oak应用于网络 称为Java1995 Java正式公布 JDK1 0 什么是java 一种软件平台平台是程序运行的硬件或软件环境 Java平台与大多数其它平台不同 是基于其它软件或硬件的纯软件平台 JVM Java虚拟机 是Java平台的基础JavaAPI Java应用程序接口 JavaAPI是软件组件的集合 它们提供了很多有用的功能 如图形用户界面 GUI 随着应用范围越来越广 Java演化出三个不同领域的应用平台J2SE Java2Platform StandardEdition 标准版 桌面系统和低端服务 桌面程序和java小程序 JDK J2EE Java2Platform EnterpriseEdition 企业版 企业级应用 企业级开发 大型运用 电子商务网站和网上报税系统 J2ME Java2Platform MicroEdition 小型版 嵌入式应用开发 手持设备开发 例如PDE等 小游戏和名篇管理程序 什么是java Java现在常用来 1 开发大规模的商业运用软件2 增强网络服务的功能3 开发智能消费型电子产品的应用软件 例如手机 本章要点 Java的现状 最终目标 Java软件工程师Java语法 J2SE平台基础 面向对象编程思想和方法 Java基础 JavaWeb开发 简单应用 JSP J2EE企业开发 企业级应用 J2ME 嵌入式应用 辅助技术 Struts设计模式 JavaScript XML开发工具 JDK JCreater Eclipes JBuilder本学期目标Java语法 J2SE平台基础 面向对象编程思想和方法培养自学能力 本章要点 学习目标 奠定Java语法基础学习Java的第一步是用Java语言来编写程序 学习Java语言的第一步 就是熟悉其语法的使用 注意思考和总结在学习的过程中 最好能够了解Java的底层机制 而不是仅仅停留在表层 不是抄书上的例子运行出结果就可以 即便对一个简单的例子也要有耐心去琢磨 调试 改动 动手写代码在学习的过程中一定要动手做 写代码 而不是抱一本书看看就行 很多东西和体会必须自己动手才能真正属于自己 在学到一定阶段后 试用学过的东西做些什么 培养自学能力 本章要点 学习方法指导 参考书 1 教材 2 Java就业培训教程 张孝祥编著 清华大学出版社 2003 9 3 Java编程语言 第3版 KenArnold JamesGosling著 虞万荣等译 中国电力出版社 2003 12 4 Java2核心技术卷I 基础知识 第7版 Horstmann等著 叶乃文等译 机械工业出版社 2006 5 5 Java编程思想 第4版 BRUCEECKEL著陈昊鹏等译 机械工业出版社 2007 6 网络学习资源 1 Java官方网站 2 Java中国开发网 3 中文JAVA技术网 4 SUN中国技术社区 本章要点 学习方法指导 Java的诞生需追溯到1991年 当时 在Sun公司内 有一个称为Green的项目 设计一种小型的计算机语言 用于机顶盒 家电控制芯片等消费类设备这种语言必须尽可能地小 而且应能生成非常紧凑的代码 最重要的一点这个语言有强大的生命力 不够受限于任何一种体系结构为了实现这一目标 项目组准备尝试一种的模型 设计出一种 可移植 的语言 在执行前 生成一个 中间码 在任何一种机器上安装了特定的解释器 就可以运行这个 中间码 而且 中间码 一定会非常小 而解释器也不大 1 2Java语言的产生 这个项目组由JamesGosling和PatrickNaughton领导 大部分员工都是UNIX背景 熟悉C 语言 使得这个新语言走向了 面向对象 的道路 这个语言由 Oak 改为 Java 一种咖啡的名字做为新语言的名字 包括IBM Oracle 微软 Netscape Apple SGI等大公司纷纷与SunMicrosystems公司签订合同 授权使用java平台技术 1 2Java语言的产生 到了1995年 互联网在世界上蓬勃发展 Sun公司又改进了该语言的设计 以实现如下几个目标 创建一种面向对象的程序设计语言 而不是面向过程的语言 提供一个解释执行的程序运行环境 是程序代码独立于平台 吸收C和C 的优点 使程序员容易掌握 去掉C和C 中影响程序健壮性的部分 使程序更安全 例如指针 内存申请和释放 实现多线程 使得程序能够同时执行多个任务 提供动态下载程序代码的机制 提供代码校验机制以保证安全性 最终 Sun公司给该语言取名为java语言 造就了一代成功的编程语言 1 2 1Java语言的概述 目标 是不可以的 因为程序的执行最终必须转换成为计算机硬件的机器指令来执行专门为某种计算机硬件和操作系统编写的程序是不能够直接放到另外的计算机硬件上执行 至少要做移植工作要想让程序能够在不同的计算机上能够运行 就要求程序设计语言是能够跨越各种软件和硬件平台而java满足了这一需求 想一想 在PC中基于windows编写的程序能够不做修改就直接拿到UNIX系统上运行吗 1 2 2我们为什么要用Java java特性 因为Java是简单的面向对象的健壮的安全的解释的与平台无关的多线程的动态的语言 简单的Java最初是为对家用电器进行集成控制而设计的一种语言 因此它必须简单明了 Java语言的简单性主要体现在三个方面 1 Java的风格类似于C 因而C 程序员初次接触Java语言 就会感到很熟悉 从某种意义上讲 Java语言是C及C 语言的一个变种 因此 C 程序员可以很快地掌握Java编程技术 2 Java摒弃了C 中容易引发程序错误的一些特性 如指针 结构 枚举以及内存管理等 3 Java提供了丰富的类库 可以帮助我们很方便的开发Java程序 1 2 2我们为什么要用Java java特性 面向对象的面向对象可以说是Java最重要的特性 所以它支持继承 重载 多态等面向对象的特性 Java语言的设计是完全面向对象的 它不支持类似C语言那样的面向过程的程序设计技术 1 2 2我们为什么要用Java java特性 健壮的Java致力于检查程序在编译和运行时的错误 Java也是一种强类型的语言 其类型检查比C 还要严格 类型检查帮助我们检查出许多开发早期出现的错误 Java自己负责内存管理 提供了垃圾内存回收机制 有效的避免了C 中最头疼的内存泄漏问题 1 2 2我们为什么要用Java java特性 安全的 Java的安全性可从两个方面得到保证 在Java语言里 删除了指针和释放内存等C 功能 避免了非法内存操作 另一方面 通过Java的安全体系架构来确保Java代码的安全性 当我们从网上下载Java代码在本地执行时 Java的安全架构能确保恶意的代码不能随意访问我们本地计算机的资源 例如 删除文件 访问本地网络资源等操作都是被禁止的 1 2 2我们为什么要用Java java特性 解释的Java代码是解释执行的 我们使用Java编译器将Java代码编译成字节码 这是一种中间代码 然后由Java解释器解释执行 而C 程序是编译执行的 C 程序代码被编译为本地机器指令 然后执行 1 2 2我们为什么要用Java java特性 与平台无关的Java作为一种网络语言 其源代码被编译成一种结构中立的中间文件格式 只要有Java运行系统的机器都能执行这种中间代码 Java源程序被编译成一种与机器无关的字节码格式 在Java虚拟机上运行 1 2 2我们为什么要用Java java特性 多线程的Java语言的一个重要特性就是在语言级支持多线程的程序设计 多线程就好像我们做一张桌子 如果你一个人完成这张桌子 就好像单线程 那么你需要先做桌面 做完桌面后 再做4个桌子腿 如果现在有5个人来做桌子 在程序中开辟5个线程 其中1个人做桌面 另外4个人分别做4个桌子腿 那么这两种方式效率的高低 相信大家都能区分出来 1 2 2我们为什么要用Java java特性 我们为什么要用Java 动态的 它允许程序动态地装入运行过程中所需要的类 这是我们采用C 语言进行面向对象程序设计所无法实现的 在C 程序设计过程中 每当在类中增加一个实例变量或一个成员函数后 引用该类的所有子类都必须重新编译 否则将导致程序崩溃 Java从以下几个方面采取措施来解决这个问题 Java编译器不是将对实例变量和成员函数的引用编译为数值引用 而是将符号引用信息在字节码中保存下来 传递给解释器 也就是说当java编译器编译java代码的时候 不会生成与本地平台相关的数值引用信息 会生成平台无关的中间代码 传递给解释器 再由解释器在完成动态连接类后 将符号引用信息转换为数值偏移量 一个在存储器中生成的对象不在编译过程中决定 而是延迟到运行时由解释器确定 这样 对类中的变量和方法进行更新时就不至于影响现存的代码 1 2 2我们为什么要用Java java特性 我们为什么要用Java 动态的 解释执行字节码时 这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次 随后代码便可以全速执行 在运行时确定引用的好处是可以使用已被更新的类 而不必担心会影响原有的代码 因为java的字节码中只是保存了符号引用信息 所以当你更新其中某个类的时候 引用这个类的类不需要重新编译就可以运行 如果程序连接了网络中另一系统中的某一类 该类的所有者也可以自由地对该类进行更新 而不会使任何引用该类的程序崩溃 Java还简化了使用一个升级的或全新协议的方法 如果你的系统运行Java程序时遇到了不知怎样处理的程序 Java能自动下载你所需要的功能程序 1 2 2我们为什么要用Java java特性 javajava源程序文件 class二进制字节码文件 字节码文件 与计算机硬件平台无关 由JVM解释执行 1 3Java运行机制与JVM Java程序在编译后并不直接生成与目标机相关的机器指令代码 而是生成Java语言所特有的 与特定CPU无关的一种中间代码 字节码 该字节码运行在Java虚拟机上Java虚拟机 JVM JavaVirtualMachine 是一种抽象的 虚拟的计算机 是由软件模拟的一个小巧而高效的CPU 1 3Java运行机制与JVM java虚拟机是一种抽象的 虚拟的计算机 是由软件模拟的一个小巧而高效的CPUJava程序的执行过程总结如下 Java源程序经编译器编译后生成字节码文件 字节码由虚拟机JVM解释执行 虚拟机将每一条要执行的字节码送给解释器 解释器将其翻译成特定机器上的机器码 然后在特定平台的机器上解释执行 1 3Java运行机制与JVM 1 3Java运行机制与JVM 补充 Java跨平台的原理 Java字节码的两种执行方式1 即时编译方式 justintime 解释器先将字节码编译成机器码 然后再执行该机器码 即时编译方式将字节码编译成机器码 也就是与特定的硬件平台相关的代码会加快执行速度 与C 执行速度保持一致 2 解释执行方式 解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作 这种执行方式是通过解释执行与平台无关的java字节码来完成 执行效率与C 编译执行来说要慢一点 通常采用的是第二种方法 只有在特定条件下 为了加快代码的执行 会采用即使编译方式 由于JVM规格描述具有足够的灵活性 这使得将字节码翻译为机器代码的工作具有较高的效率 对于那些对运行速度要求较高的应用程序 解释器可将Java字节码即时编译为机器码 从而很好地保证了Java代码的可移植性和高性能 JVM规格描述JVM的设计目标是提供一个基于抽象规格描述的计算机模型 为解释程序开发人员提供很好的灵活性 同时也确保Java代码可在符合该规范的任何系统上运行 JVM对其实现的某些方面给出了具体的定义 特别是对Java可执行代码 即字节码 Bytecode 的格式给出了明确的规格 这一规格包括操作码和操作数的语法和数值 标识符的数值表示方式 以及Java类文件中的Java对象 常量缓冲池在JVM的存储映象 这些定义为JVM解释器开发人员提供了所需的信息和开发环境 Java的设计者希望给开发人员以随心所欲使用Java的自由 补充 Java跨平台的原理 JVM规格描述JVM是为Java字节码定义的一种独立于具体平台的规格描述 是Java平台独立性的基础 Java平台的独立是通过Java虚拟机来完成的 如果在linux下运行java代码 也要安装一个java虚拟机 Java虚拟机不是跨平台的 Sun公司针对不同的平台设计不同的java虚拟机 然后安装不同平台下 然后由虚拟机来解释执行java字节码 java字节码没有保存和特定平台相关的信息 因此来完成java代码的跨平台 通过java虚拟机的不垮平台性来支持java字节码的跨平台 补充 Java跨平台的原理 Java程序执行与C C 程序执行的对比分析如果把Java源程序想象成我们的C 源程序 Java源程序编译后生成的字节码就相当于C 源程序编译后的80 x86的机器码 二进制程序文件 JVM虚拟机相当于80 x86计算机系统 Java解释器相当于80 x86CPU 在80 x86CPU上运行的是机器码 在Java解释器上运行的是Java字节码 补充 Java跨平台的原理 Java程序执行与C C 程序执行的对比分析Java解释器相当于运行Java字节码的 CPU 但该 CPU 不是通过硬件实现的 而是用软件实现的 Java解释器实际上就是特定的平台下的一个应用程序 只要实现了特定平台下的解释器程序 Java字节码就能通过解释器程序在该平台下运行 这是Java跨平台的根本 当前 并不是在所有的平台下都有相应Java解释器程序 这也是Java并不能在所有的平台下都能运行的原因 它只能在已实现了Java解释器程序的平台下运行 补充 Java跨平台的原理 java不仅是编程语言 还是一个开发平台 java技术给程序员提供了许多工具 编译器 解释器 文档生成器和文件打包工具等等 同时java还是一个程序发布平台 有两种主要的 发布环境 java运行时环境 javaruntimeenvironment 简称JRE 包含了完整的类文件包 其次为许多主要的浏览器都提供了java解释器和运行时环境 1 5安装Java开发工具 如果希望在计算机上运行Java程序 必须安装JVM和Java运行时解释器 二者构成了Java程序的运行环境 SUN公司为Java程序程序员免费提供了Java语言的软件开发工具包Java2SDK 也称为JSDK它包含了所有编译 运行Java程序所需要的工具 可从免费下载到最新的版本 其最新的信息和版本在Sun的网站都能够查到 在下载时注意选择Windows平台的J2SDK 本书是基于Windows平台介绍Java程序下载后 它是一个可执行文件 可直接运行安装 1 5安装Java开发工具 JDK6 0 J2SDK1 6 从SUN公司网站下载 jdk 6u12 windows i586 p exe 安装 根据提示安装 1 5安装Java开发工具 1 下载J2SDK1 6并安装 JDK安装目录结构简介binjavac Java编译器 用来将java程序编译成字节码文件 class java Java解释器 执行已经转换成字节码的java应用程序 appletviewer Java虚拟浏览器 用来解释嵌到网页中的java小应用程序 lib Java类库Jre lib Java核心类库 1 5安装Java开发工具 1 下载J2SDK1 6并安装 J2SEv1 6 2Documentation 安装帮助文档由于JDK的安装程序中并不包含帮助文档 因此也必须从Sun的网站上下载进行安装 通常安装在JDK所在目录的docs子目录下面 用浏览器打开docs子目录下的index html文件就可以阅读所有的帮助文档 1 5安装Java开发工具 2 安装帮助文档 JavaTudorial提供了java不同方面的学习示例 1 5安装Java开发工具 3 安装学习文档 其实环境变量的设置在JDK安装完 马上完成 假设JavaSDK安装在D ProgramFiles Java jdk1 6 0 21设置 classpath JAVA HOME lib JAVA HOME libJava Home D ProgramFiles Java jdk1 6 0 21Path JAVA HOME bin 1 5安装Java开发工具 4 设置环境变量 如果是在win2k及以上 则需要用右键单击桌面上 我的电脑 选择 属性 则弹出一个名为 系统特性 的窗口 选择 高级 然后选择 环境变量 在 系统变量 窗口中新建 编辑classpath和path 1 5安装Java开发工具 4 设置环境变量 在 环境变量 窗口中新建变量 变量名 classpath 变量值 JAVA HOME lib JAVA HOME lib 建立Java开发环境的总结 1 下载J2SE安装程序2 运行J2SE安装程序 安装J2SE3 设置环境变量 运行路径 path 类路径 classpath 4 下载J2SE的在线帮助文档 1 6Dos环境下程序编译与运行 1 编写Java应用程序源文件使用记事体程序编写文件名为HelloWorld java输入程序代码编译成字节码文件输入 javacHelloWorld java并回车 将源文件编译成字节码文件执行程序输入 javaHelloWorld并回车 执行程序 1 5一个简单的Java应用程序 publicclassHello publicstaticvoidmain Stringargs System out println 你好 很高兴学习Java 1 6一个简单的Java小应用程序 JavaApplet importjava applet importjava awt publicclassBoyextendsApplet publicvoidpaint Graphicsg g setColor Color red g drawString 我一边喝着咖啡 一边学Java呢 5 30 g setColor Color blue g drawString 我学得很认真 10 50 1 7什么是JSP JSP是JavaServerPages的缩写 是由Sun公司1999于年推出的一种动态网页技术标准 JSP是基于JavaServlet以及整个Java体系的Web开发技术 利用这一技术可以建立安全 跨平台的先进动态网站 这项技术还在不断的更新和优化中 你可能对Microsoft的ASP比较熟悉 ASP的全名是ActiveServerPages 也是一个Web服务器端的开发环境 可以开发出动态的 高性能的Web服务应用程序 JSP和ASP技术非常相似 ASP的编程语言是VBScript JSP使用的是Java 与ASP相比 JSP以Java技术为基础 又在许多方面做了改进 具有动态页面与静态页面分离 能够脱离硬件平台的束缚 以及编译后运行等优点 完全克服了ASP的脚本级执行的缺点 我们相信JSP会逐渐成为Internet上的主流开发工具 需要强调的一点是 要想真正地掌握JSP技术 必须有较好的Java基础 但学习Java的目的并不只是为了掌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国铝膜气球行业市场规模及投资前景预测分析报告
- 2025中国人民大学党委保卫部(处)招聘2人笔试考试参考试题及答案解析
- 2025湖北潜江市事业单位人才引进55人考试笔试备考题库及答案解析
- 2025下半年江苏苏州市公交集团有限公司管理岗位招聘5人考试笔试备考试题及答案解析
- 2025下半年四川铁道职业学院招聘10人考试笔试模拟试题及答案解析
- 老年人安全进食
- 喉癌康复治疗方案培训
- 【A4原卷】2025年五年级数学上册期末素养测评基础卷(二)
- 2026年克拉玛依职业技术学院单招职业倾向性测试题库必考题
- 2026年贵州健康职业学院单招综合素质考试题库及答案1套
- 麦西腊拜铝土矿 矿业权出让收益计算书
- MT 684-1997矿用提升容器重要承载件无损探伤方法与验收规范
- 清华大学出版社机械制图习题集参考答案(第三版)最全整理PPT通用课件
- 2022年0-6岁儿童健康管理评价表
- 2023年四川省自然资源投资集团有限责任公司招聘笔试题库及答案解析
- 大练衡水字体,规范英语书写
- 对外汉语教学语言测试课件
- 河床稳定计算及河相分析
- 学术论文写作格式及规范课件
- 2021年上海临港外服人力资源有限公司招聘笔试试题及答案解析
- 水利基础知识试题集(带答案)
评论
0/150
提交评论