240 likes | 459 Views
Java 语言程序设计. 张海旸 北京邮电大学计算机学院 zhhy@bupt.edu.cn. 第 1 章 Java 简介. 1.1 Java 语言的发展历程 1.2 Java 语言的特点 1.3 Java 程序分类. 课前思考. 大家回想一下,在 PC 下用 windows 编写的程序能够不做修改就直接拿到 UNIX 系统上运行吗? 在 Java 语言出现之前是否存在其它 跨平台 的语言? 有那些语言是面向过程的?有那些语言是面向对象的? C++ 呢?. 学习目标. 了解 java 语言产生的历史和工作原理; 初步接触 java 程序的两种方式:
E N D
Java语言程序设计 张海旸 北京邮电大学计算机学院 zhhy@bupt.edu.cn
第1章 Java简介 1.1 Java语言的发展历程 1.2 Java语言的特点 1.3 Java程序分类
课前思考 • 大家回想一下,在PC下用windows编写的程序能够不做修改就直接拿到UNIX系统上运行吗? • 在Java语言出现之前是否存在其它跨平台的语言? • 有那些语言是面向过程的?有那些语言是面向对象的?C++呢?
学习目标 • 了解java语言产生的历史和工作原理; • 初步接触java程序的两种方式: • Application • Applet; • 学习阅读java帮助文档; • 学会安装java开发环境和帮助文档; • 学会编写小的java程序,并生成相应的帮助文档。 • 掌握java程序的结构、编程规范;
难点和重点 • Java虚拟机 • 垃圾内存自动回收机制 • Java语言的特点 • Java编程规范 • Java类库帮助文档的浏览和生成
1.1 Java语言的春秋 Java语言在互联网时代获得巨大成功
2.Java的发展动态 • 电子商务解决方案:Java+XML • 分布式计算:Jini • 消费电子:Personal Java • 手机:J2ME • 交互式电视:JavaTV • 实时Java:Real Time Java • Peer 2 Peer:JXTA • J2EE和J2ME的广泛应用
1.2 Java语言的原理 Java的三大实现机制: Java 虚拟机(Java Virtual Machine) 垃圾内存收集机制(Garbage Collection) 代码安全性检测(Code Security)
为什么要用Java? • 简单的 • 面向对象的 • 健壮的 • 安全的 • 解释的 • 结构体系中立的(与平台无关的) • 多线程的 • 动态的语言
简单性(c++ - - ) Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。 Java语言的简单性主要体现在: • Java的风格类似C++,C++程序员初次接触Java语言,就会感到熟悉.从某种意义上讲,Java语言是C++的一个变种。(便于理解和转换) • Java摒弃了C++中容易引发程序错误的一些特性,如指针,结构,枚举以及内存管理等。 • Java提供了丰富的类库,可以帮助我们很方便的开发Java程序. • 小,基本的解释器及类支持大约为40KB,加上基础标准类库和对线程的支持大约增加175KB
面向对象 面向对象是Java的最重要特性,它支持: • 继承,重载,多态等面向对象的特性; • Java语言的设计是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
Java 是健壮的 • 程序的健壮性即是程序的可靠性 • Java非常重视及早检查错误,Java编译器可以查处许多其它编译器运行时才能发现的错误 • Java不支持指针,从而避免了对内存直接操作容易造成的数据破坏;Java自动回收内存. • Java具有实时异常处理的功能,Java强制程序员编写异常处理的代码,能够捕获并响应意外情况
Java 是安全的 • 作为Internet程序设计语言,Java用于网络和分布式环境 • Java执行多层安全机制用来保护系统不受恶意程序攻击和破坏 • 不允许Applet读写计算机的文件系统,防止对文件破坏、传播病毒等 • 不允许Applet运行浏览器所在计算机上的任何程序 • 除了存储Applet的服务器之外,不允许Applet建立用户计算机与任何其他计算机相连
Java源代码 Java编译器 Java字节码 Java解释器 CPU Java 是解释执行的 • Java的源程序首先由编译器(javac.exe)编译成字节码 • 再由解释器(java.exe)解释执行 • Java解释器能直接在任何机器上执行Java字节码
Java 是体系结构中立的 • Write once, Run Anywhere • 即Java的平台无关性 • Java 程序被编译成一种与体系结构无关的字节代码 • 只要安装了Java虚拟机,Java程序就可以在任意处理器上运行,Java解释器得到字节码后,对他进行转换使他能够在不同的平台上运行 • Java虚拟机在操作系统级得到统一支持
Windows下 C 语言编程过程 Java 语言编程过程 C 源程序(扩展名.c) Java 源程序(扩展名.java) C编译程序 Java编译程序 Windows可执行文件 (扩展名.exe) Java字节码文件 (扩展名.class) 执行 执行 Java虚拟机(JVM) Windows操作系统 Windows下 Java字节码 解释程序 Linux下 Java字节码 解释程序 能直接解释 Java字节码 的CPU 执行 执行 Windows 操作系统 Linux 操作系统 Java 是体系结构中立的(续)
休息一下:两个问题? • Java是跨平台的?JVM呢? • 跨平台究竟是如何实现的?
可移植性 Java语言的平台无关性,成为了Java语言应用程序方便地移植到网络上不同机器的良好基础,使得Java语言应用程序在已配备了Java语言解释及运行环境的任一台机器上运行是可行的。 • 可扩展性 由于Java语言是一种基于C++的编程语言,它们之间有很多相似性,便于扩展。当然,Java语言的可扩展性还体现在:Java语言可以把内部的方法映射成软件库所定义的功能,且可以动态地与虚拟机链接。
多线程 Java语言本身提供了一个Thread类和一组内置的方法,它负责生成线程、执行线程或者查看线程的执行状态。 所以程序员要设计多线程程序时,只要继承上述的那个类和调用相应的方法就可以解决了,从而也提高了程序执行的效率。
动态性 • Java语言的动态性是其面向对象设计方法的扩展.它允许程序动态地装入运行过程中所需要的类,即可以在本地或网上动态地加载类,或者说在程序的执行过程中可以随意地增加新方法、实例变量等。 • Java还简化了使用一个升级的或全新协议的方法.如果你的系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载你所需要的功能程序.
Java的性能?—Java字节码的两种执行方式 • 即时编译方式:解释器先将字节码编译成机器码,然后在执行该机器码. • 解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作. 通常采用的是第二种方法.
1.3 Java程序的分类 Application应用程序 Applet小程序
通常称为Java应用程序,以main()方法作为程序入口,由java解释器加载执行。通常称为Java应用程序,以main()方法作为程序入口,由java解释器加载执行。 通常成为java小应用程序,通过浏览器或是appletviewer命令加载执行。 Applet是java最早获得成功的应用。 Java Applet Java Application