Java软件设计基础

更新时间:2023-07-17 09:09:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java软件设计基础

Java软件设计基础
1. Java1.Java概述概述
Java软件设计基础
1. Java1.Java概述概述
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..课程参考书目课程参考书目
–《Java程序设计及应用开发教程》,虞益诚主编,科学出版社
–《Java教程》,Sharon Zakhour,人民邮电出版社
–《Introduction to Java Programming》,Y.Daniel Liang,机械工业
出版社
–《Java编程思想》,Bruce Eckel,机械工业出版社
..课程安排课程安排
–平时成绩,形式为上机作业;
–考试成绩,考试形式为闭卷笔试。
..其他信息其他信息
–Email:
School of Computer Science and Technology
..课程参考书目课程参考书目
–《Java程序设计及应用开发教程》,虞益诚主编,科学出版社
–《Java教程》,Sharon Zakhour,人民邮电出版社
–《Introduction to Java Programming》,Y.Daniel Liang,机械工业
出版社
–《Java编程思想》,Bruce Eckel,机械工业出版社
..课程安排课程安排
–平时成绩,形式为上机作业;
–考试成绩,考试形式为闭卷笔试。
..其他信息其他信息
–Email: renkx@
–Homepage: /java/index.html
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
1.1 Java发展与特点
..计算机程序设计语言的发展与分类计算机程序设计语言的发展与分类
–机器语言
.不需要翻译即由计算机直接执行的指令叫做机器指令。这些指令的集
合叫做机器语言。
–汇编语言
.是一种面向机器的程序设计语言,它用符号表示机器指令。
–高级语言
.其语法和结构更类似普通英文,且由于远离对硬件的直接操作,易于
掌握。
–面向对象程序设计
.面向对象程序设计语言可以直观的反映客观世界的真实表象,使软件
开发人员可运用人类认识事物所采用的一般思维方式来进行软件开发,
与自然语言差距最小,是当今软件开发与应用的主流技术。
School of Computer Science and Technology
1.1 Java发展与特点
..计算机程序设计语言的发展与分类计算机程序设计语言的发展与分类
–机器语言
.不需要翻译即由计算机直接执行的指令叫做机器指令。这些指令的集
合叫做机器语言。
–汇编语言
.是一种面向机器的程序设计语言,
它用符号表示机器指令。
–高级语言
.其语法和结构更类似普通英文,且由于远离对硬件的直接操作,易于
掌握。
–面向对象程序设计
.面向对象程序设计语言可以直观的反映客观世界的真实表象,使软件
开发人员可运用人类认识事物所采用的一般思维方式来进行软件开发,
与自然语言差距最小

Java软件设计基础

,是当今软件开发与应用的主流技术。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..JavaJava起源与发展起源与发展
–1991年由美国Sun公司开发的具有平台无关性的语言——Oak。
1992年10月更名为Java。Java和Internet迅速融合并互相推动快速发展
,Java语言已由最初的版本发展到今天的1.6。
..JavaJava的技术现状的技术现状
–JDK与J2SE
.JDK是Sun公司发布的Java最初版本,自从Java 1.2发布后,相应的
JDK改名为J2SE。主要目的是为台式机和工作站提供一个开发和运行的
平台。
–J2ME
.主要面向消费电子产品,例如掌上电脑、手机等。
–J2EE
.用于开发分布式的企业级大型程序。
School of Computer Science and Technology
..JavaJava起源与发展起源与发展
–1991年由美国Sun公司开发的具有平台无关性的语言——Oak。
1992年10月更名为Java。Java和Internet迅速融合并互相推动快速发展
,Java语言已由最初的版本发展到今天的1.6。
..JavaJava的技术现状的技术现状
–JDK与J2SE
.JDK是Sun公司发布的Java最初版本,自从Java 1.2发布后,相应的
JDK改名为J2SE。主要目的是为台式机和工作站提供一个开发和运行的
平台。
–J2ME
.主要面向消费电子产品,例如掌上电脑、手机等。
–J2EE
.用于开发分布式的企业级大型程序。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
1.2 Java运作机制
语言翻译程序的作用示意图
..语言翻译的一般过程语言翻译的一般过程
School of Computer Science and Technology
1.2 Java运作机制
语言翻译程序的作用示意图
..语言翻译的一般过程语言翻译的一般过程
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..JavaJava平台是一种运行在其他基于硬件平台之上的纯软件平平台是一种运行在其他基于硬件平台之上的纯软件平
台。台。
–Java应用程序编程接口(API:Application Programming Interface)
–Java虚拟机(JVM:Java Virtual Machine)
.JVM可以在任何处理器上安全、兼容地执行Java应用程序。
.JVM可建立于不同的硬件系统、不同的操作系统平台。
.Java程序被翻译为与机器无关的字节码文件(*.class文件),再由
JVM转换成某种处理器的专用代码,因此可以达到“一次编写,处处运
行”的理想。
School of Computer Science and Technology

