《Java讲义》教师:王明军武汉大学资源与环境科学学院地理信息科学系Chap1.绪论1、Java历史及发展Java是一种解释型的、面向对象的编程语言。历史:1991年,SUNMicroSystem公司的JameGosling、BillJoe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。发展:面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。(1994年以来)应用:适于开发各种应用,尤其是基于网络的应用、嵌入式应用等。2、Java语言特点Java=“C++”-“复杂性和奇异性”+“安全性和可移植性”(1)面向对象Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。(2)操作平台无关性严格的语言定义:没有“依据机器的不同而不同”或“由编译器决定”等字眼,最后的目标码都是一致的。源程序Java编译器SPARCpentiumPowerpc中间PowerpcpentiumSPARC二进制源程序SPARCPowerpcpentiumPowerpcpentiumSPARC编译器二进制Java解释器编译型和解释型语言的工作模式类、类库装载(库)链接Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。1调入包含、继承所用到的所有类,内存分配确定,变成真正可执行编译,没有绝对地址的机器码不同的操作系统有不同的虚拟机。它类似一个小巧而高效的CPU。Bytecode代码是与平台无关的是虚拟机的机器指令。Java字节代码运行的两种方式:interpreter(解释方式)Just-in-time(即时编译):有代码生成器将字节代码转换成本机的机器代码,然后可以以较高速度执行.(3)安全问题Java是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性:�毁灭系统资源�消耗系统资源�挖掘系统或个人机密�骚扰正常工作的进行Bytecode的运行�加载代码由class(Bytecode)loader完成。�校验代码由Bytecodeverifier完成。�执行代码由runtimeinterpreter完成。Java源程Java编译器Java系统执行BytecodeBytecode解字节码校验不存在伪造的指针不违反访问权限不非法访问对象Java的编译与执行不导致操作栈溢出JavainterpreterJust-in-timecompilerRuntimeSyst...