资源预览内容
第1页 / 共128页
第2页 / 共128页
第3页 / 共128页
第4页 / 共128页
第5页 / 共128页
第6页 / 共128页
第7页 / 共128页
第8页 / 共128页
第9页 / 共128页
第10页 / 共128页
亲,该文档总共128页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第1章 Java语言概述,学习目标 本章要点 上机练习 习 题,学习目标,本章介绍Java语言的基本概念,并进一步描述Java的语法、工作原理、运行环境和特点,然后通过示例详细介绍Java的安装,并针对Java应用程序和小应用程序的区别,结合示例做相应的比较。通过本章的学习使读者会对Java有更进一步的认识,从而了解Java语言的前景和方向。,本章要点,Java语言的过去与未来 Java的基本体系 SDK的安装与配置 Java应用程序的开发,Java语言的过去与未来,Java语言是目前流行的一种网络编程语言,它的面向对象、跨平台和分布应用等特点给编程人员带来一种崭新的计算概念,使WWW由最初的单纯提供静态信息发展到现在的提供各种各样的动态服务。,Java语言的过去与未来,Java语言的起源 Java语言的发展前景,Java语言的起源,最早Java语言的出现是源于独立开发平言的需要,当时人们希望能编写出嵌入到各种家用电器等设备的芯片上、且易于维护的程序。它的出现是为了弥补当时的编程语言,比如C、C+等只能对特定的CPU芯片进行编译的缺陷。,Java语言的发展前景,在2005年的Java One开发者大会上,James Gosling做了题为“Java技术下一个10年贡献”的演讲,James Gosling认为,Java技术提高了计算的“流动性”,就如同货币的发明提高了商品的流动性一样。,Java语言的发展前景,目前,全球Java开发人员已经超过450万,因此Java社区是一个充满活力和创新精神的团队,这正是Java更加繁荣的保障。为了保持Java的增长和推进Java社区的参与, Sun在Java One开发者大会上宣布开放Java核心源代码,以鼓励更多的人参与到社团活动中来,这是Sun为推进社团发展和维护Java技术兼容性而迈出的重要一步,同时也是Java技术在创新和社会进步上继续发挥重要作用的标志。,Java语言的发展前景,随着Java的开源,在未来的十年里,Java的应用范围将变得更广。数字媒体将是Java的下一个目标,同时,Java将教育和健康作为未来Java发展过程中的两大重点应用领域。,Java的基本体系,Java作为一种高级编程语言,与其他语言相比具有一些独特的结构和方法,下面将对这些内容作一个详细的介绍。 Java的语法 Java的工作原理 Java的运行环境 Java语言的特点,Java的语法,Java是面向对象的程序设计语言,其基本语法和C语言大致相同。从一定角度上讲,C语言加上面向对象功能就是C+,那么Java与C+有什么区别呢?简要的说,Java改进了C+的一些缺点,并增加了一些新的功能,从而变得比C+更加简单、易学,编写出来的程序也更具健壮性。,Java的语法,下面就对它们进行一个简单的比较。 ava去掉了C语言的指针。如指针使用得当,对增强程序的功能有很大帮助,一旦使用不当,经常会导致死机。,Java的语法,Java没有了C语言中的预处理器,如#ifdef、#define、常量声明等都不使用了,当然也少了#include命令,从而也没有头文件(.h文件)。和C+相比,Java不支持多继承的概念,目的是为了避免对象和对象之间的关系复杂化。,Java的语法,Java增加了垃圾回收机制、异常处理和新的限定词等功能。这些几乎全部都是基于整个系统和程序本身安全性的考虑。 不论在何种平台上,Java基本数据类型的大小是不变的。,Java的工作原理,Java语言引入了Java虚拟机,具有跨平台运行的功能,能够很好地适应各种Web应用。同时,为了提高Java语言的性能和健壮性等特点,还引入了如垃圾回收机制等新功能,通过这些改进让Java具有其独特的工作原理。,Java的工作原理,Java虚拟机 无用内存自动回收机制 代码安全性检查机制,Java虚拟机,Java虚拟机(Java Virtual Machine,简称JVM)是软件模拟的计算机,它可以在任何处理器上安全兼容地执行保存在.class文件中的字节码。Java虚拟机的“机器码”保存在.class文件中,有时也可以称之为字节码文件。,Java虚拟机,Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。应此在运行时,Java源程序需要通过编译器编译成为.class文件。,Java虚拟机,Java虚拟机的建立需要针对不同的软硬件平台来实现,既要考虑处理器的型号,也要考虑操作系统的种类。由此在SPARC结构、X86结构、MIPS和PPC等嵌入式处理芯片上,在UNIX、Linux、windows和部分实时操作系统上都可实现Java虚拟机。,无用内存自动回收机制,在程序的执行过程中,部分内存在使用过后就处于废弃状态,如果不及时进行回收,很大可能会导致内存泄漏,进而引发系统崩溃。,无用内存自动回收机制,在C+语言中是由程序员进行内存回收的,程序员需要在编写程序时把不再使用的对象内存释放掉,这种人为管理内存释放的方法往往由于程序员的疏忽而致使内存无法回收,同时也增加了程序员的工作量。,代码安全性检查机制,安全和方便总是相对矛盾的。Java编程语言的出现使得客户端电脑可以方便地从网络上传或下载Java程序到本地电脑上运行,但是如何保证该Java程序不携带病毒或者没有其他危险目的呢?,代码安全性检查机制,为了确保Java程序执行的安全性,Java语言通过applet程序来控制非法程序的安全性,也就是有了它才确保Java语言的生存。,代码安全性检查机制,Java字节码的执行需要经过3个步骤,具体操作步骤如下: (1)由类装载器(class loader)负责把类文件(.class文件)加载到Java虚拟机中,在此过程需要检验该类文件是否符合类文件规范。,代码安全性检查机制,(2)字节码校验器(bytecode verifier)检查该类文件的代码中是否存在着某些非法操作,例如applet程序中写本地电脑文件系统的操作。 (3)如果字节码校验器检验通过,由Java解释器负责把该类文件解释成为机器码进行执行。,Java的运行环境,无论哪种语言都需要有它特定的运行环境也就是平台,Java语言同样不例外,但是如何理解Java程序硬件环境无关呢? 几乎所有的语言都需要通过编译或者解释才可以被电脑执行,但是Java有一点不同,它同时需要这两个过程。,Java的运行环境,其实,也正是因为这个原因才使Java这种语言具有了平台无关性。当完成一个Java源程序后,首先,通过Java翻译程序将它编译成一种叫做字节码的中间代码,然后再由Java平台的解释器将它转换成为机器语言来执行一平台的核心就是JVM。,Java的运行环境,Java的编译过程与其他的语言不同,像C+这样的语言,在编译时,它与电脑的硬件平台信息密不可分的。编译程序通过查表将所有指令的操作数和操作码等转换成内存的偏移量,即程序运行时的内存分配方式,目的是保证程序正常运行。,Java的运行环境,Java平台具有这样的特性和它的结构有关。通常一个程序运行的平台是一个硬件或者软件运行的环境,目前比较流行的是Windows 2000, Linux, Solaris,和MacOS。Java的平台不太一样,它由两个部分组成即JVM和应用程序设计接口。,Java的运行环境,JVM Java应用程序设计接口,JVM,JVM是Java平台的核心,为了让编译产生的字节码能更好的解释与执行,因此把JVM分成了6个部分:JVM解释器、指令系统、寄存器、栈、存储区和碎片回收区。 JVM解释器:即这个虚拟机处理字段码的CPU。,JVM,JVM指令系统:该系统与电脑很相似,一条指令分成操作码和操作数两部分组成。操作码为8位二进制数,主要是为了说明一条指令的功能,操作数可以根据需要而定,JVM有多达256种不同的操作指令。,JVM,寄存器:JVM有自己的虚拟寄存器,这样就可以快速地与JVM的解释器进行数据交换。为了功能的需要,JVM设置了4个常用的32位寄存器:pc(程序计数器)、optop(操作数栈顶指针)、frame(当前执行环境指针)和vars(指向当前执行环境中第一个局部变量的指针)。,JVM,VM栈:指令执行时数据和信息存储的场所和控制中心,它提供给JVM解释器运算所需要的信息。 存储区:JVM存储区就是用于存储编译过后的字节码等信息。,JVM,碎片回收区:JVM碎片回收是指将使用过的Java类的具体实例从内存进行回收,这就使得开发人员免去了自己编程控制内存的麻烦和危险。随着JVM的不断升级,其碎片回收的技术和算法也更加合理。,Java应用程序设计接口,Java Application Programming Interface,简称Java API,其中文名为Java应用程序设计接口,它是一个软件集合,其中有许多开发时所需要的控件,用它来辅助开发。,Java应用程序设计接口,Java API和JVM构成了Java运行的基本的环境,这两种软件整合在一起处于电脑之上,通过这两种软件,Java平台把一个Java应用程序从硬件系统分离开,从而很好地保证了程序的独立性。,Java语言的特点,Java语言作为目前使用最为广泛的网络编程语言之一,它具有简单、面向对象、稳定、与平台无关、解释型、多线程和动态等特点。 简单 面向对象 与平台无关,Java语言的特点,解释型 多线程 动态性 安全性 可移植性 高性能,简单,如果学习过C+,会感觉Java非常类似,因为Java中许多基本语句的语法和C+几乎一样。但是Java并不是C+的增强版,Java和C+是两门不同类型的电脑语言,它们各有各的优势,将会长期并存下去。目前Java和C+已成为软件开发者应当掌握的语言之一。,面向对象,面向对象是指把软件组成一系列合并了数据结构和行为的对象。面向对象的程序更符合人的思维模式,更容易编写。,与平台无关,与平台无关是Java语言最大的优势。其他语言编写的程序面临的一个主要问题是操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或者无法运行。Java虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了JVM的电脑上正确运行,可以说“一次写成,处处运行”。,解释型,C、C+等语言,都是只能对特定的CPU芯片进行编译。生成机器代码,该代码的运行就和特定的CPU有关。,解释型,Java不针对特定的CPU芯片进行编译,而是把程序编译为字节码,字节码很接近机器码,可以在提供了JVM的任何系统上被解释执行。因为不针对某类电脑,所以不会出现C语言中的类似问题。,多线程,支持内置的多线程也Java的其特点之一,多线程允许同时完成多个任务。目前的单核计算机处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象是多个任务在同时执行。,多线程,C+没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行程序设计。,动态性,Java程序的基本组成单元是类。有些类是用户编写的,有些是从类库中调用,而类又是程序运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,而不像C+那样,每当其类库升级之后,相应的程序都必须重新修改和编译。,安全性,Java语言在编译及运行程序时,都要进行严格的检查。作为一种强制类型语言,Java在编译和连接时都需进行大量的类型检查,防止不匹配问题的发生。如果引用一个非法类型、或执行一个非法类型操作,Java将在解释时指出该错误。,安全性,在Java程序中没有采用地址计算的方法来实现指针访问内存单元,大大减少了错误发生的可能性,而且Java的数组也不使用指针实现,这样就可以在检查中避免数组越界的发生。还有无用内存自动回收机制也增加了Java的可靠性。,安全性,另一方面,作为网络语言,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号