..JavaJava平台是一种运行在其他基于硬件平台之上的纯软件平平台是一种运行在其他基于硬件平台之上的纯软件平
台。台。
–Java应用程序编程接口(API:Application Programming Interface)
–Java虚拟机(JVM:Java Virtual

Java软件设计基础

Machine)
.JVM可以在任何处理器上安全、兼容地执行Java应用程序。
.JVM可建立于不同的硬件系统、不同的操作系统平台。
.Java程序被翻译为与机器无关的字节码文件(*.class文件),再由
JVM转换成某种处理器的专用代码,因此可以达到“一次编写,处处运
行”的理想。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–Java虚拟机
..JVMJVM的执行过程的执行过程
–加载代码、校验代码、代码执行
School of Computer Science and Technology
–Java虚拟机
..JVMJVM的执行过程的执行过程
–加载代码、校验代码、代码执行
PDF 文件使用 "pdfFactory Pro" 试用版本创建



1.3 Java程序的分类
. Java Application
..Java ApplicatiJonavaApplication
–用来开发命令行程序、窗体程序、服务器端程序等。


. Java Applet
..Java ApplJetavaApplet
–是一种嵌入到Web页面的网络应用程序,由浏览器内部的Java解释
器来解释运行。


. Java Servlet
..JavaJava SeSrvlretevlet
–运行于Web服务器端的Java程序,可以与客户端的Applet或者
HTML页面进行交互。


. JSP
..JSPJSP
–用于生成动态网页,基于Servlet技术,在HTML文件中加入Java程
序片段(Scriptlet)和JSP标记。可实现程序与页面格式控制的分离



. ……
..…………
School of Computer Science and Technology

PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
1.4 Java运行平台
..JavaJava技术既是一种编程语言,也是一个平台。技术既是一种编程语言,也是一个平台。
–Java运行时环境(JRE:Java Runtime Environment)。
–许多主要的浏览器都提供的Java解释器和运行时的环境。
–其他工具,如文档生成器、文件打包工具等。
..JavaJava语言规范和语言规范和Java APIJavaAPI定义定义JavaJava的标准。的标准。
–Java语言规范是一种语言的技术定义,包括语法和语义。
.完整的Java语言规范可在
School of Computer Science and Technology
1.4 Java运行平台
..JavaJava技术既是一种编程语言,也是一个平台。技术既是一种编程语言,也是一个平台。
–Java运行时环境(JRE:Java Runtime Environment)。
–许多主要的浏览器都提供的Java解释器和运行时的环境。
–其他工具,如文档生成器、文件打包工具等。
..JavaJava语言规范和语言规范和Java APIJavaAPI定义定义JavaJava的标准。的标准。
–Java语言规范是
一种语言的技术定义,包括语法和语义。
.完整的Java语言规范可在/docs/jls上找到。
–Java API包括用于开发Java程序准备的类和接口。
PDF 文件使用 "pdfFactory Pro" 试用版本创

Java软件设计基础





. JDK系统的安装
..JDKJDK系统的安系统装的安装
–获取与安装


.
/javase/downloads.jsp
.运行jdk-6u7-windows-i586-p.exe安装
–系统路径与主要文件
.
Java编译器:javac.exe
–用于将Java源代码文件(*.java)编译成能被Java解释器运行的类字
节码文件(*.class)。


