Java语言程序设计第一章-PPT课件
- 格式:ppt
- 大小:180.50 KB
- 文档页数:48
Java语言程序设计基础教程课件(第1章)Java的优越性与c比较勤学相对目前市场需求量大可移植性好安全性高多线程纯的面向对象语言Java与net相较开源社区开发工具免费Eclipse 信息与计算科学专业的学生推荐书籍Java2核心技术第七版Thinking in Java 第一章Java 程序设计概述11 机器语言汇编语言和高级语言12 Java 语言概述13 Java平台和主要应用方向14 Java的垃圾回收与代码安全检查机制15 典型的Java开发环境16 Java编程示例17 反编译工具的介绍18 Java JDK 6 新功能介绍11机器语言汇编语言和高级语言计算机程序设计语言的种类非常多总的可以分成机器语言汇编语言高级语言三大类机器语言是计算机唯一能接受和执行的语言与硬件紧密相连机器语言由二进制码组成每个二进制码是一条指令一条指令通常由两个部分组成操作码操作数操作码规定了计算机要执行的基本操作操作数规定了操作对象或操作对象的地址汇编语言Assembly Language是面向机器的程序设计语言用汇编语言编写的程序叫汇编语言源程序计算机无法执行必须用汇编程序把它翻译成机器语言目标程序计算机才能执行这个翻译过程称为汇编过程汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序汇编语言中用助记符代替操作码用地址符号Symbol或标号Label代替地址码这样用符号代替机器语言的二进制码就把机器语言变成了汇编语言因此汇编语言亦称为符号语言机器语言和汇编语言都是面向机器的高级语言是面向用户的由于汇编语言依赖于硬件体系且助记符量大难记于是人们又发明了更加易用的所谓高级语言高级语言中的语法和结构更类似普通英文且由于远离对硬件的直接操作使得一般人经过学习之后都可以编程用高级语言编写的程序叫做高级语言源程序必须翻译成机器语言目标程序才能被计算机执行高级语言的翻译有两种方式编译方式和解释方式编译方式先由编译程序把高级语言源程序翻译成目标程序执行时运行目标程序现在大多数的编程语言都是编译型的例如Visual CVisual FoxproDelphi等解释方式在运行高级语言源程序时由解释程序对源程序边翻译边执行经典的Basic语言就是以解释方式运行的12 Java 概述Java语言的产生Java语言的发展Java虚拟机及Java的跨平台原理Java语言的关键特点Java 语言的产生Java是1995年6月由Sun公司引进到我们这个世界的革命性的编程语言1990年Sun公司成立了由James Gosling领导的开发小组开始致力于开发一种可移植的跨平台的语言该语言能生成正确运行于各种操作系统各种CPU芯片上的代码他们的精心专研和努力促成了Java语言的诞生Java语言是一门很优秀的语言具有面向对象与平台无关安全稳定和多线程等优良特性是目前软件设计中极为健壮的编程语言Java语言的出现是源于对独立于平台语言的需要即这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误目前随着网络的迅速发展Java语言的优势越显明显Java已经成为网络时代一门非常重要的语言Java 语言的发展微软公司总裁比尔盖茨先生认为Java语言是长时间以来最卓越的程序设计语言Java语言已经成为目前最流行的网络编程语言到2005年我国对Java技术人员的需求量将高达20万余人许多大学纷纷开设Java课程Java 正逐步成为世界上程序员最多的编程语言Java虚拟机及Java的跨平台原理Java虚拟机Java Virtual Machine 简称JVMJava虚拟机是一个想象中的机器在实际的计算机上通过软件模拟来实现Java 虚拟机有自己想象中的硬件如处理器堆栈寄存器等还具有相应的指令系统Java 语言的一个非常重要的特点就是与平台的无关性而使用Java虚拟机是实现这一特点的关键Java语言的关键特点简单性平台无关性面向对象性安全性分布式多线程动态性13 Java平台和主要应用方向某种意义上来说Java不仅是编程语言还是一个开发平台Java技术给程序员提供了许多工具编译器解释器文档生成器和文件打包工具等同时Java还是一个程序发布平台两种主要的发布环境首先是Java运行时环境java runtime environment简称JRE包含了完整的类文件包其次许多主要的浏览器都提供了Java解释器和运行时环境Java技术的平台架构包括以下三个方面J2SEJava 2 Standard Edition标准版主要目的是为台式机和工作站提供一个开发和运行的平台包括标准的Java 2 SDK工具运行时环境和API用Java程序设计语言编写部署和运行Applet和应用程序的开发人员是桌面开发和低端商务应用的解决方案J2EEJava 2 Enterprise Edition企业版主要目的是为企业计算提供一个应用服务器的运行和开发平台J2EE本身是一个开放的标准任何软件厂商都可以推出自己的符合J2EE标准的产品通过基于标准化模块组件和一整套的相关服务能够自动处理应用程序行为的许多细节从而大大简化了多层企业应用程序的构造和部署IBMOracleBEAHP等29家已经推出了自己的产品其中尤以BEA公司的WebLogic产品和IBM公司的WebSphare最为著名J2MEJava 2 Micro Edition小型版主要是面向消费电子产品为消费电子产品提供一个Java的运行平台使得Java程序能够在手机机顶盒PDA等产品上运行包含高度优化的Java运行时环境致力于电子消费产品和嵌入式设备的解决方案14 Java的垃圾回收与代码安全检查机制在Java程序的执行过程中部分内存在使用过后就处于废弃状态如果不及时进行无用内存的回收内存会越占越多导致内存泄漏进而导致系统崩溃在C++语言中是由程序员人为进行内存回收的程序员需要在编写程序的时候把不再使用的对象内存释放掉但是这种人为的管理内存释放的方法却往往由于程序员的疏忽而致使内存无法回收同时也增加了程序员的工作量在Java运行环境中始终存在着一个系统级的线程专门跟踪内存的使用情况定期检测出不再使用的内存并进行自动回收避免了内存的泄露也减轻了程序员的工作量字节码的执行需要经过三个步骤1首先由类装载器class loader负责把类文件class文件加载到Java虚拟机中在此过程需要检验该类文件是否符合类文件规范2其次字节码校验器byte code verifier检查该类文件的代码中是否存在着某些非法操作例如Applet程序中写本机文件系统的操作3如果字节码校验器检验通过由Java解释器负责把该类文件解释成为机器码进行执行Java虚拟机采用的是沙箱运行模式即把Java程序的代码和数据都限制在一定内存空间里执行不允许程序访问该内存空间外的内存如果是Applet程序还不允许访问客户端机器的文件系统Java致力于检查程序在编译和运行时的错误类型检查帮助检查出许多开发早期出现的错误Java自已操纵内存减少了内存出错的可能性Java还实现了真数组避免了覆盖数据的可能这些功能特征大大提高了开发Java应用程序的周期Java提供Null指针检测数组边界检测异常出口Byte code校验15典型的Java开发环境Sun公司为全世界使用Java进行开发的人员提供了一套免费的开发工具集取名为JDKJava Developers Kits它不仅是Java的开发平台也是Java的运行平台学习Java必须从J2SE开始目前Sun公司已发布了SDK的15测试版本beta版可以登录到Sun公司的网站httpcom免费下载SDK15例如jdk-1_5_0-beta2-windows-i586exe 下载安装和了解JDK 1下载安装JDK的第一步是下载安装文件这里要下载的是Sun公司的J2SE 50 Development Kits下载的网址是httpcomj2secomdownloadjsp 2安装JDK 下载后的JDK安装文件名称是jdk-1_5_0_06- windows-i586-pexe双击这个文件可以开始程序的安装开始的第一步是同意使用条款接着则开始安装JDK 3了解JDK 默认情况下JDK与公用JRE各安装至C\Program Files\Java\com\及C\Program Files\Java\com\ 公用JRE 主要是为开发好的Java程序提供执行的平台其实JDK本身也有自己的JRE这个JRE位于JDK安装目录的jre目录下以上面的安装为例就是在C\Program Files\Java\com\jre中JDK本身所附的JRE主要是开发Java程序时做测试之用与公用JRE的主要差别在于JDK本身所附的JRE比公用JRE多了个server的VMVirtual Machine执行选项JDK的安装目录下有如下内容bin目录提供的是JDK的工具程序包括javacjavajavadocappletviewer等程序demo目录一些使用Java 编写好的范例程序jre目录JDK自己附带的JRE lib目录工具程序实际上会使用的Java工具类例如javac工具程序实际上会去使用toolsjar中的comsuntoolsjavacMain类srczipJava提供的API类的源代码压缩文件如果需要查看API的某些功能是如何实现的可以查看这个文件中的源代码内容JDK安装目录下的bin目录非常重要因为编写完Java程序之后无论是编译或执行程序都会使用到bin目录下所提供的工具程序系统环境ClassPath 值的设置系统环境变量Path 值的设置测试环境变量写一个简单的Java程序测试一下环境设置是否正确例1-1一个简单的Java程序public class HelloWorld public static void main String argv[ ] S ycomtln "你好我的第一个Java程序" 注意1.Java 的源文件必须以扩展名java结束2.Java主文件名与类名称必须一致区分大小写3.Java程序的类名称是指class关键词后的名称就这个例子而言也就是HelloWorld该名称必须与HelloWorldjava的主文件名HelloWorld一致4.注意每个字母的大小写Java程序中会区分字母的大小写System与system对Java程序来说是不一样的名称C\ cd java_work\1 接着使用javac工具程序来编译java文件命令如下C\java_work\1 javac HelloWorldjava 如果编译顺利成功则在HelloWorldjava所在的目录会出现一个HelloWorldclass文件这是已经编译完成的Java字节码文件使用java工具程序来执行它执行方式如下C\java_work\1 java HelloWorld Java工具程序会根据指定的类名称实际加载class的文件以上例来说就是载入HelloWorldclass并执行Eclipse和MyEclipse 1.Eclipse 是什么Eclipse 是一个开放源代码的基于Java的可扩展开发平台就其本身而言它只是一个框架和一组服务用于通过插件组件构建开发环境幸运的是Eclipse 附带了一个标准的插件集包括Java开发工具Java Development ToolsJDT 虽然大多数用户很乐于将Eclipse 当作Java IDE 来使用但Eclipse 的目标不仅限于此Eclipse还包括插件开发环境Plug-in Development EnvironmentPDE这个组件主要针对希望扩展Eclipse的软件开发人员因为它允许构建与Eclipse环境无缝集成的工具由于Eclipse中的每样东西都是插件对于给Eclipse 提供插件以及给用户提供一致和统一的集成开发环境而言所有工具开发人员都具有同等的发挥场所2.MyEclipse 是什么简单而言MyEclipse是Eclipse的插件也是一款功能强大的J2EE集成开发环境支持代码编写配置测试以及除错最新版本是70主要增加Matisse4 MyEclipse Gui Biulder的整合AjaxWeb 20 开发工具16 Java编程示例com 第一个Java Application 例1-2第一个Java Application程序MyApplicationjava import javautil 下面我们用到了Date和Properties这两个类是属于Javautil这个包的而System和Runtime这两个类是属于Javalang这个包的public class MyApplication public static void main String[] args Sycomtln new Date 在命令行下面打印出日期Properties p SystemgetProperties 获得系统的Properties对象p plist Systemout 在命令行下打印出p中的各个系统变量的值Sycomtln "--- Memory Usage" 打印一行字符串---Memory Usage Runtime rt RuntimegetRuntime 获得系统的Runtime对象rt Sycomtln "Total Memory " rttotalMemory " Free Memory " rtfreeMemory 打印总内存大小打印空闲内存大小Sycomtln new Date 打印语句的参数是一个日期对象Date而创建Date对象的目的就是把它的值发给println 语句一旦这个语句执行完毕Date对象就没用了而后Java的垃圾回收机制会将其收回第二行中调用了SystemgetProperties 方法getProperties 是System类的一个静态方法static方法关于类的静态方法含义我们会在第三章中介绍由于它是静态的所以不必创建任何对象就可以通过类名直接调用该方法在第三行中Properties对象有一个名为list 的方法它将自己的全部内容都发给一个PrintStream对象该对象作为list 方法的参数第四行和第六行是典型的打印语句其中第六行通过运算符+的重载来连接多个字符串对象在Java中只有当+运算符作用于字符串时才能够进行重载仔细观察下述语句Sycomtln "Total Memory " rttotalMemory " Free Memory " rtfreeMemory 其中totalMemory 和freeMemory 返回的是数值并非String对象第五行通过调用Runtime的getRuntime 方法创建了一个Runtime对象该对象中包含了内存等信息com Java程序的编辑Java程序的编辑可以使用任何一种文本编辑器例如UltraEditNotepadWordpad甚至word然后只要把编辑好的文件存成后缀为java的文件当然也可以用一些集成开发环境例如Borland公司的JBuilderIBM公司的Visualage for JavaSun公司的NetBean此外还有cafekawa等其它集成开发环境comava Application应用程序要编译上述Java文件MyApplicationjava可以在命令提示符下进行编译在命令行中敲入javac MyApplicationjava 当编译结束后Java 源文件中的每一个类都会生成相应的class 文件例如上例就会生成一个MyApplicationclass文件而Java程序在执行时调用的是class 文件在命令提示符下敲入java MyApplication进行执行comJava Applet 例1-3一个Java Applet程序该程序保存在文件HelloAppletjava中import comhics 进行显示输出时需要用到类Graphics的对象import comet Applet类是所有的Java Applet的父类给这个类取名为HelloApplet 因为所有的applet程序都是Applet类的子类public class HelloApplet extends Applet public String s public void inits new String "欢迎学习Java Applet" 生成一个字符串对象public void paint Graphics g gdrawString s 25 25 在浏览器中坐标为2525的位置显示字符串s Applet小应用程序是从方法init 开始执行的在该方法中完成了对字符串s的初始化工作而显示功能是在方法paint 中执行的paint 方法是类Applet的一个成员方法其参数是图形对象Graphics g通过调用对象g的drawString 方法就可以显示输出compplet Applet程序也是一个类其编译方式与Java Application完全一样Applet的执行方式与Application完全不同Applet程序必须嵌入到6>html文件中才能够执行因此必须编写一个相应的html文件此处为HelloApplethtml代码中包含有applet标记如下applet code HelloAppletclass height 100 width 300 然后可以通过JDK所提供的命令appletviewer在命令提示符下敲入appletviewer HelloApplethtml 此时系统会弹出另外一个窗口运行该applet程序运行结果如图1-9所示17反编译工具的介绍使用SDK提供的反编译器javapexe可以将字节码反编译为源码查看源码类中的public方法名字和public成员变量的名字例如javap comon 将列出Button中的public方法和public 成员变量下列命令javap –private comon 将列出Button中的全数方式和成员变量查看更多的参数能够执行javap -help来显示18 Java JDK 6 新功能介绍2006年末Sun 公司发布了Java Standard Edition 6Java SE 6的最终正式版跟Java SE 5相较在性能方面有了专门大的提升Java SE 6 在Instrumentation 方面的新特性在Java SE 6 里面instrumentation 包被给予了更壮大的功能启动后的instrument 本地代码instrument和动态改变classpath 等等Java SE 6 与HTTP 相关的诸多新特性这使得Java SE 平台本身对网络编程尤其是基于HTTP 协议的因特网编程有了加倍壮大的支持Java 管理扩展JMX 架构及其框架和在Java SE 5 中新引入的JMX API -- comgement 包此API 在Java SE 6 中做了改良JDK 6 中新增加的编译器APIJSR 199利用此API您能够在运行时挪用Java 编译器能够编译不同形式的源代码文件还能够收集编译器的诊断信息Java SE 6 在数据库编程方面的新特性包括嵌入在JDK 中的Java DB Derby和JDBC 40 的一部份Java SE 6 新引入的对JSR 223 的支持它旨在概念一个统一的规范使得Java 应用程序能够通过一套固定的接口与各类脚本引擎交互从而达到在Java 平台上挪用各类脚本语言的目的Java SE 6 中提供的XML 处置框架和在此框架之上结合注释Annotation 技术所提供的壮大的针对Web 服务的支持19 练习试探题 1 Java运行平台包括三个版本请选择正确的三项 A J2EE BJ2ME C J2SE DJ2E 2 开发与运行Java程序需要经过的三个主要步骤为________________________和____________ 3 如果一个Java Applet源程序文件只定义有一个类该类的类名为MyApplet则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______ Java程序分为Java ApplicationJava 应用程序和Java AppletJava小应用程序两种类型图1-9 Applet例子运行结果SDK的安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库这些类库被包含在jre\lib目录下的压缩文件rtjar中SDK平台提供的Java编译器javacexe和Java解释器javaexe位于Java安装目录的bin文件夹中为了能在任何目录中使用编译器和解释器应在系统特性中设置Path对于Windows2000Windows2003Windows XP用鼠标右键点击我的电脑弹出菜单然后选择属性弹出系统特性对话框再单击该对话框中的高级选项然后点击按钮环境变量添加如下的系统环境变量百度文库- 让每个人平等地提升自我11。
Java语言程序设计基础课件ppt第一章Java概述Java的特点Java是简单的Java是面向对象的Java是健壮的Java 是安全的Java是解释型的Java是可移植的Java是多线程的“一次编译,到处运行”的原理Java程序的运行环境编译型源程序字节码程序Java源程序可执行程序EXE裸机操作系统解释器编译连接编译执行解释执行.java.classJava虚拟机Java是解释执行的高级编程语言JAVA平台简介Java平台包括两部分:Java应用编程接口(JavaAPI)Java虚拟机(JavaVirtualMachine)JVM(JavaVirtualMachine)在一台计算机上由软件或硬件模拟的计算机。
Java虚拟机(JVM)读取并处理经编译过的平台无关的字节码class文件。
Java编译器针对Java虚拟机产生class文件,因此是独立于平台的。
Java解释器负责将Java虚拟机的代码在特定的平台上运行。
Java的开发工具-JDK什么是JDK?JDK:Java开发工具包(JavaDevelopmentToolkit),JDK是一个简单的命令行工具集,包括软件库、编译Java源代码的编译器、执行Java字节码的解释器、测试JavaApplet 的浏览器,以及其他的实用工具。
JDK(JavaDevelopmentKit)JRE(JavaRuntimeEnvironment)JavaVM(JVM)Ja vaRuntimeClassesJDK的安装与配置下载JDK,最新版本和文档的站点:官方:http://www.javaso校内:http://192.168.102.16//计算机系课件//Java语言程序设计基础//Java环境JDK的安装与配置配置环境变量我的电脑——属性——高级——环境变量——系统环境变量变量名:path----用于指定操作系统的可执行指令的路径变量值:JDK安装目录\bin用分号与原有的变量值区分开。