




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.swfJDK:即Java Develop Kit,Java开发工具包。Java2:1998年12月,SUN公司发布了JDK1.2,开始使用“Java2”这一名称,目前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2.。J2SDK当然就是Java 2 Software Develop Kit。JRE (Java Runtime Environment),即Java运行环境,通常已包含在J2SDK中了。 如果我们仅是为了运行Java程序,而不是从事Java开发,我们可以直接下载JRE,在我们的系统上安装。Java的开发工具包(JDK):按其应用环境的不同分三种不同的版本。l J2SE (Java 2 Platform, Standard Edition) :Java 2 平台标准版,主要用于桌面程序和Java小程序的开发,我们通常所说的JDK就是指J2SE。l J2EE (Java 2 Platform, Enterprise Edition) :Java 2 平台企业版,主要用于企业级的开发,目前我们有很多的大型应用就是基于J2EE的,如有一些电子商务网站和税务局的网上报税系统就是基于J2EE的。l J2ME (Java 2 Platform, Micro Edition) :主要用于手持设备的开发,例如手机、PDA等,我们手持设备的一些小游戏和名片管理程序就是通过J2ME来开发的。相关资源的官方下载网址:Java 2 Platform, Standard Edition,v1.5.0/j2se/1.5.0/download.htmlJ2SE v 1.5.0Documentation/j2se/1.5.0/download.htmlJava Tutorial/docs/books/tutorial/information/download.htmlJava的特征:简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态的语言。2.swf我们为什么要用Java简单的 Java最初是为家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在三个方面:1、 Java的风格类似于C+,因而C+程序员初次接触Java语言,就会感到很熟悉。从某种意义上讲,Java语言是C和C+语言的一个变种,因此,C+程序员可以很快地掌握Java编程技术。2、 Java摒弃了C+中容易引发程序错误的一些特性,如指针、结构、枚举以及内存管理等。3、 Java提供了丰富的类库,可以帮助我们很方便的开发Java程序。面向对象的 面向对象可以说是Java最重要的特性,所以它支持继承、重载、多态等面向对象的特性。Java语言的设计是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。健壮的Java致力于检查程序在编译和运行时的错误。Java也是一种强类型的语言,其类型检查比C+还要严格。类型检查帮助我们检查出许多开发早期出现的错误。Java自己负责内存管理,提供了垃圾回收机制,有效的避免了C+中最头疼的内存泄漏问题。安全的 Java 的安全性可从两个方面得到保证。一方面,在Java语言里,删除了指针和释放内存等C+功能,避免了非法内存操作。另一方面,通过Java的安全体系架构来确保Java代码的安全性。当我们从网上下载Java代码 在本地执行时,Java的安全架构能确保恶意的代码不能随意访问我们本地计算机的资源,例如:删除文件,访问本地网络资源等操作都是被禁的。解释的Java代码是解释执行的,我们使用Java编译器将Java代码编译成字节码,这是一种中间代码,然后由Java解释器解释执行。而C+程序是编译执行的,C+程序代码被编译为本地机器指令,然后执行。与平台无关的Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种与机器无关的字节码格式,在Java虚拟机上运行。多线程的动态的 Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,这是我们采用C+语言进行面向对象程序设计所无法实现的。在C+程序设计过程中,每当在类中增加一个实例变量或一个成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从以下几个方面采取措施来解决了这个问题。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下来传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。一个在存储器中生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。Java还简化了使用一个升级的或全新协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载你所需要的功能程序。3. swfJava跨平台的原理Java源文件的编译过程 Java应用程序的开发周期包括编译、下载、解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码一一字节码。这一编译过程同C/C+的编译有些不同。当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全性。Java解释器的执行过程 运行JVM字节码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。装入代码的工作由“类装载器”(class loader)完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其它类。在本台计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们从外部引进的类不会相互影响。当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。 随后,被装入的代码由字节码校验器进行检查。校验器可发现操作数栈溢出,非法数据类型转换等多种错误。通过校验后,代码便开始执行了。Java字节码的两种执行方式1、 即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。(也就是编译成与硬件平台相关的代码,会加快执行速度,与C+编译执行速度基本保持一致了)2、 解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。(这种方式通过解释执行与平台无关的java字节码来完成的,相对于C+编译执行要慢一些)通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节翻译为机器代码的工作具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。 JVM规格描述JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java代码可在符合该规范的任何系统上运行。JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Byte code)的格式给出了明确的规格。这一规格包括操作码和操作数的语法和数值、标识数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储映像。这些定义为JVM解释器开发人员提供了所需的信息和开发环境。Java的设计者希望给开发人员以随心所欲使用Java的自由。JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。Java程序执行与C/C+程序执行的对比分析 如果把Java源程序想象成我们的C+源程序,Java源程序编译后生成的字节码就相当于C+源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86的计算机系统,Java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。4. swf10.swf1查看路径: set path2java文件中若有一个Public类,则只能有一个Public类,且文件名必须与这个Public类的类名一致,故Java文件中最多只存在一个Public类,如:_ public class Welcome public static void main(String args) System.out.println(Welcome !); class HelloWorld public static void main(String args) System.out.println(Hello the World !); 则它的文件名就应该保存为 Welcome.java 编译命令为:javac Welcome.java/*由于编译器javac 对文件名Welcome.java的大小写不敏感,故可以写为 javac welcome.java*/解释器命令为:java Welcome /*注意java解释器解释的是java类文件,故用Welcome类名,而非文件名Welcome.java*/3jar 的用法:-c 创建新的存档-t 列出存档内容的列表-x 展开存档中的命名的(或所有的)文件-u 更新已存在的存档-v 生成详细输出到标准输出上-f 指定存档文件名-m 包含来自标明文件的标明信-o 只存储方式;未用ZIP压缩格-M 不产生所有项的清单(manifest)文件-i 为指定的jar文件产生索引信-c 改变到指定目录,它将被递归处理。例如:上面的java文件产生的两个 Hello. class 和Welcom.class类通过jar包压缩到Lesson.jar下则操作如下: jar cvf Lesson.jar Hello. class Welcom.class 4一个点号表示当前路径,两个点号表示上一层路径,因此在设置环境变量时,通常保留当前路径,常出现点号,例如: set classpath=D: ;。5Java 的八种数据类型: 初始化值byte 1 个字节 (8bit) ( 128 127 ) 0short 2 个字节 (16bit) ( 32768 32767 ) 0char 2 个字节 (16bit) ( 0 65535 ) u0000(空)int 4 个字节 (32bit) 有符号 0long 8 个字节 (64bit) 有符号 0Lfloat 4 个字节 (32bit) 有符号 0.0Fdouble 8 个字节 (64bit) 有符号 0.0Dboolean 1 个字节 (8bit) 只有 true和false两个值 False 定义变量并分配空间后,各类型的变量自动进行初始化赋值。6纠错=public class Welcome /文件名保存为 Welcome.java public static void main(String args) byte b; b=3; /编译发现这一行没出错,说明3并不是作为int常量的. b=b*3; /*编译发现这一行出错,这是因为byte类型的变量在参与运算被自动 提升为int类型了.应改为 b=(byte)(b*3),这样运行结果为9. */ System.out.println(b); public class Welcome /文件名保存为Welcome.java public static void main(String args) float f; f=1.3; /*错误,由于java中小数常量1.3被认为是8个字节的双精度double 类型,现被赋给只有4个字节的单精度float类型,显然会丢失精度. 因此改为f=1.3f; 1.3f表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医选岗面试题目及答案
- 中医五行阴阳试题及答案
- 2025年电梯安全维护及管理员职业资格知识考试题与答案
- 气化题库大全及答案
- 网络文学出海2025年策略分析:跨文化传播视角下的文化差异应对报告
- 新型环保包装材料研发成果在肉类产品包装领域的应用报告
- 2025-2030中国烟煤细分行业竞争格局及投资前景研究报告
- 低空旅游项目航空旅游市场供需平衡与价格策略研究报告
- 2025年国考模拟试题及答案
- 国开电大2025年春季期末考试合同法试题及答案
- 2023年安徽省五蒙高速公路开发有限公司招聘笔试题库及答案解析
- (完整版)淡水生物资源调查技术规范
- 养老机构放弃抢救及心肺复苏同意书、安宁服务协议
- 皮肤、伤口、造口护理(临床护理实践指南)
- 防范化解露天矿山安全生产风险
- 新员工安全培训试题2
- 2022年中原出版传媒投资控股集团有限公司招聘笔试题库及答案解析
- TSG 81-2022 场(厂)内专用机动车辆安全技术规程
- 水利水电工程建筑物技术讲座课件
- 代课教师聘用合同(5篇)
- 光学课程设计望远镜系统结构参数设计说明
评论
0/150
提交评论