.
Java字节码解释器,即JVM:java.exe
–用于Java程序的解释执行,直接从类字节码文件执行Java应用程序。


.
Java Applet浏览器:appletviewer.exe
–是一种执行嵌入HTML文件上Java Applet的Java浏览器。


.
……

JDK由开发和测试Java程序的独立程序组成,从命令行调用。
School of Computer Science and Technology


PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..JDKJDK环境变量设置环境变量设置
–Path设置
.Java编译器、解释器等位于Java安装目录的bin文件夹中,为了能在任
何目录中使用以上工具,应在系统特性中设置Path。
–ClassPath设置
.该设置指明Java虚拟机要装载类的路径。为了使编译程序能够找到用
户定义的类和系统类所在的包,需要将用户类所在的目录和系统类所
在的包放入到ClassPath变量中。
School of Computer Science and Technology
..JDKJDK环境变量设置环境变量设置
–Path设置
.Java编译器、解释器等位于Java安装目录的bin文件夹中,为了能在任
何目录中使用以上工具,应在系统特性中设置Path。
–ClassPath设置
.该设置指明Java虚拟机要装载类的路径。为了使编译程序能够找到用
户定义的类和系统类所在的包,需要将用户类所在的目录和系统类所
在的包放入到ClassPath变量中。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
1.5 Java程序开发
..JavaJava程序开发步骤程序开发步骤
–编辑源程序:*.java
–编译源程序得到字节码文件:*.class
–运行程序
.Java Application为解释运行
.Java Applet需通过浏览器加载运行
传统语言的运行机制
Java语言的运行机制
School of Computer Science and Technology
1.5 Java程序开发
..JavaJava程序开发步骤程序开发步骤
–编辑源程序:*.java
–编译源程序得到字节码文件:*.class
–运行程序
.Java Application为解释运行
.Java Applet需通过浏览器加载运行
传统语言的运行机制
Java语言的运行机制
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology

..Java ApplicationJavaApplication的开发的开发
–编写Java源程序
–编译和运行Java源程序
.使用javac.exe来编译,java.exe来运行。
School of Computer Science and Technology
..

Java软件设计基础

Java ApplicationJavaApplication的开发的开发
–编写Java源程序
–编译和运行Java源程序
.使用javac.exe来编译,java.exe来运行。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–程序解析
.Java语言严格区分大小写
.源文件的命名规则
.类名
.方法名
.包名
.接口名
.变量名
.常量名
School of Computer Science and Technology
–程序解析
.Java语言严格区分大小写
.源文件的命名规则
.类名
.方法名
.包名
.接口名
.变量名
.常量名
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–定义类
.类定义最基本的形式是:
.大括号括起的内容就是类体,即类的属性和方法。
–main方法
.一个应用程序必须有且只有一个main方法,它是应用程序的入口点

.main方法接受单一参数:String类型的元素的数组,该数组是一种机
制,运行时系统通过它把消息传递给应用程序。数组中的每个字符串
称为命令行参数(command-line argument)。
School of Computer Science and Technology
–定义类
.类定义最基本的形式是:
.大括号括起的内容就是类体,即类的属性和方法。
–main方法
.一个应用程序必须有且只有一个main方法,它是应用程序的入口点

.main方法接受单一参数:String类型的元素的数组,该数组是一种机
制,运行时系统通过它把消息传递给应用程序。数组中的每个字符串
称为命令行参数(command-line argument)。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..Java AppletJavaApplet开发开发
–编写Applet源程序
School of Computer Science and Technology
..Java AppletJavaApplet开发开发
–编写Applet源程序
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–编写相应的HTML文件
–编译Applet源程序
.使用javac.exe来编译
–运行Applet小应用程序
.使用appletviewer
.在浏览器中直接打开
School of Computer Science and Technology
–编写相应的HTML文件
–编译Applet源程序
.使用javac.exe来编译
–运行Applet小应用程序
.使用appletviewer
.在浏览器中直接打开
PDF 文件使用 "pdfFactory Pro" 试用版本创建



