Java
![](/icons/33407de.gif)
产生和特点
JAVA中文站社区门户.y,L;Q;mF3E-D(DG-y/]$zS-~9^---(文/袁小春)
3q SM&J/NVzJava产 生
![](/icons/33407de.gif)
历 史 和 现 状
MM7_4p*wx6[&} o3gJava产 生
![](/icons/33407de.gif)
历 史
d3\]4B$\O$?Java来 自于Sun公 司
![](/icons/33407yi.gif)
个 叫Green
![](/icons/33407de.gif)
项 目
![](/icons/33407dou.gif)
其 原 先
![](/icons/33407de.gif)
目
![](/icons/33407de.gif)
是 为 家 用 消费 电 子 产 品 开 发
![](/icons/33407yi.gif)
个 分 布 式 代 码 系 统
![](/icons/33407dou.gif)
这 样 我 们 可 以 把E-mail发给 电 冰 箱、 电 视 机 等 家 用 电 器
![](/icons/33407dou.gif)
对 它 们 进 行 控 制
![](/icons/33407dou.gif)
和 它 们进 行 信 息 交 流
![](/icons/33407dou2.gif)
开 始
![](/icons/33407dou.gif)
准 备 采 用C
![](/icons/33407jiajia.gif)
,但C
![](/icons/33407jiajia.gif)
太 复 杂
![](/icons/33407dou.gif)
安 全 性 差
![](/icons/33407dou.gif)
最 后 基 于C
![](/icons/33407jiajia.gif)
开 发
![](/icons/33407yi.gif)
种 新
![](/icons/33407de.gif)
语 言Oak(Java
![](/icons/33407de.gif)
前 身)
![](/icons/33407dou.gif)
Oak是
![](/icons/33407yi.gif)
种 用于 网 络
![](/icons/33407de.gif)
精 巧 而 安 全
![](/icons/33407de.gif)
语 言
![](/icons/33407dou.gif)
Sun公 司 曾 依 此 投 标
![](/icons/33407yi.gif)
个 交 互式 电 视 项 目
![](/icons/33407dou.gif)
但 结 果 是 被SGI打 败
![](/icons/33407dou2.gif)
可 怜
![](/icons/33407de.gif)
Oak几 乎 无 家 可 归
![](/icons/33407dou.gif)
恰 巧 这 时Mark Ardreesen开 发
![](/icons/33407de.gif)
Mosaic和Netscape启 发 了Oak项 目 组 成员
![](/icons/33407dou.gif)
他 们 用Java编 制 了HotJava浏 览 器
![](/icons/33407dou.gif)
得 到 了Sun公 司 首 席 执 行官Scott McNealy
![](/icons/33407de.gif)
支 持
![](/icons/33407dou.gif)
触 发 了Java进 军Internet
![](/icons/33407dou2.gif)
Java
![](/icons/33407de.gif)
取 名 也 有
![](/icons/33407yi.gif)
?copy;趣 闻
![](/icons/33407dou.gif)
有
![](/icons/33407yi.gif)
天
![](/icons/33407dou.gif)
几 位Java成 员 组
![](/icons/33407de.gif)
会 员 正 在 讨 论 给 这个 新
![](/icons/33407de.gif)
语 言 取 什 么 名 字
![](/icons/33407dou.gif)
当 时 他 们 正 在 咖 啡 馆 喝 着Java(爪哇) 咖 啡
![](/icons/33407dou.gif)
有
![](/icons/33407yi.gif)
个 人 灵 机
![](/icons/33407yi.gif)
动 说 就 叫Java怎 样
![](/icons/33407dou.gif)
得 到 了 其 他人
![](/icons/33407de.gif)
赞 赏
![](/icons/33407dou.gif)
于 是
![](/icons/33407dou.gif)
Java这 个 名 字 就 这 样 传 开 了
JAVA中文站社区门户G zPLTV"y(Y0g&s0o;B
m;iM-ocJava
![](/icons/33407de.gif)
现 状
6?DAd2m$NE {NZ6{lJava是Sun公司 推 出
![](/icons/33407de.gif)
新
![](/icons/33407yi.gif)
代 面 向 对 象 程 序 设 计 语 言
![](/icons/33407dou.gif)
特 别 适 合 于Internet应用 程 序 开 发
![](/icons/33407dou.gif)
它
![](/icons/33407de.gif)
平 台 无 关 性 直 接 威 胁 到W
![](/icons/33407int.gif)
el
![](/icons/33407de.gif)
垄 断 地 位
![](/icons/33407dou2.gif)
![](/icons/33407yi.gif)
时 间
![](/icons/33407dou.gif)
“ 连Internet
![](/icons/33407dou.gif)
用Java编 程”
![](/icons/33407dou.gif)
成 为 技 术 人 员
![](/icons/33407yi.gif)
种 时尚
![](/icons/33407dou2.gif)
虽 然 新 闻 界
![](/icons/33407de.gif)
报 导 有?copy;言 过 其 实
![](/icons/33407dou.gif)
但Java作 为 软 件 开发
![](/icons/33407yi.gif)
种 革 命 性
![](/icons/33407de.gif)
技 术
![](/icons/33407dou.gif)
其 地 位 已 被 确 立
![](/icons/33407dou.gif)
这 表 现 在 以 下几 个 方 面: 1.计 算 机 产 业
![](/icons/33407de.gif)
许 多 大 公 司 购 买 了 Java
![](/icons/33407de.gif)
许 可证
![](/icons/33407dou.gif)
包 括IBM,Apple,DEC,Adobe,Silicon Graphics,HP,Oracel,Toshiba
![](/icons/33407dou.gif)
以 及最 不 情 愿
![](/icons/33407de.gif)
Microsoft
![](/icons/33407dou2.gif)
这
![](/icons/33407yi.gif)
点 说 明
![](/icons/33407dou.gif)
Java已 得 到 了 工 业 界
![](/icons/33407de.gif)
认可
![](/icons/33407dou2.gif)
2.众 多
![](/icons/33407de.gif)
软 件 开 发 商 开 始 支 持Java
![](/icons/33407de.gif)
软 件 产 品
![](/icons/33407dou2.gif)
例 如:Borland公司 正 在 开 发
![](/icons/33407de.gif)
基 于Java
![](/icons/33407de.gif)
快 速 应 用 程 序 开 发 环 境Latte
![](/icons/33407dou.gif)
预 计产 品 会 在1996年 中 期 发 布
![](/icons/33407dou2.gif)
Borland公 司
![](/icons/33407de.gif)
这
![](/icons/33407yi.gif)
举 措
![](/icons/33407dou.gif)
推 动 了Java进入PC机 软 件 市场
![](/icons/33407dou2.gif)
Sun公 司 自 己
![](/icons/33407de.gif)
Java开 发 环 境Java Workshop已 经 发布
![](/icons/33407dou2.gif)
数 据 库 厂 商 如:Illustra,Sysbase,Versant,Oracle都 在 开 发CGI接口
![](/icons/33407dou.gif)
支 持HTML和Java
![](/icons/33407dou2.gif)
今 天 是 以 网 络 为 中 心
![](/icons/33407de.gif)
计 算 时 代
![](/icons/33407dou.gif)
不 支持HTML和Java
![](/icons/33407dou.gif)
应 用 程 序
![](/icons/33407de.gif)
应 用 范 围 只 能 限 于 同 质
![](/icons/33407de.gif)
环 境(相同
![](/icons/33407de.gif)
硬 件 平 台?copy;
![](/icons/33407dou2.gif)
3.Intranet正 在 成 为 企 业 信 息 系 统 最 佳
![](/icons/33407de.gif)
解 决 方 案
![](/icons/33407dou.gif)
而 其 中Java将 发 挥 不 可 替 代
![](/icons/33407de.gif)
作 用
![](/icons/33407dou2.gif)
Intranet
![](/icons/33407de.gif)
目
![](/icons/33407de.gif)
是 把Internet用 于 企 业 内 部
![](/icons/33407de.gif)
信 息 系 统
![](/icons/33407dou.gif)
它
![](/icons/33407de.gif)
优 点 表 现在: 便 宜
![](/icons/33407dou.gif)
易 于 使 用 和 管 理
![](/icons/33407dou2.gif)
用 户 不 管 使 用 何 种 类 型
![](/icons/33407de.gif)
机器 和 操 作 系 统
![](/icons/33407dou.gif)
界 面 是 统
![](/icons/33407de.gif)
Intrnet浏 览 器
![](/icons/33407dou.gif)
而 数 据 库、Web页面、 应 用 程 序(用Java编
![](/icons/33407de.gif)
Applet)则 存 在WWW服 务 器 上
![](/icons/33407dou.gif)
无 论 是 开发 人 员
![](/icons/33407dou.gif)
还 是 管 理 人 员
![](/icons/33407dou.gif)
抑 或 是 用 户 都 可 以 受 益 于 该 解 决方 案
![](/icons/33407dou2.gif)
Java语 言 正 在 不 断 发 展 和 完 善
![](/icons/33407dou.gif)
Sun公 司 是 主 要
![](/icons/33407de.gif)
发 展推 动 者
![](/icons/33407dou.gif)
较 通 用
![](/icons/33407de.gif)
编 译 环 境 有JDK(Java Develop Kit)和JWS(Java Workshop)
![](/icons/33407dou2.gif)
还 有 很 多 其 他 公 司 正 在 开 发Java语 言
![](/icons/33407de.gif)
编 译 器 和 集 成 环 境
![](/icons/33407dou.gif)
预 计 不 久Java语 言
![](/icons/33407de.gif)
正 确 性 和 效 率 都 将 会 提 高
![](/icons/33407dou.gif)
用 户 用Java编程 和 现 在 用C
![](/icons/33407jiajia.gif)
编 程
![](/icons/33407yi.gif)
样 方 便
JAVA中文站社区门户!YUHBnz#~(GuxitCJava语 言
![](/icons/33407de.gif)
特 点
JAVA中文站社区门户+r
@F5Y#V BP\'|
NDJava到 底是
![](/icons/33407yi.gif)
种 什 么 样
![](/icons/33407de.gif)
语 言 呢? Java是
![](/icons/33407yi.gif)
种 简 单
![](/icons/33407de.gif)
面 象 对 象
![](/icons/33407de.gif)
分布 式
![](/icons/33407de.gif)
解 释
![](/icons/33407de.gif)
健 壮
![](/icons/33407de.gif)
安 全
![](/icons/33407de.gif)
结 构 中 立
![](/icons/33407de.gif)
可 移 植
![](/icons/33407de.gif)
性 能 很优 异
![](/icons/33407de.gif)
多 线 程
![](/icons/33407de.gif)
动 态
![](/icons/33407de.gif)
语 言
JAVA中文站社区门户'Jo6^?Jei'eC*P9MQ.v!|"mRg-X1简 单
JAVA中文站社区门户`b([~8?h0jJava最 初是 为 对 家 用 电 器 进 行 集 成 控 制 而 设 计
![](/icons/33407yi.gif)
种 语 言
![](/icons/33407dou.gif)
因 此它 必 须 简 单 明 了
![](/icons/33407dou2.gif)
Java语 言
![](/icons/33407de.gif)
简 单 性 主 要 体 现 在 以 下 3 个方 面: 1. Java
![](/icons/33407de.gif)
风 格 类 似 于C
![](/icons/33407jiajia.gif)
![](/icons/33407dou.gif)
因 而C
![](/icons/33407jiajia.gif)
程 序 员 是 非 常 熟 悉
![](/icons/33407de.gif)
![](/icons/33407dou2.gif)
从 某 种 意 义 上 讲
![](/icons/33407dou.gif)
Java语 言 是C及C
![](/icons/33407jiajia.gif)
语 言
![](/icons/33407yi.gif)
个 变 种
![](/icons/33407dou.gif)
因 此
![](/icons/33407dou.gif)
C
![](/icons/33407jiajia.gif)
![](/icons/33407chengxu.gif)
员 可 以 很 快 就 掌 握Java编 程 技 术
![](/icons/33407dou2.gif)
2. Java摒 弃 了C
![](/icons/33407jiajia.gif)
中 容 易引 发 程 序 错 误
![](/icons/33407de.gif)
地 方
![](/icons/33407dou.gif)
如 指 针 和 内 存 管 理
![](/icons/33407dou2.gif)
3. Java提?copy;了丰 富
![](/icons/33407de.gif)
类 库
JAVA中文站社区门户[$[*X,Jk'~__7l-T!{-aae5Bt面 向 对 象
+Mn5q]:^M_y面 向 对象 可 以 说 是Java最 重 要
![](/icons/33407de.gif)
特 性
![](/icons/33407dou2.gif)
Java语 言
![](/icons/33407de.gif)
设 计 完 全 是 面 向对 象
![](/icons/33407de.gif)
![](/icons/33407dou.gif)
它 不 支 持 类 似C语 言 那 样
![](/icons/33407de.gif)
面 向 过 程
![](/icons/33407de.gif)
程 序 设 计技 术
![](/icons/33407dou2.gif)
Java支 持 静 态 和 动 态 风 格
![](/icons/33407de.gif)
代 码 继 承 及 重 用
![](/icons/33407dou2.gif)
单 从 面向 对 象
![](/icons/33407de.gif)
特 性 来 看
![](/icons/33407dou.gif)
Java类 似 于SmallTalk
![](/icons/33407dou.gif)
但 其 它 特 性、 尤 其是 适 用 于 分 布 式 计 算 环 境
![](/icons/33407de.gif)
特 性 远 远 超 越 了SmallTalk
j#S0G4O}.vJ;O?&i;BWN;a;MH分 布 式
%Vfbwp,t1nK4M5hJava包 括
![](/icons/33407yi.gif)
个 支 持HTTP和FTP等 基 于TCP/IP协 议
![](/icons/33407de.gif)
子 库
![](/icons/33407dou2.gif)
因 此
![](/icons/33407dou.gif)
Java应 用
![](/icons/33407chengxu.gif)
可 凭 借URL打 开 并 访 问 网 络 上
![](/icons/33407de.gif)
对 象
![](/icons/33407dou.gif)
其 访 问 方 式 和 访 问本 地 文 件 系 统 几 乎 完 全 相 同
![](/icons/33407dou2.gif)
为 分 布 环 境 尤 其 是Internet提?copy;动态 内 容 无 疑 是
![](/icons/33407yi.gif)
项 非 常 宏 伟
![](/icons/33407de.gif)
任 务
![](/icons/33407dou.gif)
但Java
![](/icons/33407de.gif)
语 法 特 性 却使 我 们 很 容 易 地 实 现 这 项 目 标
$B4_N7M0un0?JAVA中文站社区门户0Z5f*ri*xJ#R2i健 壮
JAVA中文站社区门户2HQ,I/c*|{LJava致 力于 检 查 程 序 在 编 译 和 运 行 时
![](/icons/33407de.gif)
错 误
![](/icons/33407dou2.gif)
类 型 检 查 帮 助 检 查出 许 多 开 发 早 期 出 现
![](/icons/33407de.gif)
错 误
![](/icons/33407dou2.gif)
Java自 已 操 纵 内 存 减 少 了 内存 出 错
![](/icons/33407de.gif)
可 能 性
![](/icons/33407dou2.gif)
Java还 实 现 了 真 数 组
![](/icons/33407dou.gif)
避 免 了 覆 盖 数 据
![](/icons/33407de.gif)
可 能
![](/icons/33407dou2.gif)
这?copy;功 能 特 征 大 大 缩 短 了 开 发Java应 用 程 序
![](/icons/33407de.gif)
周期
![](/icons/33407dou2.gif)
Java提?copy;: Null指 针 检 测 数 组 边 界 检 测 异 常 出 口 字 节代 码 校 验
JAVA中文站社区门户CF"xC{ H9hs/iy&d
\,Ti:m&s结 构 中 立
X@7x9R'DH]u另 外
![](/icons/33407dou.gif)
为 了 建 立Java作 为 网 络
![](/icons/33407yi.gif)
个 整 体
![](/icons/33407dou.gif)
Java将 它
![](/icons/33407de.gif)
程 序 编 译 成
![](/icons/33407yi.gif)
种 结 构 中 立
![](/icons/33407de.gif)
中 间 文 件 格 式
![](/icons/33407dou2.gif)
只 要 有Java运 行 系 统
![](/icons/33407de.gif)
机器 都 能 执 行 这 种 中 间 代 码
![](/icons/33407dou2.gif)
现 在
![](/icons/33407dou.gif)
Java运 行 系 统 有Solaris2.4(SPARC),Win32系统(Windows95和Windows NT)等. Java源 程 序 被 编 译 成
![](/icons/33407yi.gif)
种 高 层 次
![](/icons/33407de.gif)
和 机 器 无 关
![](/icons/33407de.gif)
![](/icons/33407byte.gif)
-code格 式 语 言
![](/icons/33407dou.gif)
这 种 语 言 被 设 计 在 虚 拟 机上 运 行
![](/icons/33407dou.gif)
由 机 器 相 关
![](/icons/33407de.gif)
运 行 调 试 器 实 现 执 行
JAVA中文站社区门户6f3? s$xLJAVA中文站社区门户+J C3{/T @ dn/sn&E,g2Z安 全
JAVA中文站社区门户[m]?h+_
cJava
![](/icons/33407de.gif)
安全 性 可 从 两 个 方 面 得 到 保 证
![](/icons/33407yi.gif)
方 面
![](/icons/33407dou.gif)
在Java语 言 里
![](/icons/33407dou.gif)
象 指针 和 释 放 内 存 等C
![](/icons/33407jiajia.gif)
功 能 被 删 除
![](/icons/33407dou.gif)
避 免 了 非 法 内 存 操 作
![](/icons/33407dou2.gif)
另
![](/icons/33407yi.gif)
方 面
![](/icons/33407dou.gif)
当Java用 来 创 建 浏 览 器 时
![](/icons/33407dou.gif)
语 言 功 能 和
![](/icons/33407yi.gif)
?copy;浏 览器 本 身 提?copy;
![](/icons/33407de.gif)
功 能 结 合 起 来
![](/icons/33407dou.gif)
使 它 更 安 全
![](/icons/33407dou2.gif)
Java语 言 在你
![](/icons/33407de.gif)
机 器 上 执 行 前
![](/icons/33407dou.gif)
要 经 过 很 多 次
![](/icons/33407de.gif)
测 试
![](/icons/33407dou2.gif)
它 经 过 代 码 校验
![](/icons/33407dou.gif)
检 查 代 码 段
![](/icons/33407de.gif)
格 式
![](/icons/33407dou.gif)
检 测 指 针 操 作
![](/icons/33407dou.gif)
对 象 操 作 是 否 过分 以 及 试 图 改 变
![](/icons/33407yi.gif)
个 对 象
![](/icons/33407de.gif)
类 型
JAVA中文站社区门户.n$P6E$^3^8B;g&[*~m$_C8\*^#^Byte-code校 验
JAVA中文站社区门户b:l g$k1I6KyK9w:G如 果
![](/icons/33407byte.gif)
-code通过 代 码 校 验
![](/icons/33407dou.gif)
没 有 返 回 错 误
![](/icons/33407dou.gif)
我 们 可 知 道: 代 码 没 有 堆 栈上 溢 出 和 下 溢 出 所 有 操 作 代 码 参 数 类 型 都 是 正 确
![](/icons/33407de.gif)
没 有发 生 非 法 数 据 转 换
![](/icons/33407dou.gif)
如 将 整 数 转 换 成 指 针
![](/icons/33407dou2.gif)
访 问 对 象 操 作是 合 法
/k X/zYj]$e8YkK/OEl)|类 装 载
!SL8~XDxClass Loader通过 将 本 机 类 和 网 络 资 源 类
![](/icons/33407de.gif)
名 称 分 开
![](/icons/33407dou.gif)
来 保 持 安 全 性
![](/icons/33407yinwei.gif)
调 入 类 时 总 要 经 过 检 查
![](/icons/33407dou.gif)
这 样 避 免 了 特 洛 伊 木 马 现 象
![](/icons/33407de.gif)
出 现
![](/icons/33407dou2.gif)
从 网 络 上 下 载
![](/icons/33407de.gif)
类 被 调 进
![](/icons/33407yi.gif)
个 和 源 相 关
![](/icons/33407de.gif)
私 有
![](/icons/33407de.gif)
名 字 域
![](/icons/33407dou2.gif)
当
![](/icons/33407yi.gif)
个 私 有 类 访 问 另
![](/icons/33407yi.gif)
个 类 时
![](/icons/33407dou.gif)
build-in(本 机 类)首先 被 检 查
![](/icons/33407dou.gif)
然 后 检 查 相 关
![](/icons/33407de.gif)
类
![](/icons/33407dou2.gif)
这 样 就 避 免 了 破 坏 本 机 类情 况
![](/icons/33407de.gif)
出 现
JAVA中文站社区门户#P;N{'[c G)w%MB5w ~&`)pR7a9u可 移 植
A#Nz.kWr+J8M同 体 系结 构 无 关
![](/icons/33407de.gif)
特 性 使 得Java应 用 程 序 可 以 在 配 备 了Java解 释 器和 运 行 环 境
![](/icons/33407de.gif)
任 何 计 算 机 系 统 上 运 行
![](/icons/33407dou.gif)
这 成 为Java应 用 软件Software 便 于 移 植
![](/icons/33407de.gif)
良 好 基础
![](/icons/33407dou2.gif)
但 仅 仅 如 此 还 不 够
![](/icons/33407dou2.gif)
如 果 基 本 数据 类 型 设 计 依 赖 于 具 体 实 现
![](/icons/33407dou.gif)
也 将 为 程 序
![](/icons/33407de.gif)
移 植 带 来 很大 不 便
![](/icons/33407dou2.gif)
例 如 在Windows 3.1中 整 数(Integer)为16bits
![](/icons/33407dou.gif)
在Windows 95中整 数 为32bits
![](/icons/33407dou.gif)
在DEC Alpha中 整 数 为64bits
![](/icons/33407dou.gif)
在Intel 486中 为32bits
![](/icons/33407dou2.gif)
通 过 定 义 独 立 于 平 台
![](/icons/33407de.gif)
基 本 数 据 类 型 及 其 运 算
![](/icons/33407dou.gif)
Java数 据得 以 在 任 何 硬 件 平 台 上 保 持
![](/icons/33407yi.gif)
致
![](/icons/33407dou2.gif)
Java语 言
![](/icons/33407de.gif)
基 本 数 据 类型 及 其 表 示 方 式 如 下:
![](/icons/33407byte.gif)
8-bit 2 进 制 补 码
![](/icons/33407short.gif)
16-bit 2进 制 补 码
![](/icons/33407int.gif)
32-bit 2 进 制 补 码 long 64-bit 2 进 制 补 码 float 32-bit IEEE 754浮点 数 double 32-bit IEEE 754浮点 数 char 16-bit Unicode
cek)PvU)OwHOJAVA中文站社区门户.k2xkNN
P0?i在 任 何Java解释 器 中
![](/icons/33407dou.gif)
数 据 类 型 都 是 依 据 以 上 标 准 具 体 实 现
![](/icons/33407de.gif)
![](/icons/33407dou2.gif)
因 为 几乎 目 前 使 用
![](/icons/33407de.gif)
所 有CPU都 能 支 持 以 上 数 据 类 型、8~64位 整 数格 式
![](/icons/33407de.gif)
补 码 运 算 和 单/双 精 度浮点 运 算
![](/icons/33407dou2.gif)
Java编 译 器 本 身 就 是用Java语 言 编 写
![](/icons/33407de.gif)
![](/icons/33407dou2.gif)
Java运 算 系 统
![](/icons/33407de.gif)
编 制 依 据POSIX方 便 移 植
![](/icons/33407de.gif)
限 制
![](/icons/33407dou.gif)
用ANSI C语 言 写 成
![](/icons/33407dou2.gif)
Java语 言 规 范 中 也 没 有 任 何"同具 体 实 现 相 关"
![](/icons/33407de.gif)
内 容
JAVA中文站社区门户)|*t5[+M U W
Ca#P\_T}ke解 释
JAVA中文站社区门户+IvpfbJava解 释器(运 行 系 统)能 直 接 运 行 目 标 代 码 指 令
![](/icons/33407dou2.gif)
链 接 程 序 通 常 比编 译 程 序 所 需 资 源 少
![](/icons/33407dou.gif)
所 以 程 序 员 可 以 在 创 建 源 程 序 上花 上 更 多
![](/icons/33407de.gif)
时 间
JAVA中文站社区门户8jMR!^)}k.o1W b6n0W+{jc7F高 性 能