Java技术与应用

Download Report

Transcript Java技术与应用

Java技术与应用
-走进Java世界
西安交大 卫颜俊
2008年11月
电子信箱:[email protected]
QQ: 610568018
网站: 202.117.58.97/java
1 / 39
对Java的评价
 美国的著名杂志PC Magzine将Java评为1995年十大优秀科技产品。
 WWW的创始人Bcrners-lee说:“计算机事业发展的下一个浪潮就是
Java,并且很快会发生”。
 工业界指出 “Java是二十世纪际八十年代以来计算机界的一件大事 " 。
 Microsoft CEO Bill Gates语录:“Java语言是长时间以来最卓越的程
序设计语言”。
 工业界预言: “ Java将是网络上的世界语,Java语言的出现将会引起一场
软件革命” 。
 权威专家说: “Java甚至会改变此星球的生活方式 ”。
 本人预测: “其它计算机语言不久将会纷纷让位于Java” 。
2 / 36
对Java的评价
美国国家标准科学研究所
IBM公司
斯坦福大学
麻省理工大学
英国爱丁堡大学
日本国家高级工业科学与技术研究所等诸多国际
权威机构和几十篇权威证据
纷纷证明:
Java比C++开发效率更快和运行性能更好。
3 / 36
本讲主要内容






Java发展简史
Java核心机制
Java语言的特点
JDK常用Java命令和Notepad工具的使用
方法
Java标识符
Java程序演示
4 / 38
Java语言的发展简史
全世界存在3000多种计算机程序设
计语言。
目前流行的如下:
汇编、C/C++言、Java、Fortran、
Pascal、PHP和HTML。
5 / 38

1991年,美国Sun公司“绿色项目”,目的是开拓掌上电脑、交互
式电视和烤面包箱等消费品电子技术市场。由于C/C++语言无法适
应高可靠、低费用、标准化和操作简单等消费类电子产品的特殊要
求,同年6月开始准备开发一种新型语言,后改名为Java。

1994年,Sun公司推出HotJava浏览器专门支持Java Applet小程序的
运行。

1996年初Sun公司正式发布Java 1.0版,Java的第一个开发工具包
JDK1.0也随即发布,标志着一种新的计算机语言-Java从此诞生。

1998年12月8日,Java第二版发布。

1999年6月,Sun公司相继发布了Java的三个版本:
标准版(J2SE)、企业版(J2EE)和微型版(J2ME) 。

目前Sun公司又推出JDK6 。
6 / 38
*7产品是基于新型SPARC体系结构的手持无线PDA, 它能够控
制广泛的娱乐平台和家用电器。
包含以下几部分:
 一个 5“ 彩色 LCD(触摸屏)
 新型的16位 --5:6:5 彩色硬件双缓冲NTSC 制式的帧缓冲
器
 900MHz 无线网
 PCMCIA 总线接口
 多媒体和电池电源支持
 内含<1MB的Unix
 一种新型的小编程语言
 TV远程控制器
 …...
