Designed by Chiyong,?20051
Java2 网络编程基础
Java 编程简介第一章
Designed by Chiyong,?20052
课题目标
Java语言的特点和优点
机器语言与高级语言
平台与平台无关的应用程序
了解 Java 的运行机制
JVM( Java虚拟机)
了解 Java 程序的基本结构
掌握如何编译和运行 Java 程序
Designed by Chiyong,?20053
Java发展史
1990 年 Sun 公司的 James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒,PDA(Personal Digital Assistant 个人数字助理 ),家用电器 等的微处理器。
1993 年交互式电视和 PDA 市场开始滑坡,而
Internet 正处于增长时期,因此 Sun 公司将目标市场转向 Internet 应用程序。
1994年将 Oak语言更名为 Java。( java音译为
,爪哇,,是印尼一个盛产咖啡的岛屿) 1995年正式推出
1995年 Sun 公司的 HotJava 浏览器问世。
Designed by Chiyong,?20054
什么是 Java
Java 是一种跨平台的,纯面向对象的编程语言 。 Java主要应用在基于 WEB 的程序中 。
Java 在客户端可用来生成两类程序:应用程序 ( Application),小应用程序 ( Applet ) 。
Java 既是一种编译执行的语言,也是一种解释执行的语言 。
Designed by Chiyong,?20055
Java的基本特点 3-1
简单
面向对象
分布式
Java的风格类似于 C++,因而对 C++
程序员而言非常容易掌握 Java编程技术;
Java摒弃了 C++中容易引发程序错误的地方,如指针操作和内存管理;
在 Java 中任何东西都是对象,
是真正纯粹面向对象的语言。更有利于编制大型软件工程
Java提供了包容广泛的例程库,可处理像 HTTP和 FTP这样的 TCP/IP协议。 Java应用程序可通过一个特定的 URL来打开并访问对象,就像访问本地文件系统那样简单。
Designed by Chiyong,?20056
Java语言提供的安全机制
编译器提供的安全机制
字节码校验器
类加载器
Java的基本特点 3-2
健壮性
安全
体系结构中立
可移植性
Java在编译和运行程序时都要对可能出现的问题进行检查
它提供自动垃圾收集来进行内存管理
具有面向对象的异常处理机制
Java 程序被编译成一种与体系结构无关的字节代码
只要安装了 Java运行时系统,Java程序可以在任意的处理器上运行
源代码级
目标代码级
Designed by Chiyong,?20057
Java的基本特点 3-3
解释执行
高性能
多线程
动态
Java语言内置支持多线程的功能
Java 类库提供了 Thread 类
Java自身的设计使它适合于一个不断发展的环境。在 Java类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。
通过 JIT编译器 (Just-In-Time,运行时编译执行的技术 )首先将字节码编译成固有代码,将结果缓存下来,然后在需要时调用它们。
编译器 javac.exe 将处理,java源文件生成类文件
类文件可通过名称为 java.exe 的加载实用程序解释执行,将 Java 字节码转换为机器可执行代码。
Designed by Chiyong,?20058
了解 Java的跨平台性--机器语言不同种类的计算机有不同的机器语言
Designed by Chiyong,?20059
了解 Java的跨平台性-- 高级语言高级语言程序目标语言程序编译器的编译目标语言程序可能是:
机器语言程序
(如,C,C++)
中间语言程序
(如,Java的 class 代码)
Designed by Chiyong,?200510
了解 Java的跨平台性-- 操作系统
Operating
System
操作系统用来支持最基本的操作,比如创建文件和文件夹,在屏幕上显示,打印等等。
操作系统是用户与计算机之间的主要接口。
所有的程序都与操作系统通讯
Designed by Chiyong,?200511
为一种平台编写的代码不能在另一种平台上运行。
机器语言决定代码移植的可行性
Software for
IBM
Machine
Sun
Solaris
Software for
Solaris
MACSoftware for MAC Machine
IBM
平台可以理解为计算机系统与硬件的结合体。
Designed by Chiyong,?200512
编译后执行的高级语言程序存在的问题问题
Program
为特定的平台编写的程序在其他平台上无法使用解决办法解释器 解释器解释器Program
为解决这个问题,
我们使用了“解释器”。
这样在解释器的帮助下,我们就可以编写一次代码而在不同的 平台 上运行。
Designed by Chiyong,?200513
Java虚拟机
Java 程序的运行环境编译型源程序字节码程序Java源程序可执行程序 EXE
裸机操作系统解释器编译连接编译执行解释执行
.java,class
Java是解释执行的高级编程语言因此,每个平台都有一个特定的
JVM。 即 JVM是与平台相关的平台
Designed by Chiyong,?200514
Java虚拟机 2 - 1
Java虚拟机 (JVM—Java Virtual
Machine)可以是硬件或软件(通常为软件)。可以在操作系统和硬件平台上模拟一种抽象化的计算机系统运行时环境,
在上面执行 Java的字节码程序。
Java虚拟机将在内部创建一个运行时系统 (JRE),主要功能如下:
– 加载,class 文件
– 管理内存
– 执行垃圾收集
Designed by Chiyong,?200515
Java虚拟机 2 – 2(实时编译器)
使用“实时 (Just In Time)” 编译器,也称为 JIT编译器。可以提高 Java 代码的执行速度。
SUN公司在 Java 2 发行版中提供了 JIT编译器,JIT编译器是 Java虚拟机的一部分。
JIT 的主要用途是将字节码指令集转换为针对某一特定微处理器的机器代码指令。
Designed by Chiyong,?200516
Java虚拟机 2 – 3( Hotspot编译器)
Hotspot性能优化编译器是对 Java2平台的增强,
主要加速模块的组成部分:内存模型,垃圾收集,线程同步,本地编译器。
特性综述:
总体性能更强(和 JIT编译器相比);
针对平台的最优化;
精确的一次性垃圾收集器;
Designed by Chiyong,?200517
Java虚拟机 2 – 3( Hotspot编译器)
Java Hotspot性能优化编译器主要包括两个文件和其它一些调试库文件,位置在 jre\bin\目录下:
新版本 JDK包含两种编译器( server和 client),
它们都有下面两个文件
jvm.dll
Xusage.txt
测试 Hotspot:
DOS提示符,>java -version
提示信息:
使用“混合模式”,可以把使用频率高的代码编译成本地代码,而其它的代码仍然解释执行,可以获得最高的效率。
Java HotSpot(TM) Client VM (build 1.4.1_02-b06,mixed mode)
Designed by Chiyong,?200518
Java 运行时环境编译时
.java
(源代码)
.class
(字节码)
运行时类加载器字节码校验器解释器 JIT代码生成器硬件网络
Designed by Chiyong,?200519
垃圾收集 2-1
Java 虚拟机使用两个独立的堆内存,分别用于静态内存分配和动态内存分配。
– 其中一个是非垃圾收集堆内存,用于存储所有类定义、常量池和方法表。
用于垃圾收集的算法适用于存放在动态堆内存中的对象。
Designed by Chiyong,?200520
垃圾收集 2-2
垃圾收集器将在收集对象实例之前调用
finalize 方法。
即使显式调用 (System.gc( )) 方法来启动垃圾收集线程,但它也不能保证立即运行。
因为垃圾收集线程的运行优先级很低,所以可能经常会被中断。
Designed by Chiyong,?200521
Java 的编辑环境
JDK( Java Development Kit)是有助于程序员开发 Java 程序的 Java 开发工具包,
它 包括:
– 类库
– 编译器
– 调试器
– Java 运行时环境 ( JRE )
小常识,Java 2的版本号是和 JDK的版本号相联系的,
在 JDK 1.2版本之后,都为 Java 2。
Designed by Chiyong,?200522
JDK 提供的常用工具
javac.exe 是用来编译源代码的命令。
java.exe是用于执行类文件的命令,而类文件将在 Java 虚拟机中运行类。
appletviewer 命令允许在万维网浏览器的环境之外运行 Applet。
Designed by Chiyong,?200523
Java Application程序基本结构
import语句
class
{
public static void main(String[ ] args)
{
}
}
主类名称方法体
Designed by Chiyong,?200524
第一个 Java 程序
//这是名称为,HelloWorld.java”的简单程序
import java.io.*;
class HelloWorld {
public static void main(String args[ ])
{
System.out.println(“欢迎访问 Java 世界!,);
}
}
单行注释导入必要的包定义类
Main函数在控制台上输出
Designed by Chiyong,?200525
在记事本编辑 Java程序单击开始依次选择程序 ->附件
->记事本
//这是名称为,HelloWorld.java”的简单程序
import java.io.*;
class HelloWorld {
public static void main(String args[ ])
{
System.out.println(“欢迎访问 Java 世界!,);
}
}
Designed by Chiyong,?200526
编译和运行单击开始依次选择程序 ->附件
->命令提示符进入程序所保存的目录 输入命令编译
HelloWorld
输入命令执行
HelloWorld输出结果
Designed by Chiyong,?200527
Java API 文档 2-1
加载 API 文档的步骤:
1,打开 Internet Explorer。
2,键入下列 URL
http://java.sun.com/j2se/1.4.1/docs/api/index.ht
ml
3,通过单击相关主题,可以浏览网页。
Java API 文档是一种非常有用的文档,描述许多
java 的内置功能,
包含类、包、接口等的帮助。
Designed by Chiyong,?200528
Java API 文档 2-2
选择包选择包中的接口或类可查看相应帮 助
Designed by Chiyong,?200529
总结 3-1
Java 是一种面向对象的编程语言,主要用于 Internet 应用程序。
Java 可用来生成两类程序:应用程序,
小应用程序 ( Applet ) 。
Java 既是一种解释执行的语言,也是一种编译执行的语言 。
Designed by Chiyong,?200530
总结 3-2
Java 的特点包括:
– 简单
– 面向对象
– 分布式
– 健壮性
– 安全
– 体系结构中立
– 可移植性
– 解释执行
– 高性能
– 多线程
– 动态
Designed by Chiyong,?200531
总结 3-3
Java 虚拟机是 Java 编程语言的核心。
Java 运行时环境 (JRE) 包含一方面与硬件交互、另一方面又与程序交互的 JVM。
Java 开发工具包有助于开发 Java 程序。
JDK 提供多种工具,这些工具位于 JDK
的 bin 目录下,具体如下:
– javac
– java
– appletviewer