JAVA基础教程.ppt_第1页
JAVA基础教程.ppt_第2页
JAVA基础教程.ppt_第3页
JAVA基础教程.ppt_第4页
JAVA基础教程.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言的产生及其特点 Java产生的历史与现状它的优点表现在 便宜易于使用和管理 用户不管使用何种类型的机器和操作系统 界面是统一的Intrnet浏览器 而数据库 Web页面 应用程序 用Java编的Applet 则存在WWW服务器上 无论是开发人员 还是管理人员 抑或是用户都可以受益于该解决方案 Java语言的特点 是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言 简单性主要体现在以下三个方面 Java的风格类似于C 因而C 程序员是非常熟悉的 从某种意义上讲 Java语言是C及C 语言的一个变种Java摒弃了C 中容易引发程序错误的地方 如指针和内存管理 Java提供了丰富的类库 面向对象可以说是最重要的特性Java语言的设计完全是面向对象的 它不支持类似C语言那样的面向过程的程序设计技术 Java支持静态和动态风格的代码继承及重用 单从面向对象的特性来看 Java类似于SmallTalk 但其它特性 尤其是适用于分布式计算环境的特性远远超越了SmallTalk 分布Java包括一个支持HTTP和FTP等基于TCP IP协议的子库 Java应用程序可凭借URL打开并访问网络上的对象其访问方式与访问本地文件系统几乎完全相同为分布环境尤其是Internet提供动态内容无疑是一项非常宏伟的任务Java的语法特性却使我们很容易地实现这项目标 健壮Java致力于检查程序在编译和运行时的错误 类型检查帮助检查出许多开发早期出现的错误 自已操纵内存减少了内存出错的可能性 还实现了真数组 避免了覆盖数据的可能 大大缩短了开发Java应用程序的周期 提供Null指针检测数组边界检测异常出口字节代码校验 结构中立为了建立Java作为网络的一个整体 Java将它的程序编译成一种结构中立的中间文件格式只要有Java运行系统的机器都能执行这种中间代码 现在 Java运行系统有Solaris2 4 SPARC Win32系统 Windows95和WindowsNT 等Java源程序被编译成一种高层次的与机器无关的byte code格式语言 这种语言被设计在虚拟机上运行 由机器相关的运行调试器实现执行 安全性 可从两个方面得到保证一方面 在Java语言里 象指针和释放内存等C 功能被删除 避免了非法内存操作 另一方面 当Java用来创建浏览器时 语言功能和浏览器本身提供的功能结合起来 使它更安全 Java语言在你的机器上执行前 要经过很多次的测试 它经过代码校验 检查代码段的格式 检测指针操作 对象操作是否过分以及试图改变一个对象的类型 Byte code校验如果byte code通过代码校验 没有返回错误 我们可知道 代码没有堆栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据转换 如将整数转换成指针 访问对象操作是合法的 类装载ClassLoader通过将本机类与网络资源类的名称分开 来保持安全性 因为调入类时总要经过检查 这样避免了特洛伊木马现象的出现 从网络上下载的类被调进一个与源相关的私有的名字域 当一个私有类访问另一个类时 build in 本机类 首先被检查 然后检查相关的类 这样就避免了破坏本机类情况的出现 可移植的同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行 这成为Java应用软件便于移植的良好基础 但仅仅如此还不够 如果基本数据类型设计依赖于具体实现 也将为程序的移植带来很大不便 例如在Windows3 1中整数 Integer 为16bits 在Windows95中整数为32bits 在DECAlpha中整数为64bits 在Intel486中为32bits 通过定义独立于平台的基本数据类型及其运算 Java数据得以在任何硬件平台上保持一致 Java语言的基本数据类型及其表示方式如下 byte8 bit二进制补码short16 bit二进制补码int32 bit二进制补码long64 bit二进制补码float32 bitIEEE754浮点数double32 bitIEEE754浮点数char16 bitUnicode字符 在任何Java解释器中 数据类型都是依据以上标准具体实现的 因为几乎目前使用的所有CPU都能支持以上数据类型 8 64位整数格式的补码运算和单 双精度浮点运算 Java编译器本身就是用Java语言编写的 Java运算系统的编制依据POSIX方便移植的限制 用ANSIC语言写成 Java语言规范中也没有任何 同具体实现相关 的内容 解释的Java解释器 运行系统 能直接运行目标代码指令 链接程序通常比编译程序所需资源少 所以程序员可以在创建源程序上花上更多的时间 高性能如果解释器速度不慢 Java可以在运行时直接将目标代码翻译成机器指令 Sun用直接解释器一秒钟内可调用300 000个过程 翻译目标代码的速度与C C 的性能没什么区别 多线程多线程功能使得在一个程序里可同时执行多个小任务 线程 有时也称小进程 是一个大进程里分出来的小的独立的进程 因为Java实现的多线程技术 所以比C和C 更键壮多线程带来的更大的好处是更好的交互性能和实时控制性能 当然实时控制性能还取决于系统本身 UNIX Windows Macintosh等 在开发难易程度和性能上都比单线程要好 任何用过当前浏览器的人 都感觉为调一副图片而等待是一件很烦恼的事情 在Java里 你可用一个单线程来调一副图片 而你可以访问HTML里的其它信息而不必等它 动态动态特性是其面向对象设计方法的扩展 它允许程序动态地装入运行过程中所需要的类 这是C 语言进行面向对象程序设计所无法实现的 在C 程序设计过程中 每当在类中增加一个实例变量或一种成员函数后 引用该类的所有子类都必须重新编译 否则将导致程序崩溃 Java从如下几方面采取措施来解决这个问题 编译器不是将对实例变量和成员函数的引用编译为数值引用 而是将符号引用信息在字节码中保存下传递给解释器 再由解释器在完成动态连接类后 将符号引用信息转换为数值偏移量 这样 一个在存储器生成的对象不在编译过程中决定 而是延迟到运行时由解释器确定的 这样 对类中的变量和方法进行更新时就不至于影响现存的代码 解释执行字节码时 这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次 随后代码便可以全速执行 在运行时确定引用的好处是可以使用已被更新的类 而不必担心会影响原有的代码 如果程序连接了网络中另一系统中的某一类 该类的所有者也可以自由地对该类进行更新 而不会使任何引用该类的程序崩溃 简化了使用一个升级的或全新的协议的方法 如果你的系统运行Java程序时遇到了不知怎样处理的程序 没关系 Java能自动下载你所需要的功能程序 Java程序开发与运行环境 JDK环境 Java不仅提供了一个丰富的语言和运行环境 而且还提供了一个免费的Java开发工具集 JavaDevelopersKits 简称JDK 编程人员和最终用户可以利用这个工具来开发java程序或调用Java内容 JDK包括以下工具 javacJava语言编译器 输出结果为Java字节码javaJava字节码解释器javapDisassembelerJava字节码分解程序 本程序返回Java程序的成员变量及方法等信息 javaprof资源分析工具 用于分析Java程序在运行过程中调用了哪些资源 包括类和方法的调用次数和时间 以及各数据类型的内存使用情况等 javahC代码处理工具 用于从Java类调用C 代码javaAppletViewer小应用程序浏览工具 用于测试并运行Java小应用程序javaDebuggerAPIJava调试工具APIPrototypeDebuggerJava调试工具原型 Java程序开发与运行环境 JDK环境 Java开发环境还包括Java类库 包括I O类库 用户界面类库 网络类库等 和HotJavaWWW浏览器 其中 HotJava浏览器提供了在WWW环境下运行Java代码的一个运行系统 而且还为WWW开发人员提供了一个Java开发框架Java解释器是面向Java程序的一个独立运行系统 它可以一种稳定 高性能方式运行那些独立于平台的Java字节码 Java编译器则用于生成这些字节码 Java程序开发与运行环境 JDK环境 Java程序的编译编译程序是javac exe javac命令将Java程序编译成字节码 然后你可用java解释器java命令来解释执行Java字节码 Java程序源码必须存放在后缀为 java的文件里 Java程序里的每一个类 javac都将生成与类相同名称但后缀为 class文件 编译器把 class文件放在 java文件的同一个目录里 除非你用了 d选项 当你引用到某些自己定义的类时 必须指明它们的存放目录 这就需要利用环境变量参数CLASSPATH 环境变量CLASSPATH是由一些被分号隔开的路径名组成 如果传递给javac编译器的源文件里引用到的类定义在本文件和传递的其它文件中找不到 则编译器会按CLASSPATH定义的路径来搜索 例如 CLASSPATH C java classes则编译器先搜索当前目录 如果没搜索到 则继续搜索C java classes目录 注意 系统总是将系统类的目录缺省地加在CLASSPATH后面 除非你用 classpath选项来编译 javac g是一个用于调试的未优化的编译器 功能与用法和javac一样 javac的用法如下 javac g O debug depend nowarn verbose classpathpath nowrite ddir file java classpathpath定义javac搜索类的路径 它将覆盖缺省的CLASSPATH环境变量的设置 路径一般格式如下 例如 C java doc classes C tools java classes表示编译器遇到一个新类 它先在本文件中查找它的定义 如果没有 则在本文件所处目录下其它文件中查找它的定义 如果还没有 则继续搜索C java doc classes目录中的所有文件 以此类推 ddirectory指明类层次的根目录 格式如下 javac dMyProgram java 这样将MyProgram java程序里的生产的 class文件存放在my dir目录里 g带调试信息编译 调试信息包括行号与使用java调试工具时用到的局部变量信息 如果编译没有加上 O优化选项 只包含行号信息 nowarn关闭警告信息 编译器将不显示任何警告信息 O优化编译static final private函数 注意你的类文件可能更大 verbose让编译器与解释器显示被编译的源文件名和被加载的类名 环境变量CLASSPATH用来提供给系统搜索用户定义的类的缺省路径 Java程序的调试使用java调试器jdb导游在早期前Betal版的Java调试器jdb是命令行形式的 如用Sun公司的dbx调试器 用jdb来调试Java应用程序 在调试前要确证你的应用程序是带标志 g编译的 例如 javac gHelloWorld javahelp命令 显示jdb里的可用命令列表 helpthreads threadgroup 列出线程thread 设置缺省线程Suspend threadsid s 将线程挂起resume threadid s 重新启动线程where id a1 打印线程的堆栈threadgroups 列出线程组号threadgroup 设置当前线程组print id s 打印对象或域dump id s 打印所有对象信息locals 打印当前堆栈所有局部变量classes 列出当前所知的类methods 列出一个类的成员函数stopin 在一个成员函数里设置断点stopat 在一行里设置断点up nframes 在线程堆栈里往上移down nframes 在线程堆栈里往下移clear 清除一个断点step 执行当前行cont 从断点处继续执行catch 为指定的情况中断ignor 为指定的情况忽略list linenumber 打印源程序use Sourcefilepath 显示或改变源路径memeory 报告内存使用情况loadclassname 加载Java类以便调试run 开始执行加载的类 重复以上的命令help 列出所有的命令exit orquit 离开调试器 Java程序的执行java java语言解释器java命令解释java字节码语法 java options classnamejava g options classname描述 java命令由java编译器javac输出的Java字节码 Classname 要执行的类名称 注意任意在类名称后的参数都将传递给要执行类的main函数 java执行完main函数后推出 除非main函数创建了一个或多个线程 如果main函数创建了其它线程 java总是等到最后一个线程推出才推出 选项 cs checksource当一个编译过的类调入时 这个选项将比较字节码更改时间与源文件更改时间 如果源文件更改时间靠后 则重新编译此类并调入此新类 classpathpath定义javac搜索类的路径 它将覆盖缺省的CLASSPATH环境变量的设置 mxx设置最大内存分配池 大小为x x必须大于1000bytes 缺省为16兆 msx设置垃圾回收堆的大小为x x必须大于1000bytes 缺省为1兆 noasyncgc关闭异步垃圾回收功能 此选项打开后 除非显式调用或程序内存溢出 垃圾内存都不回收 本选项不打开时 垃圾回收线程与其它线程异步同时执行 ssx每个Java线程有两个堆栈 一个是java代码堆栈 一个是C代码堆栈 ss选项将线程理C代码用的堆栈设置成最大为x ossx每个Java线程有两个堆栈 一个是java代码堆栈 一个是C代码堆栈 oss选项将线程理java代码用的堆栈设置成最大为x v verbose让java解释器在每一个类被调入时 在标准输出打印相应信息 环境变量CLASSPATH Java程序开发与运行环境 JWS环境 JavaWorkShop是SUN公司的一个新产品 它是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论