7 / 38
J2SE
为基本的Java 2 SDK,并提供工具、运行机制
和供开发者编写、交付和使用Applet和
Application的API。
Java 2 SDK, Standard Edition, v 1.6.0
Java 2 Runtime Environment, Standard
Edition, v 1.6.0
Java Plug-in
JavaBeans Development Kit (BDK)
Java HotSpot Server Virtual Machine
8 / 38
APIs
Collections Framework
Java Foundation Classes (JFC)
Swing Components
Pluggable Look & Feel
Accessibility
Drag and Drop
Security
Java IDL
JDBC
JavaBeans
Remote Method Invocation (RMI)
Java 2D
9 / 38
J2EE
在一个体系中组合了许多技术,提供广泛的应用编程模型和兼容性
测试套件,以便建立企业级的服务器端应用。
Enterprise JavaBeans体系
JavaServer Pages
Java Servlet
Java Naming and Directory Interface (JNDI)
Java IDL
JDBC
Java Message Service (JMS)
Java Transaction (JTA)
Java Transaction Service (JTS)
JavaMail
RMI-IIOP
10 / 38
J2ME
高度优化的Java运行环境,面向广泛的消费产品,包括传呼机、蜂
窝电话、视频电话、数字机顶盒和汽车导航系统。
Java 2 Platform, Micro Edition (J2ME technology)
Connected Limited Device Configuration (CLDC)
K Virtual Machine (KVM)
PersonalJava Application Environment
PersonalJava Technology, Source Edition
EmbeddedJava Application Environment
EmbeddedJava Technology, Source Edition
Java Card
JavaPhone API
Java TV API
Jini Connection Technology
Mobile Information Device Profile (MIDP
11 / 38
几种平台图示
12 / 38
Java核心机制
Java程序的运行必须经过编写、编译和解释
运行三个步骤:
13 / 38
Java核心机制
编写是指在某种Java开发环境中进行程序代码
输入,最终保存为“.java”后缀形式的源代码文
件。
编译是指使用Java编译器对源代码文件进行语
法错误排查,生成“.class” 后缀形式的二进制
字节码格式文件。
解释运行是指使用Java解释器将字节码翻译成
硬件机器代码,并交由CPU执行并显示结果。
14 / 38
Java核心机制中的几个概念
 字节码(ByteCode)
是一种和任何具体机器及操作系统体系结构都无关的
中间代码,以二进制格式的指令形式出现。
 虚拟机(JVM)
Java系统中专门设计了一个中间机制,即虚拟机,
字节码必须首先经过虚拟机上的运行时环境(JRE
)使用及时编译(JIT)或Hotspot机制解释成硬
件机器的指令并交由CPU执行,虚拟机起到了一
种字节码解释器的作用,同时具有字节码装载和安
全校验的功能。
15 / 38
Java核心机制
虚拟机机制
Java虚拟机是一个假想机,在实际的计算机
上通过软件模拟实现的虚拟计算机。Java
虚拟机有自己想象中的硬件,包括处理器、
堆栈、寄存器,以及相应的指令系统。
虚拟机的内部结构由类装载器子系统、执行
引擎和运行时数据区等三部分组成。

16 / 38
虚拟机的内部结构
(1) 类装载器。用于装载字节码文件,包括启
动类装载器和用户自定义类装载器两种。
其中,启动类装载器是虚拟机实现的一部
分,用户自定义类装载器则是Java程序的
一部分。
(2) 执行引擎。包括执行字节码和执行本地方
法两个方面。
(3) 运行时数据区。包括指令集、方法区、堆、
栈、PC寄存器和本地方法栈等部分。
17 / 38
Java核心机制
垃圾回收机制
垃圾回收机制是虚拟机中的主要机制之一,目
的是释放那些不再使用的对象所占用的内存,
并将这些对象清除。它首先判断对象是否被
活动对象引用,以确定是否应该回收该对象,
然后使用引用计数和对象引用遍历等两种方
法来进行回收。
垃圾回收机制包括标记清除收集器、标记压缩
收集器、复制收集器、增量收集器、叠代收
集器、并发收集器和并行收集器等。

18 / 38
Java核心机制
安全模型
安全模型是Java应用于网络环境的关键技术。为了
防止用户系统受到网络不安全程序的破坏,Java
提供了沙箱机制,可以在沙箱内安全运行Java程
序,来自于Internet上的Applet,其行为仅限制
于“沙箱”之内,不允许读写沙箱之外的任何数据,
并禁止对硬盘进行直接读写、和别的主机(不包括
程序所在的主机)进行网络连接、创建新进程和载
入新的动态库并直接调用本地方法等一些不安全行
为。

19 / 38
“沙箱”安全模型组成部分
(1) 内建于Java虚拟机和语言的安全特性。
(2) 类的载入结构。
(3) 类文件校验器。
(4) 安全管理器和Java应用程序设计接口
(API)。
20 / 38
Java、Java程序与平台
Java程序
Java 平
API
JVM
台
硬件平台(CPU)
21 / 38
Java的特点
Java是什么? Java的特点是什么?
Java语言白皮书这样回答:
A simple,object-oriented, distributed,
interpreted, robust, secure, architectureneutral, portable,
high-performance, multi-threaded, dynamic
language.
简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构
中立、可移植、高性能、多线程以及动态性。
22 / 38
Java Application的特点
Application是一种典型的客户/服务器(
C/S)计算模式的Java程序,它与C/C++
语言编写的带有主函数(main)的程序类
似,可以具有任意规模大小,本机上的任
何系统文件、数据库和网络等资源都可以
不受限制地使用。它完全采用面向对象程
序设计方法,能够充分发挥Java语言的诸
多优点,既可以是控制台(DOS)式的字
符界面风格,又可以是图形用户界面(
GUI)式的风格。
23 / 38
Java Application的程序结构
【例1-1】编写一个程序,在屏幕上显示一段文
字:“欢迎学习Java!”。
1
2
3
4
5
6
7
: package 第一章;
:
: public class 我的第一个类 {
:
public static void main(String[] args) {
:
System.out.println("欢迎学习Java!");
:
}
:}
24 / 38
Java Applet的特点
普通WWW浏览器只具有下载、解析和运行
网页、图片、声音和Flash动画等功能,而
Java Applet程序不仅如此,还可以完成客
户程序与远程服务器程序之间的动态交互
,身在异地就可以完成远程交易、网络电
子银行和网上办公等功能。
Applet以程序身份通过特殊标记嵌入在网页
,浏览器通过访问该网页,首先下载网页
,然后下载Applet字节码程序文件到本地
,并交由本地的Java虚拟机解释运行,虚
拟机将运行结果定向到浏览器界面。
25 / 38
Java Applet的特点
26 / 38
Java Applet的程序结构
1 : //HelloWorldApplet.java
2 : import java.awt.*;
3 : import java.applet.*;
4 : public class HelloWorldApplet extends Applet {
5 : public void paint(Graphics g){
6:
g.drawString("Hello World!",50,50);
7: }
8:}
9:
10: <!-- HelloWorldApplet.html-->
11: <HTML>
12: <BODY>
13: <APPLET CODE="HelloWorldApplet.class" WIDTH=100
HEIGHT=100>
14: </APPLET>
15: </BODY>
16: </HTML>
27 / 38
JSP的特点
JSP技术主要是为企业建立浏览器/服务器
(B/S)计算模式的应用系统而推出的一种
动态网页技术(Java Server Pages),
它 在 网 页 ( HTML ) 和 超 文 本 传 输 协 议
(HTTP)的语法基础上,融合了许多Java
技术、特别是网络技术,给快速建立动态
网站提供了强有力的手段。它将Java的片
断代码嵌入在网页中,形成动态网页文件,
当浏览器访问时,WWW服务器中的Java
虚拟机和运行系统将本动态网页创建成
Java源代码程序,然后编译并运行起来,
最后将结果返回给浏览器。
28 / 38
JSP的程序结构
1 : <%--helloworldjsp.jsp --%>
2 : <%@page contentType="text/html;
charset=GBK" %>
3 : <html>
4 : <body>
5:
<%="Hello world!"%>
6 : </body>
7 : </html>
29 / 38
Java与C++等的比较







学过C++的不用从头学习Java。
对同一个项目进行开发,据估计用Java语言比用C++语
言可节省1/2到2/5的时间。
Java与C、C++风格相同。
全局变量、Goto、指针、数据类型的支持、类型转换、
头文件、结构和联合、预处理
Java 摒 弃 了 C 、 C++ 中 的 存 储 管 理 及 与 其 相 关 联 的
Pointer操作,代之以GC(自动存储管理系统)。
Java与HTML有区别,Java与CGI、ActiveX、JavaScript、
PHP、Perl、Python、JPython亦有区别。
Java 的 兼 容 性 、 安 全 性 和 客 户 机 零 配 置 方 面 也 较
ActiveX强。
30 / 38
JDK程序结构
package house;//目录
class Computer{…}//文件
import house.*; 或import house. Computer;
class Desk{…}
31 / 38
JDK常用命令(1)
1. javac命令:
功能:将Java源程序文件(.java)编译成字节码文件
(.class)
用法:javac <选项> <源文件>
2. java命令:
功能:装载字节码文件(.class)并运行其对应的类
用法:java <选项> <类> [参数值...]
或 java<选项> -jar <打包文件> [参数值...]
3. appletviewer命令:
功能:Applet程序运行察看工具
用法:appletviewer <选项> <网址或网页>
32 / 38
JDK常用命令(2)
4. javadoc命令:
功能:摘取/** */注释行,生成网页格式的Java类说明
文档
用法:用法:javadoc [选项] [软件包名称] [源文件]
[@file]
5. jdb命令:
功能:调试Java类
用法:jdb <选项> <类> <参数>
33 / 38
JDK常用系统包
34 / 38
Java标识符语法规定
任何计算机语言程序都需要定义标识符,Java语
言也不例外,标识符(identifier)是指对程序
中的各个元素加以命名时使用的命名记号。在
Java语言中,标识符是以字母、下划线(_)、
美元符($)或汉字开始的字符序列,后面可以跟
多个字母、下划线、美元符、数字或汉字。
Java语言的标识符区分大小写,而且不能包含
不可见的空格(Tab、Space、换行或回车),尽
量避免以_、$开头,以免与本地方法的一些C
库名混淆。另外,Java 标识符不能是Java系统
的保留字。
35 / 38
Java标识符语义约定






文件名:与所包含的类名一致,源程序文件扩展名为“.java”,
字节码文件扩展名为“.class”,例如:Hello.java、
Hello.class
包名:名词,无特殊要求,例如:myhome,
chapter1.section1
类名:名词,每个词首字母大写,例如:Dog、
GraduatedStudent
方法名:动词,从第二个词开始首字母大写,其中构造方法与
类名相同,例如:getColor、setSalary、run
变量名:名词或形容词,与方法名相同,例如:color,
totalScore
常量名:名词或形容词,每个字母均大写,可以使用_或$符号
分隔每个单词,例如:MAX_INTEGER、AVERAGE_AGE
36 / 38
Java保留字
abstract
default
if
private
this
boolean
do
implements protected
throw
break
double
import
public
throws
byte
else
instanceof
return
transient
case
extends
int
short
try
catch
final
interface
static
void
char
finally
long
strictfp
volatile
class
float
native
super
while
const
for
new
switch
true
continue
goto
package
synchronized false、null
37 / 38
举例
【例1-2】编写程序计算正整数n的阶乘值n!,其
中n!=1×2×…×n。
38 / 38
举例
【例1-6】计算大数n的阶乘值。
39 / 38