1.6 Java开发工具简介
. Java开发工具是为快速开发 Java程序提供集成开发环境
..JavaJava开发工具是为快速开发开发工具是为快速开发JaJvaava程序提供
程序集成开发环境集成开发提供环境
(IDE)的软件。
(IDE)(IDE)的软件的。软件。

Borland公司——
JBuilder

IBM公司——
Eclipse、Visual Age for Java

Sun公司——NetBeans、J

Java软件设计基础

ava WorkShop、JCreator、Sun Java Studio

Symantec公司——
Visual Café
for Java

Oracle公司——
JDeveloper

JetBrains公司——
IntelliJ IDEA

EBA公司——
WebLogic Workshop
School of Computer Science and Technology


PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
1.7 JCreator
代码视图
文件视图
类.包.属性视图
输出视图编译视图
School of Computer Science and Technology
1.7 JCreator
代码视图
文件视图
类.包.属性视图
输出视图编译视图
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
附录
..JavaJava的技术现状的技术现状**
..JavaJava语言的特点语言的特点**
..JVMJVM执行过程的特点执行过程的特点**
..JavaJava平台提供特性平台提供特性**
..JavaJava与与C/C++C/C++的比较的比较**
School of Computer Science and Technology
附录
..JavaJava的技术现状的技术现状**
..JavaJava语言的特点语言的特点**
..JVMJVM执行过程的特点执行过程的特点**
..JavaJava平台提供特性平台提供特性**
..JavaJava与与C/C++C/C++的比较的比较**
PDF 文件使用 "pdfFactory Pro" 试用版本创建



Java的技术现状*

. J2EE/J2SE/J2ME的应用领域
..J2EE/J2SE/J2MEJ2EE/J2SE/J2ME的应用的领域应用领域
Java Virtual Machine CVM KVM Card VM
Java 2
Enterprise
Edition
(J2EE)
Java 2
Standard
Edition
(J2SE)
Optional
Packages
Optional
Packages
Java Card APIs
CDC
Foundation Profile
RMIPersonal
Profiles
MID Profile
CLDC
J2ME
School of Computer Science and Technology


PDF 文件使用 "pdfFactory Pro" 试用版本创建




Optional Packages
.一个或多个APIs(应用程序编程接口)的集合,在Java平台上,它们
是可用的,并且可能在兼容平台上也被支持。随着时间推移,
Optional Packages可能因为市场需要而变成必需的。
CDC:Connected Device Configuration。对应于那些有电源的,电力充
裕,较大的设备。例如:电视机,冰箱等。

CVM (C Virtual Machine),KVM(K Virtual Machine)
.
KVM和CVM均可被看作是一种
Java虚拟机,是
JVM的子集,在功能
上都是JVM的缩减版。这两类虚拟机的适用范围并不相同,简单地说,
CVM的功能比KVM功能更为强大。
KVM是sun专门为使用16/32位
RISC/CISC微处理器或控制器,并其可用内存为160kb~512kb的的设备
而开发的。
School of Computer Science and Technology


PDF 文件使用 "pdfFactory Pro" 试用版本创建
http://doc.
guandang.net



CLDC:
Connected, Limited Device Configuration
.对应于主要使用电池,小型的设备,例如:手机,pda等。

MID(Mobile Information Device) Prof

Java软件设计基础

ile
.移动信息设备简表,定义了移动信息设备的类型和提供相关的API集
合,
MIDP所定义的功能更加面向用户,而且比CLDC更高级。

Foundation Profile(基础简表)
.提供除了用户界面以外J2SE所能够提供的标准类库。

RMI(Remote Method Invocation)
.远程方法调用。

Java卡
.是Java平台中最小的子集,也是一种特殊的智能卡,智能卡是一种嵌
入计算机芯片的卡片。
School of Computer Science and Technology


PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
Java语言的特点*
..面向对象性面向对象性
–面向对象其实是现实世界模型的自然延伸。现实世界中任何实体
都可以看成是对象,对象之间通过消息相互作用。
–传统的面向过程编程语言:中心是过程,驱动是算法。
–面向对象的编程语言:中心是对象,驱动是消息。
..简单便捷性简单便捷性
–系统精简,入门迅速,编写的代码更少。
..平台无关性平台无关性
–平台(Platform)是程序在其中运行的硬件或软件环境,大多数平
台可以被描述为操作系统和底层硬件的组合。
–计算机只能识别、运行本身的机器语言(0,1构成的指令系统)。
因此程序设计语言程序需要通过语言翻译程序将其映射成等价的机
器码,这与平台环境紧密相关。
School of Computer Science and Technology
Java语言的特点*
..面向对象性面向对象性
–面向对象其实是现实世界模型的自然延伸。现实世界中任何实体
都可以看成是对象,对象之间通过消息相互作用。
–传统的面向过程编程语言:中心是过程,驱动是算法。
–面向对象的编程语言:中心是对象,驱动是消息。
..简单便捷性简单便捷性
–系统精简,入门迅速,编写的代码更少。
..平台无关性平台无关性
–平台(Platform)是程序在其中运行的硬件或软件环境,大多数平
台可以被描述为操作系统和底层硬件的组合。
–计算机只能识别、运行本身的机器语言(0,1构成的指令系统)。
因此程序设计语言程序需要通过语言翻译程序将其映射成等价的机
器码,这与平台环境紧密相关。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..语言健壮性语言健壮性
–Java是一种强制
类型语言,在编译运行时对程序进行严格的检查
,以防止不匹配问题的发生;同时自动垃圾回收功能有助于避免内
存泄露,增加了Java的健壮性。
..运作安全性运作安全性
–Java语言在运行程序时严格检查数据的访问权限,不允许网络上
的应用程序修改本地数据;
–下载到用户端的字节码

Java软件设计基础

只有被核实后才能由Java解释器执行,而
执行过程中还要通过阻止对内存的直接访问来提高安全性;
–Java提供加密技术与多种安全网络协议。
..系统移植性系统移植性
–Java的平台无关性是该类应用程序可方便的移植到其他计算机上
运行的基础;
School of Computer Science and Technology
..语言健壮性语言健壮性
–Java是一种强制类型语言,在编译运行时对程序进行严格的检查
,以防止不匹配问题的发生;同时自动垃圾回收功能有助于避免内
存泄露,增加了Java的健壮性。
..运作安全性运作安全性
–Java语言在运行程序时严格检查数据的访问权限,不允许网络上
的应用程序修改本地数据;
–下载到用户端的字节码只有被核实后才能由Java解释器执行,而
执行过程中还要通过阻止对内存的直接访问来提高安全性;
–Java提供加密技术与多种安全网络协议。
..系统移植性系统移植性
–Java的平台无关性是该类应用程序可方便的移植到其他计算机上
运行的基础;
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–Java的编译器由Java语言实现,解释器由Java语言和标准C实现,使
得Java语言系统自身就具备了可移植性。
..动态扩展性动态扩展性
–可以在本地或网上动态的加载各种类库,在执行过程中可以随意
的增加新方法、实例变量等,运行中的程序只有在需要时才会加载
相应的模块,便于扩展。
..程序高性能程序高性能
–Java字节码技术可快速的将编辑的Java语言转换成高性能的机器码
来执行;
–相应的自动寄存器分配与编译器对字节码的一些优化技术可以生
成高质量的代码;
–JVM的改进和“即时编译”(Just in Time)技术的出现使得Java的
执行速度有了更大的提高。
School of Computer Science and Technology
–Java的编译器由Java语言实现,解释器由Java语言和标准C实现,使
得Java语言系统自身就具备了可移植性。
..动态扩展性动态扩展性
–可以在本地或网上动态的加载各种类库,在执行过程中可以随意
的增加新方法、实例变量等,运行中的程序只有在需要时才会加载
相应的模块,便于扩展。
..程序高性能程序高性能
–Java字节码技术可快速的将编辑的Java语言转换成高性能的机器码
来执行;
–相应的自动寄存器分配与编译器对字节码的一些优化技术可以生
成高质量的代码;
–JVM的改进和“即时编译”(Just in Time)技术的出现使得Java的
执行速度有
了更大的提高。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
..多线程机制多线程机制

Java软件设计基础

