欢迎来到天天文库
浏览记录
ID:18877933
大小:325.50 KB
页数:31页
时间:2018-09-20
《《java讲义》》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《Java讲义》教师:王明军武汉大学资源与环境科学学院地理信息科学系Chap1.绪论1、Java历史及发展Java是一种解释型的、面向对象的编程语言。历史:1991年,SUNMicroSystem公司的JameGosling、BillJoe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。发展:面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。(1994年以来)应用:适于开发各种应用,尤其是基于网络的应用、嵌入式应用等。2、Java语言特点Java=“C+
2、+”-“复杂性和奇异性”+“安全性和可移植性”(1)面向对象Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。(2)操作平台无关性严格的语言定义:没有“依据机器的不同而不同”或“由编译器决定”等字眼,最后的目标码都是一致的。编译型和解释型语言的工作模式编译器二进制Java编译器Java解释器二进制PowerpcPower
3、pcPowerpcPowerpc源中源程间码程序序pentiumpentiumpentiumpentiumSPARCSPARCSPARCSPARC类、类库装载(库)链接Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。1Java的编译与执行编译,没有绝对地址调入包含、继承所用到的所有类,内存分配确定,变成真正可执行的机器码Java
4、源程序Bytecode载入器不存在伪造的指针字节码校验器不违反访问权限Java编译器不非法访问对象Bytecode解释器不导致操作栈溢出JavaBytecode系统执行平台不同的操作系统有不同的虚拟机。它类似一个小巧而高效的CPU。Bytecode代码是与平台无关的是虚拟机的机器指令。Java字节代码运行的两种方式:interpreter(解释方式)Just-in-time(即时编译):有代码生成器将字节代码转换成本机的机器代码,然后可以以较高速度执行.JavaJust-in-timeinterpret
5、ercompilerRuntimeSystemOperatingSystemHardware(3)安全问题Java是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性:毁灭系统资源消耗系统资源挖掘系统或个人机密骚扰正常工作的进行Bytecode的运行加载代码由class(Bytecode)loader完成。校验代码由Bytecodeverifier完成。执行代码由runtimeinterpreter完成。2Java的安全措施限定对象的public存取权限protected
6、系统堆栈溢出private参数类型一致final语言定义Java源程序Bytecode载入器(.java文件)Bytecode检查取消指针Java编译器Bytecode解释器自动回收垃圾程序执行系统JavaBytecode系统执行平台(.class文件)WWW浏览器限制Java小应用程序的不正当使用(4)多线程Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成
7、特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。(5)可移植性(跨越多个平台)(6)分布性(克服空间上的障碍)(7)高性能(相对于其他解释型语言)(8)健壮性((9)Java与C及C++的区别不再有全局变量不再有#include和#define等预处理功能不再有structure、union及typedef等不再有函数、不再有指针、不再有多重继承不再有goto语句不再有操作符重载(OperatiorOverloading)取消自动类型转换,要求强制转换
8、自动进行内存管理3.Java开发工具包括:3Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器,用来调试java程序。Javap:反编译,将类文件还原回方法和变量。javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器,用来解释已经转换成Bytecode的java小应用程序。1.
此文档下载收益归作者所有