1、面向对象程序设计,主讲人:徐娇月,评分标准:平时成绩:50分出勤、课堂、练习、作业缺课一次:扣3分(缺课1/3取消考试资格)迟到一次:扣1分 课堂表现:共5分 课堂练习:25分作业:10分 考试成绩:50分,课程要求:,课前请做好预习、复习 保持课堂安静,头脑清醒,思维活跃 认真、独立、按时完成并提交作业 笔记 实验室纪律,参考书目:Java 2核心技术 卷(机械工业出版社)Core Java 2 Volume I(SUN) (第七版) Java就业培训教程(清华大学出版社) Java编程思想(机械工业出版社)Thinking in Java (第三版),第一章 Java语言概述,Java简介
2、 Java虚拟机及Java的跨平台原理 体验Java编程的过程 Java开发环境的搭建 classpath的设置 有效利用Java的文档帮助 垃圾回收器,Java简介,Java简史 1991年,帕特里克诺顿和詹姆斯戈士林带领Sun的一个工程师小组,着手设计能够用于像电视转换盒一类的消费设备的小型计算机语言。项目组名称为“Green”。 Gosling把他的语言称为“Oak”。由于已经存在一门计算机语言的名字为“Oak”,后把名字改为“Java”。 1992年,Green项目组提交了第一个产品,称为“*7”,具有非常智能的远程控制,但消费电子公司均不感兴趣。 Green项目组(升级为“第一人公司
3、(First Person,Inc)”),1994年解散。,Java简介,Java简史 1994年,Internet的www部分的壮大,Sun公司转向网络的开发。 1996年发布了Java第一版,即java1.0。但是Java1.0并不适合真正的应用开发,Java1.1填补的最明显的空缺。 1998年12月Java1.2版本发布,3天后,Sun市场部门把名字改为Java2SDK(Software Development Kit)。 1999年6月Sun公司推出的JDK1.3将Java平台划分为J2ME、J2SE和J2EE。 随后出现了1.4版、5.0版和6.0版,是在Java2版本的基础上的增
4、进。,Java简介,詹姆斯戈士林现任Sun公司副总裁及Sun研究院院士。戈士林先生以“Java 技术之父”而闻名于世。他是Java技术的创始人,他亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。Java支持的计算模式,已经成为了互联网的标准编程模式以及分布式企业级应用的事实标准。目前,戈士林先生积极致力于研究软件开发工具,使它们功能更为强大,更容易为开发人员所使用,能够快速地开发应用。戈士林先生曾创建了卫星数据拦截系统、Unix的多处理器版本、编译器、邮件系统和视窗管理器等。,James Gosling,Java简介,Java技术框架版本
5、 J2SE(Java 2 Platform Standard Edition)标准版桌面开发和低端商务应用的解决方案 J2EE(Java 2 Platform Enterprise Edition)企业版以企业为环境开发应用程序的解决方案 J2ME(Java 2 Platform Micro Edition)微型版致力于消费产品和嵌入式设备的最佳方案,Java简介,Java语言的特点和优势:Sun公司的“Java白皮书”中对Java的定义: Java: A simple, object-oriented, distributed, interpreted, robust, secure, ar
6、chitecture-neutral, portable, high-performance, multi-threaded and dynamic language. Java:一种简单的,面向对象的,分布式的,解释型的,健壮的,安全的,体系结构中立的,可移植的,高性能的,多线程的,动态的语言。,Java简介,简单的Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的垃圾收集,使得程序员不必为内存
7、管理而担忧。 面向对象的Java语言提供类、接口和继承等原语,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。总之,Java语言是一个纯的面向对象程序设计语言。,分布式的Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 健壮的Java的强类型机制、异常处理、垃圾自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。,Java简介,解释的Java代码是
8、解释执行的,我们使用Java编译器将Java代码编译成字节码,这是一种中间代码,然后由Java解释器解释执行。而C+程序是编译执行的,C+程序代码被编译为本地机器指令,然后执行。 与平台无关的(体系中立的、可移植的)Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种与机器匹配的字节码格式,在Java虚拟机上运行。,Java简介,Java虚拟机及Java的跨平台原理,Java程序编译和执行过程: Windows下c语言执行过程: Java语言执行过程:,Java虚拟机及Java的跨平台原理,Java程
9、序编译和执行过程:,只要实现了特定平台下的解释程序,Java字节码就能通过解释程序在该平台下运行。这是Java跨平台的根本原因。,Java虚拟机及Java的跨平台原理,Java平台:,Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。 并不是所有的平台下都有相应的Java字节码解释器程序(Java虚拟机),即Java并不能在所有的平台上运行。只能在已经实现了Java虚拟机的平台上运行。,Java虚拟机及Java的跨平台原理,Java虚拟机(JVM): Java虚拟机是可以运行Java字节码的模拟的计算机。 Java虚拟机附着在具体的操作系统
10、之上。本身具有一套虚拟机器指令,并有自己的栈、寄存器组等。 Java程序的跨平台主要是指字节码文件可以在任何具有java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。 Java源程序需要通过编译器编译成为.class文件(字节码文件)。,Java虚拟机及Java的跨平台原理,JVM(虚拟机)的运行过程,运行Java字节码由解释器来完成代码的装入代码的校验代码的执行,垃圾回收器,Java的一个重要的特点就是具有一个垃圾回收器,并且能够自动回收垃圾。 对内存进行释放和回收的工作是由Java运行系统承担的,使程序设计人员摆脱了自己控制
11、内存使用的风险。 Java的自动垃圾回收功能解决了两个最常见的应用程序错误:内存泄漏和无效内存的引用。 一个垃圾回收器会不定时的检查是否有不再被使用的对象,并释放它们占用的内存空间。 垃圾收集器的启用不由程序员控制,也无规律可循。,Java开发环境的搭建,Windows下JDK的安装: 安装目录: bin目录中常用命令介绍javac.exe:Java源文件编译工具java.exe:Java字节码解释程序 在命令行窗口中执行javac命令 错误有可能发生,Java开发环境的搭建,环境变量介绍: 系统环境变量就是在操作系统中定义的变量,可供操作系统上所有的应用程序使用。如何查看系统环境变量: 命令
12、行窗口查看:set Windows中查看,Java开发环境的搭建,如何path设置系统环境变量: path环境变量的作用是设置供操作系统去寻找和执行应用程序的路径。 如果操作系统在当前路径下没有找到想要执行的程序和命令,操作系统会按path环境变量制定的目录依次去寻找,以最先找到的为准。 Windows中设置:设置一次,系统会保存,但不会影响已经运行起来的程序。命令行窗口设置:只影响当前这个窗口。set path=c:Javajdk1.5.0_08bin;%path%; 我们希望能够在任意路径下运行javac.exe和java.exe等命令,应当在path变量中加上它们所在的路径。,体验Jav
13、a编程的过程,创建第一个java应用程序1. 用记事本编写java程序源代码public class HelloWorld public static void main(String args)System.out.println(“Hello World!”);2. 将程序保存为文件名“HelloWorld.java”形式的java文件。3. 在命令行窗口执行javac HelloWorld.java 命令,将java文件编译成HelloWorld.class文件,即字节码文件。,体验Java编程的过程,3. 在命令行窗口执行java HelloWorld命令运行字节码。4. 运行结果:将
14、会在命令行窗口输出“Hello World!”实例1-HelloWorld 程序须知: Java中的程序必须以类(class)的形式存在,一个类要能被解释器直接启动运行,这个类必须有main方法,Java虚拟机运行时首先调用这个类的main方法,main函数的写法固定。 如果在class之前没有使用public修饰符,源文件名可以是一切合法的名称,但一般情况下和某个类名相同,而带有public修饰符的类名必须与源文件名相同。 println()等于print(“n”) Java严格区分大小写。,classpath的设置,通过实验来了解classpath的作用: 在命令行窗口下进入一个除d:my
15、java以外的目录,运行java HelloWorld,结果屏幕提示找不到HelloWorld这个类。 执行set classpath=d:myjava ,再运行java HelloWorld ,结果正常。 进入d:myjava目录(即HelloWorld.class所在的目录),执行set classpath=d:mytemp ,找不到类。表明不会在当前路径下寻找,只找classpath指定的路径。 在d:myjava目录,执行set classpath=d:mytemp;或set classpath= ,结果正常。 让Java虚拟机在任何时候都会在当前路径下寻找要使用的类,需set cla
16、sspath=d: myjava;. 或 set classpath =.;d: myjava,classpath的设置,注意: 文件扩展名是否正确。不要隐藏已知文件类型的扩展名。 Java命令后跟的参数是类名,而不是文件名。 在配置Java环境变量时,经常会因为空格导致错误set path =D:jdk1.5.0_04bin;set path= D:jdk1.5.0_04bin;set classpath=c:Documents and SettingsAdministratorMy Documents; 快速得到路径字符串 在命令行窗口中复制和粘贴,有效利用Java的文档帮助,Sun公司为JDK工具包提供了一整套文档资料,习惯上称之为JDK文档。 可以从Sun公司的网站http:/下载最新的JDK文档。 JDK文档通常有两种格式:HTML格式:官方的,最新的CHM格式:爱好者整理制作,支持模糊查询,总结,构建自己的编程环境 掌握环境变量path和classpath,运用copy 熟悉常见的错误 熟悉java程序的简单规则 熟悉java程序的编译和运行,