线程又被称为轻量进程,是比传统进程更小的并且可以并发执行
的单位。多个线程可以共用一个内存区域,共享同一组系统资源,
其间通信和切换的系统开销要远远小于进程。
–Java环境本身就是多线程的,若干个线程运行,负责必要的无用
单元回收、系统维护等系统级操作;
–Java提供了一个Thread类和一组内置方法对线程进行实时并发控制

School of Computer Science and Technology
..多线程机制多线程机制
–线程又被称为轻量进程,是比传统进程更小的并且可以并发执行
的单位。多个线程可以共用一个内存区域,共享同一组系统资源,
其间通信和切换的系统开销要远远小于进程。
–Java环境本身就是多线程的,若干个线程运行,负责必要的无用
单元回收、系统维护等系统级操作;
–Java提供了一个Thread类和一组内置方法对线程进行实时并发控制

PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
JVM执行过程的特点*
..多线程多线程
–支持多个线程同时运行,这些线程可以独立的执行Java代码,处
理公共数据区和私有堆栈中的数据。
..动态连接动态连接
–动态连接使得Java程序适合在网上运行
..异常处理异常处理
–提供了可靠的异常处理
School of Computer Science and Technology
JVM执行过程的特点*
..多线程多线程
–支持多个线程同时运行,这些线程可以独立的执行Java代码,处
理公共数据区和私有堆栈中的数据。
..动态连接动态连接
–动态连接使得Java程序适合在网上运行
..异常处理异常处理
–提供了可靠的异常处理
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
Java平台提供特性*
..JavaJava平台的每个完整实现都能提供如下特性:平台的每个完整实现都能提供如下特性:
–开发工具
.开发工具提供进行编译、运行、监视、调试应用程序和编写应用程
序文档所需的所有功能。
–API
.提供Java编程语言的核心功能,提供大量已编写好的类。
–部署技术
.JDK软件提供标准机制,用于把应用程序部署给最终用户。
–用户界面工具包
.Swing和Java 2D工具包使创建复杂的图形用户界面称为可能。
–集成库
.支持数据库访问和远程对象的操纵等。
School of Computer Science and Technology

Java平台提供特性*
..JavaJava平台的每个完整实现都能提供如下特性:平台的每个完整实现都能提供如下特性:
–开发工具
.开发工具提供进行编译、运行、监视、调试应用程序和编写应用程
序文档所需的所有功能。
–API
.提供Java编程语言的核心功能,提供大

Java软件设计基础

量已编写好的类。
–部署技术
.JDK软件提供标准机制,用于把应用程序部署给最终用户。
–用户界面工具包
.Swing和Java 2D工具包使创建复杂的图形用户界面称为可能。
–集成库
.支持数据库访问和远程对象的操纵等。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
Java与C/C++的比较*
..概述概述
–Java是由C++发展而来,保留了C++的大部分内容,其编程方式
类似于C++,但是摒弃了C++的诸多不合理之处,从根本上解决了
C++的固有缺陷。使得Java句法更清晰、规模更小、更易学,同时
更趋于健壮性、安全性和平台无关性。
..区别区别
–全局变量
.C++将函数和变量定义为全局的,而不加封装,增加了程序的负担
,并且往往会由于使用不当而造成系统的崩溃。
.Java是完全面向对象的语言,类将方法和数据封装在其内,不能在所
用的类之外定义程序的全局变量,只能通过在一个类中定义公用、静
态的变量来实现一个全局变量,使得其它类可以访问和修改该变量。
这种完善的包装保证了系统的安全性。
School of Computer Science and Technology
Java与C/C++的比较*
..概述概述
–Java是由C++发展而来,保留了C++的大部分内容,其编程方式
类似于C++,但是摒弃了C++的诸多不合理之处,从根本上解决了
C++的固有缺陷。使得Java句法更清晰、规模更小、更易学,同时
更趋于健壮性、安全性和平台无关性。
..区别区别
–全局变量
.C++将函数和变量定义为全局的,而不加封装,增加了程序的负担
,并且往往会由于使用不当而造成系统的崩溃。
.Java是完全面向对象的语言,类将方法和数据封装在其内,不能在所
用的类之外定义程序的全局变量,只能通过在一个类中定义公用、静
态的变量来实现一个全局变量,使得其它类可以访问和修改该变量。
这种完善的包装保证了系统的安全性。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–goto语句
.goto语句一般用于无条件转移子程序和多结构分支技术,是C++中的
合法语句,造成了程序结构的混乱,不易理解。
.Java不提供goto语句,使得程序更简洁易读,增强了程序的健壮性。
–指针
.指针是C++语言中最灵活也最容易出错
的数据类型,易出现由于指针
误操作而导致的系统崩溃,同时指针操作内存时也经常出错。
.Java没有指针的概念,更有利于程序的安全。
–内存管理
.C++语言中必须通过程序释放内存资源,增加了程序设计者的负担,
再次释放已释放的内存块或释放未分配的内存块会造成系统崩溃,忘记

