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++中,会出现数据类型的隐含转换,涉及到自动强制类型转换