Java与其他语言的比较

Java与其他语言的比较
学习java的基础知识,对于初学者更要知道的东西!^_^
Java是比较纯的面向对象语言,是跨平台的编程语言。即一次编译,到处运行。
它具有以下这些特点:
简单性
JAVA语法格式与C++相似
• 利用类库扩充语言机制,从而保持语言本身的简单性。
是当前流行的高级语言普遍采用的做法。• 取消指针避免了许多严重的错误陷阱。
引用类似指针,但没有指针的语义。
• 内存管理自动化简化了程序员的资源管理工作。
内存管理是最重要的资源管理;Java语言提供了垃圾自动回收机制。
• 对象模型:使用对象句柄(handle)而不是对象本身。
• 单一的根对象:Object。
• 只支持动态(晚期)绑定。
不支持静态(早期)绑定。
先进性
• 较纯的面向对象程序设计语言
较纯是相对于C++语言而言,但还不是纯的面向对象程序设计语言。
非面向对象的基本类型数据都有相应的包装类(wrapper)。
• 结合编译与解释的混合型执行方式
解释型:虽不利于软件的执行效率,但提高了软件开发的效率。(总成本!)
中间码:比纯解释型语言提高了解释执行的效率,且提高了代码的可移植性。
• 性能通过优化的虚拟机不断提高
JIT、HotSpot、...
JVM既可以是软件,也可以设计为硬件(特别是在移动设备或家电产品上)。
• 在语言级支持多线程
synchronized保留字保证访问对象时是线程安全的(thread-safe)。
平台无关性
• 平台:硬件、操作系统、网络系统
提高了应用程序的可移植性。
• 采用中间语言与虚拟机
Java:字节码(bytecode)+JVM。
Microsoft .Net:MSIL(Microsoft Intermediary Language)+CLR
(Common Language Runtime)。
• Write once, run anywhere.
• 但仍无法实现"独立于程序设计语言"!
垃圾自动回收
• 自动检测并释放不再需要的内存空间
• 由系统自动完成(而不是程序完成)
• Java语言提供了一个系统级线程跟踪内存的分配情况
第1 页
Java与其他语言的比较
代码安全性
• 主要指Applet应用
Applet运行在一个沙盒(sandbox)中。
• JRE的任务
(1) 装入代码:装入执行一个程序时所需的所有类;在本地文件系统的不同
名字空间维护类;避免受到欺骗。
(2) 校验代码:符合JVM规范;不会破坏系统完整性;不会引起栈溢出;参
数类型的正确性;无非法数据转换(例如整数转为指针)。
(3) 执行代码:
• 提供语言级的安全性管理
使用ClassLoader、SecurityManager类。
健壮性(robustness)
• 更完善的异常处理机制
异常作为方法接口的一部分。
编辑程序帮助程序员检查接口与其实现和客户双方的一致性。
• 强类型+更严格的类型转换约束
例如:禁止double兼容float(除非显式类型转换)。
• 更注重健壮性而不是灵活性的语言设计
例如:取消了全局变量和goto语句;禁止局部变量的作用域中出现同名的变量声明。
• 简单实用的名字空间管理
名字空间与文件系统的子目录/文件结构保持一致。
层次结构的名字空间。
第2 页

你可能感兴趣的:(职场,软件开发,休闲)