Java软件设计基础

放不再使用的内存块也会逐渐耗尽系统资源。
.Java自动进行内存回收操作,当一个对象不再被用到时,无须使用内
存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运
行,利用空闲时间工作,保证了系统资源的完整性,避免了内存管理不
周而引起的系统崩溃。School of Computer Science and Technology
–goto语句
.goto语句一般用于无条件转移子程序和多结构分支技术,是C++中的
合法语句,造成了程序结构的混乱,不易理解。
.Java不提供goto语句,使得程序更简洁易读,增强了程序的健壮性。
–指针
.指针是C++语言中最灵活也最容易出错的数据类型,易出现由于指针
误操作而导致的系统崩溃,同时指针操作内存时也经常出错。
.Java没有指针的概念,更有利于程序的安全。
–内存管理
.C++语言中必须通过程序释放内存资源,增加了程序设计者的负担,
再次释放已释放的内存块或释放未分配的内存块会造成系统崩溃,忘记
释放不再使用的内存块也会逐渐耗尽系统资源。
.Java自动进行内存回收操作,当一个对象不再被用到时,无须使用内
存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运
行,利用空闲时间工作,保证了系统资源的完整性,避免了内存管理不
周而引起的系统崩溃。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–数据类型的一致性
.在C++语言中,不同的平台上,编译器对简单数据类型分别分配不
同的字节数,导致了代码数据的不可移植性。
.在Java中,采用基于IEEE标准的数据类型,无论任何硬件平台上对
数据类型的位数分配总是固定的。
–类型转换
.在C++中,会出现数据类型的隐含转换,涉及到自动强制类型转换
,使得不安全因素大大增加。
.Java中系统要对对象的处理进行严格的相容性检查,防止不安全的转
换。如果需要,必须由程序显式进行强制类型转换。
–头文件
.在C++语言中使用头文件声明类的原型和全局变量及库函数等,使
得在大系统中对头文件的维护非常困难。
.Java不支持头文件,类成员的类型和访问权限都封装在类中,运行时
系统对访问进行控制,防止非法访问。
School of Computer Science and Technology
–数据类型的一致性
.在C+
+语言中,不同的平台上,编译器对简单数据类型分别分配不
同的字节数,导致了代码数据的不可移植性。
.在Java中,采用基于IEEE标准的数据类型,无论任何硬件平台上对
数据类型的位数分配总是固定的。
–类型转换
.在C++中,会出现数据类型的隐含转换,涉及到自动强制类型转换

Java软件设计基础

