已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计 郑州大学信息工程学院王振飞iezfwang 2012 8 TIOBE世界编程语言排行榜2011年3月榜单 参考书目 Java语言程序设计 基础篇 原书第8版 李娜 译 机械工业出版社 2011 6 Java语言程序设计 第2版 郎波清华大学出版社2010 9Java语言程序设计辛运帏 人民邮电出版社2009 10JavaEE基础实用教程郑阿奇电子工业出版社2011 2 JavaWeb程序设计教程范立锋人民邮电出版社2010 4 教材 Java语言程序设计基础原书第8版 美 Y DanielLiang机械工业出版社给大家提供英文版电子书 学习编程语言的方法 一个程序设计高手从来不是看书看出来的 而是上机动手练出来的 Thebestwaytostartprogrammingistohaveaterminalrunninganinteractivelanguageandafriendsittingnearbywhoalreadyknowsthelanguageandhassomethingelsetodobutcanbeinterruptedwithquestions Andyoujusttrystuff tillmoreandmoreyougetthefeelofit Andyoufindyourselfwritingprogramsthatwork Nelson Ted ComputerLib MicrosoftPress 1987 Java程序设计 第1章Java语言简介 学习目标 了解Java及其发展史掌握创建 编译 运行Java程序理解Java运行环境掌握编写简单的应用程序掌握在控制台和对话框中显示数据 它最初被命名为Oak 目标设定在家用电器等小型系统的编程语言 来解决诸如电视机 电话 闹钟 烤面包机等家用电器的控制和通讯问题 由于这些智能化家电的市场需求没有预期的高 Sun放弃了该项计划 就在Oak几近失败之时 随着互联网的发展 Sun看到了Oak在计算机网络上的广阔应用前景 于是改造了Oak 以 Java 的名称正式发布 Java是一个面向对象的程序设计语言 它继承了C 面向对象技术的核心 舍弃了C 中容易引起错误的指针 以引用取代 多重继承 以接口取代 等特性 增加了垃圾回收等功能 用于回收不再被引用的对象所占据的内存空间 使程序员不再为内存管理担忧 JavaHistory JavaHistory Java不同于一般的编译执行计算机语言和解释执行计算机语言 它首先将源代码编译成二进制字节码 然后依赖各种不同平台上的虚拟机来解释执行字节码 从而实现了 一次编译 到处执行 的跨平台特性 不过 每次的编译执行需要消耗一定的时间 这同时也在一定程度上降低了Java程序的运行效率 但在J2SE1 4 2发布后 Java的执行速度有了大幅提升 JAVA名字的起源 Java的名字的来源 Java是印度尼西亚爪哇岛的英文名称 因盛产咖啡而闻名 Java语言中的许多库类名称 多与咖啡有关 如JavaBeans 咖啡豆 NetBeans 网络豆 以及ObjectBeans 对象豆 等等 SUN和JAVA的标识也正是一杯正冒着热气的咖啡 Java与C C 的区别 Java中对内存的分配是动态的Java不在所有类之外定义全局变量 而是在某个类中定义一种公用静态的变量来完成全局变量的功能 Java不用goto语句 而是用try catch finally异常处理语句来代替goto语句处理出错的功能 Java不支持头文件Java不支持宏定义 而是使用关键字final来定义常量Java对每种数据类型都分配固定长度 类型转换时要进行类型相容性检查 不包含结构和联合 Java不再使用指针避免平台依赖 Java语言的问世 Sun公司在 Java白皮书 中是这样对Java进行定义的 Java Asimple object oriented distributed interpreted robust secure architecture neutral portable high performance multi threaded anddynamiclanguage 即Java是一种具有 简单的 面向对象的 分布式的 解释型的 强壮的 安全的 体系结构中立的 可移植的 高性能的 多线程的 动态的语言 Java的特征 简单面向对象分布式解释性健壮性安全性与体系结构无关可移植性高性能多线程 特性之一 简单性 Java语言的简单性主要出于如下几种因素 Java的风格类似于C 因而对C 程序员而言是非常熟悉的 从某种意义上讲 Java语言本身是C及C 的一个变种 因此 C 程序员可以很快掌握Java编程技术 Java摒弃了C 中容易引发程序错误的地方 如指针和内存管理 Java提供了自动内存垃圾搜集机制 从而减轻了编程人员进行内存管理的负担 有助于减少软件错误 Java是完全面向对象的 它是最容易学习的面向对象编程语言之一 同时它还提供了大量可重用的类库 Java的简单性是以增加运行时系统的复杂性为代价的 以内存管理为例 自动内存垃圾处理减轻了面向对象编程的负担 但Java运行时系统却必须内嵌一个内存管理模块 但无论如何 对编程人员而言 Java的简单性只会是一个优点 它可以使我们的学习曲线更趋合理化 加快我们的开发进度 减少程序出错的可能性 特性之一 简单性 特性之二 面向对象 所有面向对象的编程语言至少具备以下四个特点 1 封装性 Encapsulation 必须有模块化 modularity 的性质以及信息隐藏 informationhiding 的能力 2 多态性 Polymorphism 不同的对象对同一种信息 可以按照对象本身的性质加以回应 3 继承性 Inheritance 可以定义一套对象之间的层次关系 下层的对象继承了上层对象的特性 籍此可以实现程序代码重复利用 并且有效的组织整个程序 4 动态联编 Dynamicbinding 一旦对象生成以后 要使用这个对象只需简单地把信息传递给它 不再需要去参考对象当初设计时的规格 只在程序执行时 才会真正锁定需要的对象 这样的方式可以使程序设计具有最大的灵活性 Java语言是一门面向对象语言 因此它具有以上四个特点 Java语言的设计集中于对象及其接口 它提供了简单的类机制以及动态的接口模型 对象中封装了它的状态变量以及相应的方法 实现了模块化和信息隐藏 而类则提供了一类对象的原型 并且通过继承机制 子类可以使用父类所提供的方法 实现了代码的复用 特性之三 分布式 分布式包括数据分布和操作分布 数据分布是指数据可以分散存放于网络上的不同主机 操作分布则指把计算分散由不同主机进行处理 对于操作分布 Java的客户机 服务器模式可以把运算从服务器分散到客户一端 提高整个系统的执行效率 避免瓶颈制约 增加动态可扩充性 对于编程人员来说 Java的网络类库是对分布式编程的最好支持 Java网络类库是支持TCP IP协议的子例程库 特性之三 分布式 字节码 ByteCode 提供了一种结构中立的对象文件格式 该格式设计成可在多种平台上有效运行的程序 Java语言的程序可在提供Java语言解释器和实时运行系统的任意环境上运行 Java解释器直接对Java字节码进行解释执行 字节码本身携带了许多编译时的信息 使得连接过程更加简单 特性之四 解释执行 源程序 编译 字节码 虚拟机 Java在编译和运行程序时 都要对可能出现的问题进行检查 以消除错误的产生 它提供自动垃圾收集来进行内存管理 防止程序员在管理内存时容易产生的错误 通过集成的面向对象的例外处理机制 在编译时 Java提示出可能出现但未被处理的例外 帮助程序员正确地进行选择以防止系统的崩溃 另外 Java在编译时还可捕获类型声明中的许多常见错误 防止动态运行时不匹配问题的出现 特性之五 健壮性 特性之六 安全性 Java不支持指针 一切对内存的访问都必须通过对象的实例变量来实现 这样就防止程序员使用 特洛伊 木马等欺骗手段访问对象的私有成员 同时也避免了指针操作中容易产生的错误 Java程序被编译成一种与体系结构无关的字节代码 只要安装了Java运行时系统Java程序可以在任意的处理器上运行 Java解释器得到字节码后 对他进行转换使他能够在不同的平台上运行 特性之七 体系结构中立 特性之八 可移植性 Java既是编译性又是解释型的 因为 Java编译人员在进行软件开发时 不必考虑软件运行平台 不仅开发的源代码是可移植的 甚至源代码经过编译之后形成的二进制代码 字节码 而不管这种字节码是在何种平台上生成的 Java采用的是基于国际标准的数据类型 Java的数据类型在任何机器上都是一致的 它不支持特定于具体的硬件环境的数据类型 此外 Java的可移植性还体现在Java的运行环境上 Java编译器是用Java语言本身所编写的 而其运行时环境则是用ANSIC编写的 整个运行时的环境体现了一个定义良好的可移植接口 特性之八 可移植性 Java作为一种解释型语言 其速度不会超过编译语言C 但远远超过交互式语言 和其他解释执行的语言如BASIC等不同 Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码 从而具有较高的性能 特性之九 高性能 多线程概念很象多任务 Java可以把一个程序分成多个任务以便使任务易于完成和最大限度利用CPU资源 多线程机制使应用程序能够并行执行 而且同步机制保证了对共享数据的正确操作 通过使用多线程 程序设计者可以分别用不同的线程完成特定的行为 而不需要采用全局的事件循环机制 这样就很容易地实现网络上的实时交互行为 特性之十 多线程 Java自身的设计使她适合于一个不断发展的环境 在Java类库中可以自由的加入新的方法和实例变量而不会影响用户程序的执行 而且Java通过接口来支持多重继承使之比严格的类继承具有更灵活的方式和扩展性 特性之十一 动态性 Java语言规范 API JDK IDE Java语言规范 JavaLanguageSpecification JLS Java语言的语法和语义技术性定义 应用程序接口 ApplicationProgramInterface API Java预定义类和接口 Java开发工具包 JavaDevelopmentKit JDK 包含软件库 编译器 解释器以及其它工具 集成开发环境 IntegratedDevelopmentEnvironment IDE 在一个图形界面中 完成编辑 编译 调试和在线帮助等功能 Java平台版本 JavaSE JavaFlatform StandardEdition 以前称为J2SE 它允许开发和部署在桌面 服务器 嵌入式环境和实时环境中使用的Java应用程序 JavaEE JavaFlatform EnterpriseEdition 以前称为J2EE 它帮助开发和部署可移植 健壮 可伸缩且安全的服务器端Java应用程序 JavaEE是在JavaSE的基础上构建的 它提供Web服务 组件模型 管理和通信API JavaME JavaFlatform MicroEdition 以前称为J2ME 它为在移动设备和嵌入式设备 比如手机 PDA 电视机顶盒和打印机 上运行的应用程序提供一个健壮且灵活的环境 JavaSESDK版本 JDK1 02 1995 JDK1 1 1996 J2SDKv1 2 1998 J2SDKv1 3 2000 J2SDKv1 4 2002 J2SE5 0 2004 JavaSE6 0 2006 JDK6Update21 PresentDownload JDK JavaDevelopmentKit Sun推出JDK1 0后 Java的知名度如日中天 甚至Java已经成为Internet发行的行业标准 从SUN的JDK5 0开始 提供了泛型等非常实用的功能 其版本也不断更新 运行效率得到了非常大的提高 我们使用的是JDK1 6 JDK6 0 目前JDK最新版本是1 7 JDK7 0 读者可以从这儿 JDK JDK是Java语言最基本的开发工具 免费的 javac Java编译器 java Java解释器 jdb Java调试器 javah C语言标题文件和存根文件产生器 javap Java反汇编器 javadoc Java文档管理器 appletviewer JavaApplet浏览器 JDK的安装与配置 双击软件包中的jdk 6 windows i586 exe运行文件 默认JDK安装路径 C ProgramFiles Java jdk1 6 0 07 设置系统变量JAVA HOME 右击 我的电脑 图标 选择 属性 高级 环境变量 菜单项 弹出 环境变量 对话框 如图所示 图1 1环境变量对话框 JDK的安装与配置 在 系统变量 中单击 新建 按钮 弹出 新建系统变量 对话框 在 变量名 文本框中输入 JAVA HOME 变量值 文本框中输入JDK的安装路径 C ProgramFiles Java jdk1 6 0 07 如图所示 单击 确定 按钮完成配置 JDK的安装与配置 设置系统变量Path 选择 属性 高级 环境变量 菜单项 在 系统变量 中找到变量名为 Path 的变量 单击 编辑 按钮 在前面输入JDK到bin的目录 C ProgramFiles Java jdk1 6 0 07 bin 如图所示 单击 确定 按钮完成配置 设置系统变量CLASSPATH 与 同样的操作 不同的是变量名为 CLASSPATH 变量值为 C ProgramFiles Java jdk1 6 0 07 bin dt jar C ProgramFiles Java jdk1 6 0 07 bin tools jar JDK的安装与配置 测试 运行cmd javajavacjava version如果以上三个命令都能运行的话 说明安装成功 开发环境的配置 JDK简介bin Java编译器 解释器等 lib Java开发类库 jre Java虚拟机 运行类库等 demo 实例程序 JDK目录结构 Java程序开发过程 源程序 程序名 java Java编译器 字节码文件 class 与平台无关 小应用程序 由Web浏览器执行 应用程序 由java解释器执行 一个简单的Java程序 在控制台中输出 WelcometoJava ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 编译Java源代码 Java的目标代码可以在任何平台上运行 Java的源代码编译之后生成字节码 bytecode 字节码可以在任何装有Java虚拟机 JavaVirtualMachine 的计算机上运行 Java虚拟机是一个用于解释字节码的软件 创建 编译和执行Java程序 创建和编辑源代码可以使用任何文本编译器创建和编辑源代码 文件名必须与公共的类名一致 文件后缀为 java编译在控制台中执行 javac源文件名生成 class字节码文件执行在控制台中执行 java类名 在Windows命令窗口中编译执行 设置环境变量 编译 执行 在eclipse中执行 在鼠标右键菜单中选择运行方式 Java应用程序 保存源文件将自动执行编译 应用程序剖析 注释保留字修饰符语句块类方法main方法 注释 Java程序包含三种注释多行注释 用于某行的一部分 单行或多行注释 注释内容注释内容 单行注释 用于单行或不到一行的注释 注释内容文档注释 可以使用javadoc提取注释 形成文档 注释内容注释内容 保留字 保留字或关键字 keyword 是对编译器有具体意义 不能在程序中用于其它目的的单词 注意 JAVA是区分大小写的 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 修饰符 Java中的某些关键字称为修饰符 modifier 用于指定数据 方法 类的属性以及它们的用法 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 语句 语句 statement 代表一个动作或一系列动作 Java中的每个语句都以分号 结尾 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 块 程序中成对的大括号形成一个块 block 用于组织程序中的部件 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 方法块 类块 类 类 class 是Java的基本结构 类是对象的模板或蓝图 一个程序可以包含一个或多个类 但一个Java文件里只能有一个公有 public 类 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 方法 System out是标准输出流 println是该对象的一个方法 该方法向标准输出流 显示屏 显示字符 括号中的字符串是方法的参数 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava main方法 Java解释器通过调用main方法执行应用程序 main方法是Java应用程序 JavaApplication 的入口 Java有二种类型的程序 Application 由操作系统通过main方法启动 Applet 只能嵌在网页里 在浏览器里运行 没有main方法 ThisprogramprintsWelcometoJava publicclassWelcome publicstaticvoidmain String args System out println WelcometoJava 应用程序举例 程序1 1一个基本的Java应用程序 简单的应用程序HelloWorldApp publicclassHelloWorldApp publicstaticvoidmain Stringargs System out println HelloWorld 如果源文件中有多个类 那么只能有一个类是public类 如果有一个类是public类 那么源文件的名字必须与这个类的名字完全相同 扩展名是 java如果源文件没有public类 那么源文件的名字只要和某个类的名字相同 并且扩展名是 java就行了 应用程序举例 应用程序举例 程序的创建文本编辑器 如记事本 写字板等 HelloWorldApp java 程序的编译javacHelloWorldApp java新文件 HelloWorldApp class程序的运行javaHelloWorldApp 即HelloWorldApp class 应用程序举例 程序的解释1 3行 注释行 4 8行 公有类HelloWorldApp 5 7行 publicstaticvoidmain Stringargs static静态方法public公有方法void无返回值args 命令行参数第6行 标准输出流java lang System out 应用程序举例 程序1 2处理命令行参数 简单的应用程序HelloWorldApp publicclassHelloWorldApp publicstaticvoidmain Stringargs System out println HelloWorld if args length 0 System out println Hello args 0 应用程序举例 命令行参数javaHelloWorldAppearthman屏幕上显示的结果将是 HelloWorld Helloearthman 参数的个数可以多个 读者不妨一试 args length命令行参数的个数 在消息对话框中显示文本 可以使用JOptionPane的showMessageDialog方法显示文本 importjavax swing JOptionPane publicclassWelcomeInMessageDialogBox publicstaticvoidmain String args JOptionPane showMessageDialog null WelcometoJava Example1 2Output JOptionPane INFORMATION MESSAGE 消息 标题 图标 JavaApplet程序 小应用程序 JavaApplet在WWW中引入动态交互的内容 使网络更广泛地渗入社会生活的方方面面 JavaApplet的源代码编辑与字节码的编译生成过程与JavaApplication相同 但它不是可以独立运行的程序 它的字节码文件必须嵌入到HTML程序的文件中并由WWW浏览器来解释执行JavaApplet的字节码程序 Java小应用程序 程序1 3importjava applet importjava awt publicclassMyjavaAppletextendsApplet publicvoidpaint Graphicsg g setColor Color red g drawString 我在学JavaApplet 25 25 小应用程序程序分析 程序的第1 2行利用import关键字引入了程序需要的两个系统类Graphics和Applet 由于这两个系统类位于不同的系统包中 所以引入时要指明它们所在的包名 java awt和java applet第3行自定义了名为MyjavaApplet的类publicclassMyjavaAppletextendsApplet JavaApplet中不需要有main方法 JavaApplet要求有一个类是系统类applet的子类 即必须有一个类的类头部分以extendsApplet结尾 其中extends表明新定义的类是它后面跟着的已经存在的父类的子类 Applet是父类名 为什么必须要以extendsApplet结尾 小应用程序程序分析 因为系统类Applet中已经定义了很多的成员域和成员方法 它们规定了Applet如何与执行它的解释器WWW浏览器配合工作 所以当用户程序使用Applet的子类时 由于继承的特性 这个子类将自动拥有父类的有关成员 使WWW浏览器顺利地执行并实现用户程序所定义的功能 所以 当一个类被定义为已经存在的类的子类时 它将从其父类中继承一些成员 包括域和方法 其好处是子类可以利用父类已经定义了的功能而不必重复定义 小应用程序程序分析 第4行到第9行是类MyjavaApplet的类体部分 类体中定义了一个方法paint paint方法是系统类Applet中已经定义好的成员方法 它与其他的一些Applet中的方法一样 能够被WWW浏览器识别和自动调用 在此paint方法只有一条语句g drawString 我在学JavaApplet 10 20 该语句的功能是在屏幕的特定位置显示一个字符串 该语句实际调用了paint方法的形式参数g的一个成员方法drawString来完成输出功能的 g是系统类Graphics的一个对象 它代表了Web页面上Applet程序的界面区域的背景 在此背景上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大连装备制造职业技术学院单招职业倾向性考试必刷测试卷附答案解析
- 2026年南京科技职业学院单招职业倾向性考试题库及答案解析(夺冠系列)
- 2026年南昌影视传播职业学院单招职业技能测试必刷测试卷及答案解析(名师系列)
- 2026年广东省揭阳市单招职业倾向性测试题库及答案解析(名师系列)
- 2026年浙江邮电职业技术学院单招综合素质考试题库附答案解析
- 基于深度学习的文本生成与对话系统
- 房屋损伤赔偿协议书
- 房屋权益转移协议书
- 房屋滴水距离协议书
- 房屋租赁设备协议书
- 南昌省会课件
- 2025北京广播电视台招聘200人考试笔试模拟试题及答案解析
- 学校食堂米、面、油供应服务方案投标文件(技术标)
- 《图像:从文艺复兴到社交媒体》读书札记
- 建筑工地钢管搭设验收记录表模板
- 2025中国兵器装备集团自动化研究所有限公司中层管理人员招聘1人笔试历年难易错考点试卷带答案解析试卷2套
- 血站护理面试题库及答案
- 财政局岗位业务测试(会计、社保专管员)试题(带答案)
- 冲压模具装模流程
- 航天知识考试题库及答案
- 2025中铁建云网科技(贵州)有限公司招聘29人考试笔试备考题库及答案解析
评论
0/150
提交评论