,使得不安全因素大大增加。
.Java中系统要对对象的处理进行严格的相容性检查,防止不安全的转
换。如果需要,必须由程序显式进行强制类型转换。
–头文件
.在C++语言中使用头文件声明类的原型和全局变量及库函数等,使
得在大系统中对头文件的维护非常困难。
.Java不支持头文件,类成员的类型和访问权限都封装在类中,运行时
系统对访问进行控制,防止非法访问。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–结构和联合
.C++中用结构和联合来表示一定的数据结构,其成员的公有性带来
了安全隐患。
.Java不支持结构和联合,通过类把数据结构及对该数据的操作封装在
类中。
–预处理
.C++在编译过程中都有一个预编译阶段,即预处理器,为开发人员
提供了方便,但也增加了编译的复杂性。
.Java允许预处理,但不支持预处理器功能,提供import语句实现类似
的功能。
–多重继承
.C++支持多重继承,允许许多父类派生一个子类,虽然功能强大,
但使用复杂,而且会引起许多麻烦,编译程序实现也很不易。
.Java不支持多重继承,但允许一个类实现多个接口,即实现了C++的
多重继承功能,又避免了C++的缺陷。
School of Computer Science and Technology
–结构和联合
.C++中用结构和联合来表示一定的数据结构,其成员的公有性带来
了安全隐患。
.Java不支持结构和联合,通过类把数据结构及对该数据的操作封装在
类中。
–预处理
.C++在编译过程中都有一个预编译阶段,即预处理器,为开发人员
提供了方便,但也增加了编译的复杂性。
.Java允许预处理,但不支持预处理器功能,提供import语句实现类似
的功能。
–多重继承
.C++支持多重继承,允许许多父类派生一个子类,虽然功能强大,
但使用复杂,而且会引起许多麻烦,编译程序实现也很不易。
.Java不支持多重继承,但允许一个类实现多个接口,即实现了C++的
多重继承功能,又避免了C++的缺陷。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



School of Computer Science and Technology
–操作符重载
.操作符重载被认为是C++的突出特征。
.为了保持Java语言尽可能的简单,Java不支持操作符重载。
–函数
.在C中,代码组织在函数中,函数可
以访问程序的全局变量;C++增
加了类,提供了类方法,但由于C++仍然支持C,所以C++程序中仍然
可以使用C的函数,结果导致函数和方法混合使用,使得程序比较混乱

.Java没有函数。作为一种比C++更纯的面向对象的语言,强迫开发人
员把所有例行程序包括在类中,可以更好的组

Java软件设计基础

织编码。
–字符串
.C++不支持字符串变量,使用“Null”终止符代表字符串的结束。
.Java字符串类作为Java语言的一部分定义,而不是作为外加的延伸部
分,在整个系统中建立字符串和访问字符串元素的方法是一致的。
School of Computer Science and Technology
–操作符重载
.操作符重载被认为是C++的突出特征。
.为了保持Java语言尽可能的简单,Java不支持操作符重载。
–函数
.在C中,代码组织在函数中,函数可以访问程序的全局变量;C++增
加了类,提供了类方法,但由于C++仍然支持C,所以C++程序中仍然
可以使用C的函数,结果导致函数和方法混合使用,使得程序比较混乱

.Java没有函数。作为一种比C++更纯的面向对象的语言,强迫开发人
员把所有例行程序包括在类中,可以更好的组织编码。
–字符串
.C++不支持字符串变量,使用“Null”终止符代表字符串的结束。
.Java字符串类作为Java语言的一部分定义,而不是作为外加的延伸部
分,在整个系统中建立字符串和访问字符串元素的方法是一致的。
PDF 文件使用 "pdfFactory Pro" 试用版本创建



效用
效用效用Java
JaJavavaC/C++
C/C/CC++++
是否直译式
是是否直否直译式译式是
是是否,编译式
否否,编,编译式译式
编译后是否产生机器代码
编编译后译后是是否产否产生生机器机器代码代码
否,产生具有跨平台特性的字
否否,产,产生生具有具有跨跨平台平台特特性的字性的字
节码
节码节码

是是
是否跨平台
是是否跨否跨平台平台是
是是
否,需根据计算机平台改变程
否否,需,需根根据计据计算算机平机平台台改变程改变程

序序
是否有指针类型
是是否有否有指指针类型针类型否,使用对象引用代替指针
否否,使,使用用对象对象引引用代用代替替指针指针是
是是
是否具备继承性能
是是否具否具备备继承继承性能性能允许单一继承
允允许单许单一一继承继承允许多重继承
允允许多许多重重继承继承
运行速度快慢
运运行速行速度度快慢快慢较 C/C++略慢
较较
C/C++C/C++略慢略慢快
快快

School of Computer Science and Technology

PDF 文件使用 "pdfFactory Pro" 试用版本创建




本文来源:https://www.bwwdw.com/article/vea1.html

Top